section .data
msg db "Value of rbx (lower byte): 0x", 0
newline db 10
section .bss
hex_digit resb 2
section .text
global _start
_start:
mov rax, 0x1111111111111111
mov rbx, 0x2222222222222222
push rax
push rbx
pop rbx
pop rax
mov al, bl
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, 30
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
c2VjdGlvbiAuZGF0YQogICAgbXNnIGRiICJWYWx1ZSBvZiByYnggKGxvd2VyIGJ5dGUpOiAweCIsIDAKICAgIG5ld2xpbmUgZGIgMTAKCnNlY3Rpb24gLmJzcwogICAgaGV4X2RpZ2l0IHJlc2IgMgoKc2VjdGlvbiAudGV4dAogICAgZ2xvYmFsIF9zdGFydAoKX3N0YXJ0OgogICAgbW92IHJheCwgMHgxMTExMTExMTExMTExMTExCiAgICBtb3YgcmJ4LCAweDIyMjIyMjIyMjIyMjIyMjIKCiAgICBwdXNoIHJheAogICAgcHVzaCByYngKCiAgICBwb3AgcmJ4CiAgICBwb3AgcmF4CgoKICAgIG1vdiBhbCwgYmwKICAgIGFuZCBhbCwgMHgwRgoKICAgIGNtcCBhbCwgMHgwQQogICAgamwgaXNfZGlnaXQKICAgIGFkZCBhbCwgMHgzNwogICAgam1wIHNhdmVfZGlnaXQKCmlzX2RpZ2l0OgogICAgYWRkIGFsLCAweDMwCgpzYXZlX2RpZ2l0OgogICAgbW92IFtoZXhfZGlnaXRdLCBhbAogICAgbW92IGJ5dGUgW2hleF9kaWdpdCsxXSwgMAoKICAgCiAgICBtb3YgcmF4LCAxCiAgICBtb3YgcmRpLCAxCiAgICBtb3YgcnNpLCBtc2cKICAgIG1vdiByZHgsIDMwCiAgICBzeXNjYWxsCgogICAgbW92IHJheCwgMQogICAgbW92IHJkaSwgMQogICAgbW92IHJzaSwgaGV4X2RpZ2l0CiAgICBtb3YgcmR4LCAxCiAgICBzeXNjYWxsCiAgIAogICAgbW92IHJheCwgMQogICAgbW92IHJkaSwgMQogICAgbW92IHJzaSwgbmV3bGluZQogICAgbW92IHJkeCwgMQogICAgc3lzY2FsbAoKICAgCiAgICBtb3YgcmF4LCA2MAogICAgeG9yIHJkaSwgcmRpCiAgICBzeXNjYWxsCg==