Red de conocimiento informático - Consumibles informáticos - Ingrese un número entre 0 y 9999 en el teclado, use programación en lenguaje ensamblador para convertir el número decimal a binario y muestre el resultado de la conversión en formato binario.

Ingrese un número entre 0 y 9999 en el teclado, use programación en lenguaje ensamblador para convertir el número decimal a binario y muestre el resultado de la conversión en formato binario.

segmento de datos

msg0 db 'Ingrese un dígito entre 0~9999: $'

msg1 db 'El resultado es: $'

resultado dw 0; Guarda el número binario convertido

disp db 16 dup(20h), '$' Dado que el número máximo de datos es 9999, se pueden expresar hasta 16 números binarios

p>

los datos terminan

segmento de código

asume ds: datos, cs: código

inicio:

mov ax, data

mov ds, ax

lea dx, msg0; muestra solicitudes de información de entrada

mov ah, 09h

int 21h

p>

lea si, resultado

llamar a la entrada; convertir el resultado de entrada y enviarlo a la unidad de resultados

lea dx, msg1;

mov ah, 09h

int 21h

llamada crlf; retorno de carro y avance de línea

mov bx, resultado

lea si, disp

salida de llamada; convierte el número en Resultado en el código ASCII que se mostrará

mov ah, 09h

lea dx, disp; muestra el resultado en la pantalla

int 21h

mov ax, 4c00h

int 21h

entrada:

mov ah, 01h; entrada de teclado y eco

int 21h

cmp al, 0dh; si la entrada no es Enter, continúa la entrada; de lo contrario, la entrada finaliza

jz endret

mov ah, 0

sub al, 30h; aquí no hay función de juicio de error. Se supone que la entrada es un número del 0 al 9. , así que reste directamente 30H

push ax;Proteja AX, AH debe borrarse a 0 en este momento

mov ax, [si] Algoritmo de conversión: Resultado=Resultado*10; +AX

mov bx, 10

mul bx

mov [si], hacha

pop hacha

agregar [si], hacha

entrada jmp

endret:

ret

salida:

> mov cx, 16

s0:

mov dl, 30h

rol bx, 1

adc dl, 0

mov [si], dl

inc si

bucle s0

ret

crlf:

mov ah, 02h

mov dl, 0dh

int 21h

mov dl, 0ah

int 21h

ret

el código finaliza

finaliza el inicio