section .data
my_var dq 0x123456789ABCDEF0
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]
and al, 0x0F
cmp al, 0x0A
jl is_digit
add al, 0x37
jmp save_digit
is_digit:
add al, 0x30
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
c2VjdGlvbiAuZGF0YQogICAgbXlfdmFyIGRxIDB4MTIzNDU2Nzg5QUJDREVGMCAgCiAgICBtc2cgZGIgIlZhbHVlIG9mIG15X3ZhciAobG93ZXIgYnl0ZSk6IDB4IiwgMAogICAgbmV3bGluZSBkYiAxMAoKc2VjdGlvbiAuYnNzCiAgICBoZXhfZGlnaXQgcmVzYiAyCgpzZWN0aW9uIC50ZXh0CiAgICBnbG9iYWwgX3N0YXJ0Cgpfc3RhcnQ6CiAgIAogICAgbW92IHJheCwgW215X3Zhcl0KCiAgIAogICAgYWRkIHJheCwgMHgxMAoKICAgIAogICAgbW92IFtteV92YXJdLCByYXgKCiAgICAKICAgIG1vdiBhbCwgYnl0ZSBbbXlfdmFyXSAgIAogICAgYW5kIGFsLCAweDBGICAgICAgICAgIAoKICAgIGNtcCBhbCwgMHgwQQogICAgamwgaXNfZGlnaXQKICAgIGFkZCBhbCwgMHgzNyAgIAogICAgam1wIHNhdmVfZGlnaXQKCmlzX2RpZ2l0OgogICAgYWRkIGFsLCAweDMwICAgCgpzYXZlX2RpZ2l0OgogICAgbW92IFtoZXhfZGlnaXRdLCBhbAogICAgbW92IGJ5dGUgW2hleF9kaWdpdCsxXSwgMAoKICAgIAogICAgbW92IHJheCwgMQogICAgbW92IHJkaSwgMQogICAgbW92IHJzaSwgbXNnCiAgICBtb3YgcmR4LCAzMwogICAgc3lzY2FsbAoKICAKICAgIG1vdiByYXgsIDEKICAgIG1vdiByZGksIDEKICAgIG1vdiByc2ksIGhleF9kaWdpdAogICAgbW92IHJkeCwgMQogICAgc3lzY2FsbAoKICAgIAogICAgbW92IHJheCwgMQogICAgbW92IHJkaSwgMQogICAgbW92IHJzaSwgbmV3bGluZQogICAgbW92IHJkeCwgMQogICAgc3lzY2FsbAoKICAgCiAgICBtb3YgcmF4LCA2MAogICAgeG9yIHJkaSwgcmRpCiAgICBzeXNjYWxsCg==