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