section .data
prompt db "Ingresar un digito (0-9): "
prompt_len equ $-prompt
msg_par db "El número es PAR"
msg_par_len equ $-msg_par
msg_impar db "El número es IMPAR"
msg_impar_len equ $-msg_impar
num times 2 db 0 ;un digito a leer y el enter
section .text
global _start
_start:
;mostramos el mensaje de solicitud
mov rax, 1 ;imprimir
mov rdi, 1 ;en pantalla
mov rsi, prompt
mov rdx, prompt_len
syscall
;leemos el digito
mov rax, 0 ;sysread
mov rdi, 0 ;teclado estandar
mov rsi, num
mov rdx, 2
syscall
mov al, [num] ;solo es una parte si solo son 2 digitos al, ah, ax, CONTENIDO EN CORCHETES NO LA DIRECCION
sub al, "0" ;letra 0 en ascci
verificar:
cmp al, 0 ;comparación y lo guarda en ZF
je es_par ;va ir a buscar al ZF
cmp al, 1
je es_impar
sub al,2
jmp verificar ;resta 2 y brinca d nuevo a verificar es un ciclo y un if
es_par:
mov rax, 1 ;imprimir
mov rdi, 1 ;en pantalla
mov rsi, msg_par
mov rdx, msg_par_len
syscall
jmp salir
es_impar:
mov rax, 1 ;imprimir
mov rdi, 1 ;en pantalla
mov rsi, msg_impar
mov rdx, msg_impar_len
syscall
salir:
mov rax, 60
mov rdi, 0
syscall
To embed this project on your website, copy the following code and paste it into your website's HTML: