Red de conocimiento informático - Descarga de software - Escriba un programa en lenguaje ensamblador para ingresar dos números hexadecimales de un dígito desde el teclado y agregarlos para mostrar el resultado. Se requiere que el resultado se muestre como un número decimal.

Escriba un programa en lenguaje ensamblador para ingresar dos números hexadecimales de un dígito desde el teclado y agregarlos para mostrar el resultado. Se requiere que el resultado se muestre como un número decimal.

segmento dseg

Buf1 db 4, ?, 4 dup( ? )

Ermsg db 'Error de entrada, ¡ingrese de nuevo!', 0ah, 0dh, ' $'

flag db 0

num1 db ?

dseg termina

sseg segmento pila

dw 512 dup( ? )

sseg termina

segmento cseg

asume ds:dseg, cs:cseg, ss:sseg

COMIENZO:

mov ax, dseg

mov ds, ax

llamar a inputnum

mov num1, bl

llamar inputnum

agregar bl, num1

mov al, bl

llamar a dectobinary

mov ah, 04ch

int 21h

inputnum proc

Entrada:

mov ah, 1

int 21h

mov bl, al

mov ah, 2

mov dl, 0ah

int 21h

mov ah, 2

mov dl, 0dh

int 21h

cmp bl, 'f'

jg InputError

cmp bl, 'a'

jl LessThanLa

sub bl, 87

jmp InputDone

LessThanLa:

cmp bl, 'F'

jg InputError

cmp bl, 'A'

jl LessThanUa

sub bl, 55

jmp InputDone

MenosThanUa:

cmp bl, '9'

jg InputError

cmp bl, '0'

jl InputError

sub bl, 48

jmp InputDone

InputError:

lea dx, Ermsg

mov ah, 9

int 21h

jmp Entrada

InputDone:

ret

inputnum endp p>

proc dectobinario

push cx

mov flag, 0

lea si, Buf1

mov dl, 10

mov cl, 10

Bucle1:

xor ah, ah

div dl

cmp al , 0

jne Next2

cmp flag, 0

je Next3

Siguiente2:

mov flag, 1

mov [si], al

agregar byte ptr[si], '0'

inc si

Siguiente3:

empujar hacha

mov ax, 0

mov al,dl

div cl

mov dl, al

pop ax

mov al, ah

cmp dl, 0

jne Loop1

mov byte ptr[si], ' '

mov byte ptr[si+1], '$'

lea dx, Buf1

mov ah, 9

int 21h

pop cx

ret

dectobinary endp

cseg termina

end BEGIN

Instrucciones:

Ingrese una letra primero. El rango legal es: 0~9, A~F, a~f. Si es legal, entonces ingresa el segundo. Si alguna entrada es ilegal, se le pedirá que vuelva a ingresar. Una vez que ambas letras son legales, se genera el resultado.

MASM6.15+DEBUG, pasó la prueba.