Desarrollar un código en lenguaje ensamblador que permita leer un número de un digito por teclado y determinar si el número es par, impar o cero.
No utilizar Simuproc. Utilizar el programa EMU8086
Respuestas
Por lo que se interpreta el código será en assembler para microprocesadores x86. Como el número es de un dígito se usará aquí la interrupción 0x21, con el servicio 0x01.
En esta modalidad el programa espera el ingreso de un dato por teclado y luego de presionar Enter lo muestra en la pantalla y guarda su código ASCII en el registro AL.
Además vamos a utilizar el servicio 0x09 para mostrar el resultado como una cadena de caracteres en efecto el servicio 0x09 muestra en pantalla el string desde la dirección guardada en dx hasta donde haya un caracter $. El código quedaría:
INTRO db "Ingrese un número y presione Enter: $"
PAR db "El número es par$"
IMPAR "El número es impar$"
CERO "El número es cero$" ;Mensajes a mostrar en pantalla.
mov ah, 01h
int 21h ;Aquí va a esperar entrada por teclado.
cmp al, 30h ; Lo compara con el ascii del cero que es 0x30.
jnz no_cero
mov ah, 09h
mov dx, Offset CERO ; El número es cero
int 21h
jmp fin ;Salta al fin para no ejecutar lo de abajo.
no_cero:
mov bl, 01h;
and al,bl ; Aquí usamos una máscara que ponemos en bl, el registro al queda modificado, el último bit nos dice si el número es par o impar.
cmp al, 01h
jnz es_impar
mov ah, 09h
mov dx, offset PAR ; Si llegó acá el número es par
int 21h
jmp fin
es_impar:
mov ah, 09h
mov dx, offset PAR ; Si llegó acá el número es impar
int 21h
fin:
mov ax,4c00h
int 21h ; finaliza el proceso y vuelve al DOS.