Código ensamblador
Publicado por Jacksson Yamil Montoya Asprilla (1 intervención) el 24/04/2021 20:50:57
Hola buenas tardes.
Un saludo cordial
Solicito de su ayudad para 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.
INTRO db "Ingrese un número y presione Enter: $"
PAR db "El numero es par$"
IMPAR db "El numero es impar$"
CERO db "El numero 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.
Me sale un mensaje cuando lo corro: "unknown opcode skipped: 67
not 8086 instruction - not supported yet."
Un saludo cordial
Solicito de su ayudad para 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.
INTRO db "Ingrese un número y presione Enter: $"
PAR db "El numero es par$"
IMPAR db "El numero es impar$"
CERO db "El numero 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.
Me sale un mensaje cuando lo corro: "unknown opcode skipped: 67
not 8086 instruction - not supported yet."
Valora esta pregunta


0