section .data
num1 dq 123456789
num2 dq 987654321
sum dq 0
section .text
global _start
_start:
; Add num1 and num2
mov rax, [num1]
mov rbx, [num2]
add rax, rbx
mov [sum], rax
; Print values
mov rdi, num1_msg
call print_uint64
mov rdi, num2_msg
call print_uint64
mov rdi, sum_msg
call print_uint64
; Exit program
mov rax
, 60 ; syscall number
for exit xor edi, edi ; status = 0
syscall
print_uint64:
; Print uint64_t value in rdi
mov rsi
, rdi
; Move value to rsi
for printf mov rdi, uint64_fmt ; Format string
mov rax
, 0 ; syscall number
for printf syscall
ret
section .data
num1_msg db "First number: ", 0
num2_msg db "Second number: ", 0
sum_msg db "Sum: ", 0
uint64_fmt db "%lu", 10, 0 ; Format string for uint64_t
c2VjdGlvbiAuZGF0YQogICAgbnVtMSBkcSAxMjM0NTY3ODkKICAgIG51bTIgZHEgOTg3NjU0MzIxCiAgICBzdW0gZHEgMAoKc2VjdGlvbiAudGV4dAogICAgZ2xvYmFsIF9zdGFydAoKX3N0YXJ0OgogICAgOyBBZGQgbnVtMSBhbmQgbnVtMgogICAgbW92IHJheCwgW251bTFdCiAgICBtb3YgcmJ4LCBbbnVtMl0KICAgIGFkZCByYXgsIHJieAogICAgbW92IFtzdW1dLCByYXgKCiAgICA7IFByaW50IHZhbHVlcwogICAgbW92IHJkaSwgbnVtMV9tc2cKICAgIGNhbGwgcHJpbnRfdWludDY0CiAgICBtb3YgcmRpLCBudW0yX21zZwogICAgY2FsbCBwcmludF91aW50NjQKICAgIG1vdiByZGksIHN1bV9tc2cKICAgIGNhbGwgcHJpbnRfdWludDY0CgogICAgOyBFeGl0IHByb2dyYW0KICAgIG1vdiByYXgsIDYwICAgICAgICAgOyBzeXNjYWxsIG51bWJlciBmb3IgZXhpdAogICAgeG9yIGVkaSwgZWRpICAgICAgICA7IHN0YXR1cyA9IDAKICAgIHN5c2NhbGwKCnByaW50X3VpbnQ2NDoKICAgIDsgUHJpbnQgdWludDY0X3QgdmFsdWUgaW4gcmRpCiAgICBtb3YgcnNpLCByZGkgICAgICAgIDsgTW92ZSB2YWx1ZSB0byByc2kgZm9yIHByaW50ZgogICAgbW92IHJkaSwgdWludDY0X2ZtdCA7IEZvcm1hdCBzdHJpbmcKICAgIG1vdiByYXgsIDAgICAgICAgICAgOyBzeXNjYWxsIG51bWJlciBmb3IgcHJpbnRmCiAgICBzeXNjYWxsCiAgICByZXQKCnNlY3Rpb24gLmRhdGEKICAgIG51bTFfbXNnIGRiICJGaXJzdCBudW1iZXI6ICAiLCAwCiAgICBudW0yX21zZyBkYiAiU2Vjb25kIG51bWJlcjogIiwgMAogICAgc3VtX21zZyBkYiAiU3VtOiAiLCAwCiAgICB1aW50NjRfZm10IGRiICIlbHUiLCAxMCwgMCA7IEZvcm1hdCBzdHJpbmcgZm9yIHVpbnQ2NF90