Red de conocimiento informático - Conocimiento sistemático - Estadísticas en lenguaje ensamblador

Estadísticas en lenguaje ensamblador

¿DATOS?NÚMERO DE SEGMENTO?DB12H,88H,82H,89H,33H,90H,0H,10H,0BDH,01H

N?EQU$-NUM

¿POSITIVO?DB0

NEGATIVO?DB0

CERO?DB0 SUM?DW0

¿DATOS?ENDS STACK1?SEGMENTSTACK DB100?DUP(?) STACK1?ENDS

CODE?SEGMENT ASSUMECS:CODE,DS:DATA,SS:STACK1

START?PROC?FAR PUSH?DS MOVAX,?0;Secuencia estándar PUSH?AX MOVAX,?DATA MOVDS ,?AX MOVSI,OFFSET?NUM MOVCX,N CLD MOVBX,0

@M0: LODSB CBW ADDBX,AX CMPAL,0 JG@M1 JL@M2 INCZERO JMP@MM

@M1: INCPOSITIVO JMP@MM

@M2: INCNEGATIVO

@MM: ¿BUCLE?@M0 MOVSUM,BX MOVAX,BX CALL?DSPAXS MOVAL,POSITIVO MOVAH,0 CALL?DSPAXS MOVAL,NEGATIVO MOVAH,0 CALL?DSPAXS MOVAL,ZERO MOVAH,0 CALL?DSPAXS RET

INICIO?ENDP

;============= =============== DSPAXS?PROC?NEAR PUSH?AX TEST?AX,8000H JNS@DSPAXS1 EMPUJAR?AX PUSH?DX MOVAH,2 MOVDL,'-' INT21H POPDX POPAX NEGAX

@DSPAXS1: ¿LLAMADA?DSPAX POPAX RET DSPAXS?ENDP

;========================== = ===

DSPAX?PROC?NEAR PUSH?AX PUSH?BX PUSH?CX PUSH?DX PUSHF XORCX,CX MOVBX,10

@DSPAX1: XORDX,DX DIVBX INCCX ORDX ,30H PUSH?DX CMPAX,0 JNE@DSPAX1 MOVAH,2

@DISPAX2: POPDX INT21H LOOP?@DISPAX2 MOVDL,32 INT21H POPF POPDX POPCX POPBX POPAX RET

DSPAX? ENDP

;============================

CÓDIGO?ENDS ENDSTART