; Addition of two single-digit numbers
; NASM x86-64 Linux
section .data
msg1 db "Enter first number (0-9): "
len1 equ $ - msg1
msg2 db "Enter second number (0-9): "
len2 equ $ - msg2
msg3 db "Addition is: "
len3 equ $ - msg3
newline db 10
section .bss
num1 resb 1
num2 resb 1
result resb 1
section .text
global _start
_start:
; --------------------
; Read first number
; --------------------
mov rax, 1
mov rdi, 1
mov rsi, msg1
mov rdx, len1
syscall
mov rax, 0
mov rdi, 0
mov rsi, num1
mov rdx, 1
syscall
; --------------------
; Read second number
; --------------------
mov rax, 1
mov rdi, 1
mov rsi, msg2
mov rdx, len2
syscall
mov rax, 0
mov rdi, 0
mov rsi, num2
mov rdx, 1
syscall
; --------------------
; Convert ASCII to number
; --------------------
mov al, [num1]
sub al, '0'
mov [num1], al
mov al, [num2]
sub al, '0'
mov [num2], al
; --------------------
; Addition
; --------------------
mov al, [num1]
add al, [num2]
mov [result], al
; --------------------
; Convert result to ASCII
; --------------------
mov al, [result]
add al, '0'
mov [result], al
; --------------------
; Display "Addition is:"
; --------------------
mov rax, 1
mov rdi, 1
mov rsi, msg3
mov rdx, len3
syscall
; --------------------
; Display result
; --------------------
mov rax, 1
mov rdi, 1
mov rsi, result
mov rdx, 1
syscall
; --------------------
; New line
; --------------------
mov rax, 1
mov rdi, 1
mov rsi, newline
mov rdx, 1
syscall
; --------------------
; Exit
; --------------------
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: