fork download
  1. section .data
  2. num1 dq 123456789
  3. num2 dq 987654321
  4. sum dq 0
  5.  
  6. section .text
  7. global _start
  8.  
  9. _start:
  10. ; Add num1 and num2
  11. mov rax, [num1]
  12. mov rbx, [num2]
  13. add rax, rbx
  14. mov [sum], rax
  15.  
  16. ; Print values
  17. mov rdi, num1_msg
  18. call print_uint64
  19. mov rdi, num2_msg
  20. call print_uint64
  21. mov rdi, sum_msg
  22. call print_uint64
  23.  
  24. ; Exit program
  25. mov rax, 60 ; syscall number for exit
  26. xor edi, edi ; status = 0
  27. syscall
  28.  
  29. print_uint64:
  30. ; Print uint64_t value in rdi
  31. mov rsi, rdi ; Move value to rsi for printf
  32. mov rdi, uint64_fmt ; Format string
  33. mov rax, 0 ; syscall number for printf
  34. syscall
  35. ret
  36.  
  37. section .data
  38. num1_msg db "First number: ", 0
  39. num2_msg db "Second number: ", 0
  40. sum_msg db "Sum: ", 0
  41. uint64_fmt db "%lu", 10, 0 ; Format string for uint64_t
Success #stdin #stdout 0s 5288KB
stdin
Standard input is empty
stdout
Standard output is empty