;CICLO CON PAR IMPAR
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

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: