Canales populares

Assembler

Qué tal?, Estoy haciendo un trabajo práctico en lenguaje Assembler, con Emu8086 y tengo algunos
problemas.

Resulta que tengo un vector (Array) de 10 elementos (16 bits), y quiero imprimir cada uno de ellos.
La cuestión es que no sé cómo hacer para que imprima aquéllos números que son mayores o iguales a 10.

Utilizo una función llamda PRINT_NUM, y con la instrucción de ajuste ascii (AAM), puedo
lograr que me imprima números menores a 10. Cuando sobrepasa los 9, larga basura.

podrían ayudarme? Gracias.

Dejo código de fuente.
El procedimiento INGRESAR_NUMEROS permite el ingreso del vector, MOSTRAR_NUMEROS
debe mostrar cada elemento de dicho vector.
El vector se llama NUMEROS, y está declarado al final del código de fuente.


#MAKE_COM#

org 100h

include 'emu8086.inc'

INICIO:

CALL INGRESAR_NUMEROS

CALL MOSTRAR_NUMEROS

HLT

RET


MOSTRAR_NUMEROS PROC NEAR

MOV CX,10
MOV SI,0

MOSTRAR:

MOV AX, NUMEROS[SI]
AAM
CALL PRINT_NUM
INC SI

LOOP MOSTRAR

RET

MOSTRAR_NUMEROS ENDP

INGRESAR_NUMEROS PROC NEAR

MOV CX,10
MOV SI,0

IMPRIMIR MNINGRESO

INGRESO:

CALL SCAN_NUM

MOV NUMEROS[SI],CX

CALL CLEAR_SCREEN

MOV AX, NUMEROS[SI]

IMPRIMIR MNINGRESO

CMP SI,9
JE FIN

INC SI

JMP INGRESO

FIN:
RET
ENDP INGRESAR_NUMEROS


NUMEROS DW 10 DUP(0)

DEFINE_PRINT_NUM
DEFINE_PRINT_NUM_UNS
0
1
0
1Comentario