; 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

Embed on website

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