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
To embed this project on your website, copy the following code and paste it into your website's HTML: