fork download
  1. section .data
  2. msg db "Value of rbx (lower byte): 0x", 0
  3. newline db 10
  4.  
  5. section .bss
  6. hex_digit resb 2
  7.  
  8. section .text
  9. global _start
  10.  
  11. _start:
  12. ; Инициализация регистров
  13. mov rax, 0x1111111111111111
  14. mov rbx, 0x2222222222222222
  15.  
  16. ; Сохранение в стеке
  17. push rax
  18. push rbx
  19.  
  20. ; Извлечение из стека
  21. pop rbx
  22. pop rax
  23.  
  24.  
  25. ; Extract lower byte of rbx
  26. mov al, bl
  27. and al, 0x0F
  28.  
  29. cmp al, 0x0A
  30. jl is_digit
  31. add al, 0x37
  32. jmp save_digit
  33.  
  34. is_digit:
  35. add al, 0x30
  36.  
  37. save_digit:
  38. mov [hex_digit], al
  39. mov byte [hex_digit+1], 0
  40.  
  41. ; Вывод строки
  42. mov rax, 1
  43. mov rdi, 1
  44. mov rsi, msg
  45. mov rdx, 30
  46. syscall
  47.  
  48. ; Вывод значения
  49. mov rax, 1
  50. mov rdi, 1
  51. mov rsi, hex_digit
  52. mov rdx, 1
  53. syscall
  54. ; Вывод новой строки
  55. mov rax, 1
  56. mov rdi, 1
  57. mov rsi, newline
  58. mov rdx, 1
  59. syscall
  60.  
  61. ; Выход
  62. mov rax, 60
  63. xor rdi, rdi
  64. syscall
  65.  
Success #stdin #stdout 0s 5284KB
stdin
Standard input is empty
stdout
Value of rbx (lower byte): 0x2