section .data
my_var dq 0x123456789ABCDEF0 ; 64-bit variable
msg db "Value of my_var (lower byte): 0x", 0
newline db 10
section .bss
hex_digit resb 2
section .text
global _start
_start:
; Копирование значения из памяти в регистр
mov rax, [my_var]
; Изменение значения в регистре
add rax, 0x10
; Запись нового значения обратно в память
mov [my_var], rax
; Вывод младшего байта
mov al, byte [my_var] ; Загрузить младший байт в AL
and al, 0x0F ; Маскировать для получения нижней нибблы (одна цифра в hex)
cmp al, 0x0A
jl is_digit
add al, 0x37 ; 'A'-'F'
jmp save_digit
is_digit:
add al, 0x30 ; '0'-'9'
save_digit:
mov [hex_digit], al
mov byte [hex_digit+1], 0
; Вывод строки
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 33
syscall
; Вывод значения
mov rax, 1
mov rdi, 1
mov rsi, hex_digit
mov rdx, 1
syscall
; Вывод новой строки
mov rax, 1
mov rdi, 1
mov rsi, newline
mov rdx, 1
syscall
; Выход
mov rax, 60
xor rdi, rdi
syscall
c2VjdGlvbiAuZGF0YQogICAgbXlfdmFyIGRxIDB4MTIzNDU2Nzg5QUJDREVGMCAgOyA2NC1iaXQgdmFyaWFibGUKICAgIG1zZyBkYiAiVmFsdWUgb2YgbXlfdmFyIChsb3dlciBieXRlKTogMHgiLCAwCiAgICBuZXdsaW5lIGRiIDEwCgpzZWN0aW9uIC5ic3MKICAgIGhleF9kaWdpdCByZXNiIDIKCnNlY3Rpb24gLnRleHQKICAgIGdsb2JhbCBfc3RhcnQKCl9zdGFydDoKICAgIDsg0JrQvtC/0LjRgNC+0LLQsNC90LjQtSDQt9C90LDRh9C10L3QuNGPINC40Lcg0L/QsNC80Y/RgtC4INCyINGA0LXQs9C40YHRgtGACiAgICBtb3YgcmF4LCBbbXlfdmFyXQoKICAgIDsg0JjQt9C80LXQvdC10L3QuNC1INC30L3QsNGH0LXQvdC40Y8g0LIg0YDQtdCz0LjRgdGC0YDQtQogICAgYWRkIHJheCwgMHgxMAoKICAgIDsg0JfQsNC/0LjRgdGMINC90L7QstC+0LPQviDQt9C90LDRh9C10L3QuNGPINC+0LHRgNCw0YLQvdC+INCyINC/0LDQvNGP0YLRjAogICAgbW92IFtteV92YXJdLCByYXgKCiAgICA7INCS0YvQstC+0LQg0LzQu9Cw0LTRiNC10LPQviDQsdCw0LnRgtCwCiAgICBtb3YgYWwsIGJ5dGUgW215X3Zhcl0gICA7INCX0LDQs9GA0YPQt9C40YLRjCDQvNC70LDQtNGI0LjQuSDQsdCw0LnRgiDQsiBBTAogICAgYW5kIGFsLCAweDBGICAgICAgICAgIDsg0JzQsNGB0LrQuNGA0L7QstCw0YLRjCDQtNC70Y8g0L/QvtC70YPRh9C10L3QuNGPINC90LjQttC90LXQuSDQvdC40LHQsdC70YsgKNC+0LTQvdCwINGG0LjRhNGA0LAg0LIgaGV4KQoKICAgIGNtcCBhbCwgMHgwQQogICAgamwgaXNfZGlnaXQKICAgIGFkZCBhbCwgMHgzNyAgIDsgJ0EnLSdGJwogICAgam1wIHNhdmVfZGlnaXQKCmlzX2RpZ2l0OgogICAgYWRkIGFsLCAweDMwICAgOyAnMCctJzknCgpzYXZlX2RpZ2l0OgogICAgbW92IFtoZXhfZGlnaXRdLCBhbAogICAgbW92IGJ5dGUgW2hleF9kaWdpdCsxXSwgMAoKICAgIDsg0JLRi9Cy0L7QtCDRgdGC0YDQvtC60LgKICAgIG1vdiByYXgsIDEKICAgIG1vdiByZGksIDEKICAgIG1vdiByc2ksIG1zZwogICAgbW92IHJkeCwgMzMKICAgIHN5c2NhbGwKCiAgICA7INCS0YvQstC+0LQg0LfQvdCw0YfQtdC90LjRjwogICAgbW92IHJheCwgMQogICAgbW92IHJkaSwgMQogICAgbW92IHJzaSwgaGV4X2RpZ2l0CiAgICBtb3YgcmR4LCAxCiAgICBzeXNjYWxsCgogICAgOyDQktGL0LLQvtC0INC90L7QstC+0Lkg0YHRgtGA0L7QutC4CiAgICBtb3YgcmF4LCAxCiAgICBtb3YgcmRpLCAxCiAgICBtb3YgcnNpLCBuZXdsaW5lCiAgICBtb3YgcmR4LCAxCiAgICBzeXNjYWxsCgogICAgOyDQktGL0YXQvtC0CiAgICBtb3YgcmF4LCA2MAogICAgeG9yIHJkaSwgcmRpCiAgICBzeXNjYWxsCg==