section .data
    prompt_n1 db "teclea el primer numero (5 digitos, ej. 00045)", 10
    prompt_n1_len equ $-prompt_n1

    prompt_n2 db "teclea el segundo numero (5 digitos, ej. 00045)", 10
    prompt_n2_len equ $-prompt_n2

    mensaje_res db "La suma es: "
    mensaje_res_len equ $-mensaje_res

    num1 times 6 db 0
    num2 times 6 db 0

    resultado times 6 db 0
    salto db 10


section .text
    global _start

_start:

    ;pedir y lerr el primer numero
    mov rax, 1                  
    mov rdi, 1                 
    mov rsi, prompt_n1
    mov rdx, prompt_n1_len
    syscall

    mov rax, 0                 
    mov rdi, 0                 
    mov rsi, num1
    mov rdx, 6                
    syscall

    ;pedir y leer el segundo numero
    mov rax, 1
    mov rdi, 1
    mov rsi, prompt_n2
    mov rdx, prompt_n2_len
    syscall

    mov rax, 0
    mov rdi, 0
    mov rsi, num2
    mov rdx, 6
    syscall

    ;convwerie num1 de ascii a entero

    xor rcx, rcx
    xor rax, rax
    mov al, [num1]
    sub al, "0"
    mov rbx, 10000
    mul rbx
    add rcx, rax

    xor rax, rax
    mov al, [num1 + 1]
    sub al, "0"
    mov rbx, 1000
    mul rbx
    add rcx, rax

    xor rax, rax
    mov al, [num1 + 2]
    sub al, "0"
    mov rbx, 100
    mul rbx
    add rcx, rax

    xor rax, rax
    mov al, [num1 + 3]
    sub al, "0"
    mov rbx, 10
    mul rbx
    add rcx, rax

    xor rax, rax
    mov al, [num1 + 4]
    sub al, "0"
    add rcx, rax

    ;convwerie num2 de ascii a entero
    xor r8, r8
    
    xor rax, rax
    mov al, [num2]
    sub al, "0"
    mov rbx, 10000
    mul rbx
    add r8, rax

    xor rax, rax
    mov al, [num2 + 1]
    sub al, "0"
    mov rbx, 1000
    mul rbx
    add r8, rax

    xor rax, rax
    mov al, [num2 + 2]
    sub al, "0"
    mov rbx, 100
    mul rbx
    add r8, rax

    xor rax, rax
    mov al, [num2 + 3]
    sub al, "0"
    mov rbx, 10
    mul rbx
    add r8, rax

    xor rax, rax
    mov al, [num2 + 4]
    sub al, "0"
    add r8, rax

    ;sumar
    mov rax, rcx
    add rax, r8

    ;separar los digitioa y convertir a ascii
    mov rbx, 100000
    xor rdx, rdx
    div rbx
    add rax, "0"
    mov [resultado], al

    mov rax, rdx
    mov rbx, 10000
    xor rdx, rdx
    div rbx
    add rax, "0"
    mov [resultado + 1], al

    mov rax, rdx
    mov rbx, 1000
    xor rdx, rdx
    div rbx
    add rax, "0"
    mov [resultado + 2], al

    mov rax, rdx
    mov rbx, 100
    xor rdx, rdx
    div rbx
    add rax, "0"
    mov [resultado + 3], al

    mov rax, rdx
    mov rbx, 10
    xor rdx, rdx
    div rbx
    add rax, "0"
    mov [resultado + 4], al

    add dl, "0"
    mov [resultado + 5], dl

    ;imprimir la suma y el resultado
    mov rax, 1
    mov rdi, 1
    mov rsi, mensaje_res
    mov rdx, mensaje_res_len
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, resultado
    mov rdx, 6                  
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, salto
    mov rdx, 1
    syscall

    ;salir
    mov rax, 60
    xor rdi, rdi                
    syscall

Embed on website

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