Ayuda del diagrama de flujo de datos de programación en ensamblador: ingrese un número decimal de cuatro dígitos desde el teclado y muestre el resultado de salida del número hexadecimal correspondiente en la pantalla
Segmento de código;
Supongamos cs: código, ds: código
org 100h; formato COM estándar
inicio:
mov ax, 3; modo texto
int 10h
push cs
p>pop ds
push ds
pop es
Otra vez:
lea dx, mes1; >
mov ah, 9
int 21h
int 21h
entrada de llamada; recibir p> entrada de llamada
< p; > lea dx, mes2mov ah, 9
int 21h
*** Salida de resultado hexadecimal***
llamada salida;
lea dx, mes3
mov ah, 9
int 21h
mov ah, 0;
int 16h
cmp ah, 15h; "Y(y)" continúa
jz Nuevamente; calcula la siguiente pregunta
mov ah, 4ch; fin
int 21h
entrada:
xor pb, pb
mov bx, 10
mov cx , 4
T1: mov ah, 0; Número de recepción
int 16h
cmp al, 0dh
jz ok
cmp al, '0'; verificación de datos
jb T1
cmp al, '9'
ja t1 p>
mov ah, 0eh; mostrar datos válidos
int 10h
sub al, 30h
cbw
xchg bp , ax p>
mul bx
añadir bp, ax
bucle T1
ok: ret
salida:
mov bx, 4
mov cx, bx
aquí:
rol bp, cl
mov ax, bp
y hacha, 0fh
o al, 30h
cmp al, '9'
jbe j1
ad al, 7
j1:
mov ah, 0eh
int 10h
dec bx
jnz aquí
mov al, 'H'
int 10h
ret
mes1 db 0dh, 0ah, 09, 'Ingresa un número (0-9999): $'
mes2 db 0dh, 0ah, 09, '=
Números hexagonales. $'
mes3 db 0dh, 0ah, 09, 'Continuar Y(y)?$'
el código termina
finaliza el inicio