Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - benedyt

#1
ASM / Ayuda con lenguaje ensamblador 8086 !!!
18 Mayo 2010, 17:12 PM
Necesito ayuda con este codigo, no encuentro el fallo, me deberia salir una 'A' y sale una 'H' n modo grafico.

Aqui os dejo  lo que tengo hecho:

.MODEL SMALL

.STACK 100h

.DATA
pixfila_a dw 80
pixcol_a dw 140

.CODE

macro_letra_a MACRO pixf,pixc
local pinta1a,pinta2a,pinta3a,pinta4a
MOV DL, 0
MOV DH,0
MOV ax,pixf
MOV bx,320
MUL bx
ADD ax,pixc
MOV DI,ax
MOV AL,15

MOV cx, DI
ADD cx, 30

pinta1h:
         MOV ES:[DI], AL
         ADD DI, 320
         INC DL
         CMP DL, 30
         jbe pinta1h

         MOV ax,320
         MOV bx,10
         MUL bx
         SUB DI,ax

         MOV AL,15

pinta2h:
         MOV ES:[DI], AL
         INC DI
         INC DH
         CMP DH, 30
         jbe pinta2h

         MOV DL, 0
         MOV DI,cx

pinta3h:
         MOV ES:[DI], AL
         ADD DI, 320
         INC DL
         CMP DL, 30
         jbe pinta3h
         
         MOV DL, 0
         MOV DI,cx

pinta4h:
         MOV ES:[DI], AL
         INC DI
         INC DH
         CMP DH, 30
         jbe pinta4h

         
      ENDM

MOV AX,@DATA
MOV DS,AX

MOV ah,0
MOV al,13h
int 10h

MOV AX, 0A000h
MOV ES, AX

macro_letra_a pixfila_a,pixcol_a

MOV AH,0
INT 16h

CMP AX, 011Bh
JE SALIR

SALIR:

      MOV AH,4ch
      INT 21h

      END


ESPERO VUESTRA AYUDA.

SALUDOS Y GRACIAS.
#2
ASM / ayuda con lenguaje ensamblador 8086
5 Abril 2010, 22:08 PM
hola:
haber si me podeis ayudar, tengo unproblema con este codigo.
al correrlo con l turbodebugger me sale un error(indicado abajo), y no se de q puede ser, ya q no me dio ningun error antes al compilarlo.   

       
           .MODEL SMALL
>
>         .STACK 100h
>
>         .DATA
>
>         Barco_A    DB 1,2,3,4,5,6,7,8,9,10,11,12
>          Barco_B    DB 13,14,15,16,17,18,19,20,21,22,23,24
>          Barco_C DB 1,2,3,4,5,6,7,8,9,10,11,12
>          Venta_media_Barco_A DB ?
>         Venta_media_Barco_B DB ?
>         Venta_media_Barco_C DB ?
>         Resultado DB 3 DUP (?)
>
>         .CODE
>
>      MACRO_MEDIA MACRO
> param1,param2,param3,param4,param5,param6,param7,param8,param9,param10,param11,param12,param13
>       push ax
>      MOV ax,0
>        MOV AL,param1
>          ADD AL,param2
>          ADD AL,param3
>          ADD AL,param4
>         ADD AL,param5
>         ADD AL,param6
>         ADD AL,param7
>         ADD AL,param8
>         ADD AL,param9
>         ADD AL,param10
>         ADD AL,param11
>         ADD AL,param12
>          MOV BL,12
>         DIV BL
>          MOV param13,AL
>          pop ax
>
>         ENDM
>
>       MOV AX,@DATA
>          MOV DS,AX
>
>         MACRO_MEDIA
> Barco_A[0],Barco_A[1],Barco_A[2],Barco_A[3],Barco_A[4],Barco_A[5],Barco_A[6],barco_A[7],Barco_A[8],Barco_A[9],Barco_A[10],Barco_A[11],Venta_media_Barco_A
>         MACRO_MEDIA
> Barco_B[0],Barco_B[1],Barco_B[2],Barco_B[3],Barco_B[4],Barco_B[5],Barco_B[6],barco_B[7],Barco_B[8],Barco_B[9],Barco_B[10],Barco_B[11],Venta_media_Barco_B
>         MACRO_MEDIA
> Barco_C[0],Barco_C[1],Barco_C[2],Barco_C[3],Barco_C[4],Barco_C[5],Barco_C[6],barco_C[7],Barco_C[8],Barco_C[9],Barco_C[10],Barco_C[11],Venta_media_Barco_C
>
>          MOV AL,Venta_media_Barco_A
>          MOV AL,Venta_media_Barco_B
>         MOV AL,Venta_media_Barco_C
>
>         CALL PROC_RESULTADO
>
>    fin: MOV Ah,4ch
>     INT 21h
>
>         PROC_RESULTADO PROC
>
>              MOV DI,0
>
>              MOV AL,5
>              MOV BL,10
>              DIV BL                             ;al indicar esta instruccion
> en turbo debugger la ejecucion del se para y aparece una ventana
> diciendo: Divide by zero
>
>              CMP Venta_media_Barco_A, AL
>              JAE Superávit
>              JB Déficit
>
>      B:      CMP Venta_media_Barco_B, AL
>              JAE Superávit
>              JB Déficit
>
>              MOV CX,1
>
>      C:      CMP Venta_media_Barco_C, AL
>              JAE Superávit
>              JB Déficit
>              LOOP C
>              JMP fin
>
> Déficit:     MOV Resultado[DI],'D'
>              INC DI
>              CMP DI,1
>              JE B
>              JA C
> Superávit:   MOV Resultado[DI],'S'
>              INC DI
>              CMP DI,1
>              JE B
>              JA C
>
>            RET
>            PROC_RESULTADO ENDP
>
>     END