Pregunta de programación en lenguaje ensamblador: se definen 100 bytes en la dirección de memoria de la unidad a partir de buff, y el compilador requiere que los 100 bytes se llenen a partir de 31
CÓDIGO?SEGMENTO ASSUMECS:CÓDIGO
BUFF?DB100?DUP(?)
N?EQU$-BUFF
Y? DB0
Z?DW0 INICIO:?PUSH?CS POPDS PUSH?CS POPES LEADI,BUFF MOVAL,31 MOVCX,N CLD @1: STOSB ADDAL,2 LOOP?@1 LEASI,BUFF MOVCX,N CLD @2: LODSB CBW CMPAX,0 JBE@3 INCY ADDZ,AX @3: ¿LOOP?@2 MOVAL,Y CBW CALL?DSPAX2 MOVAX,Z CALL?DSPAX2 MOVAL,Y CBW CALL?DSPAX10 MOVAX,Z CALL?DSPAX10 MOVAH, 4CH INT21H ;================================= DSPAX2?PROC?NEAR PUSH?AX PUSH?BX PUSH?CX PUSH ?DX PUSHF XORCX,CX MOVBX,2 @DSPAX2_1: ?@DISPAX2_2 MOVDL,32 INT21H POPF POPDX POPCX POPBX POPAX RET DSPAX2?ENDP
;=============== ============ ====== DSPAX10?PROC?NEAR PUSH?AX PUSH?BX PUSH?CX PUSH?DX PUSHF XORCX,CX MOVBX,10 @DSPAX10_1: MOVAH,2 p>
@DISPAX10_2: POPDX CMPDL,3AH JB@DISPAX10_3 ADDDL,7
@DISPAX10_3: INT21H LOOP?@DISPAX10_2 MOVDL,32 INT21H POPF POPDX POPCX POPBX POPAX RET DSPAX10
;================================
CÓDIGO FINAL INICIO