section .data
msg db "Value of rcx (lower byte): 0x", 0
newline db 10
section .bss
hex_digit resb 2 ; One digit + null terminator
section .text
global _start
_start:
; Инициализация rax
mov rax, 0x123456789ABCDEF0
; Пересылка данных
mov rbx, rax
mov rcx, rbx
; Извлечение младшего байта (cl) и преобразование в ASCII hex
mov al, cl ; AL = младший байт rcx
and al, 0x0F ; Mask чтобы получить только младшие 4 бита (одна цифра)
cmp al, 0x0A
jl is_digit ; Если меньше 0xA, это цифра 0-9
add al, 0x37 ; Если больше или равно 0xA, это буква A-F
jmp save_digit
is_digit:
add al, 0x30 ; Преобразование в ASCII
save_digit:
mov [hex_digit], al
mov byte [hex_digit+1], 0
; Вывод строки "Value of rcx (lower byte): 0x"
mov rax, 1 ; sys_write
mov rdi, 1 ; stdout
mov rsi, msg ; message address
mov rdx, 30 ; message length
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 ; sys_exit
xor rdi, rdi
syscall
c2VjdGlvbiAuZGF0YQogICAgbXNnIGRiICJWYWx1ZSBvZiByY3ggKGxvd2VyIGJ5dGUpOiAweCIsIDAKICAgIG5ld2xpbmUgZGIgMTAKCnNlY3Rpb24gLmJzcwogICAgaGV4X2RpZ2l0IHJlc2IgMiA7IE9uZSBkaWdpdCArIG51bGwgdGVybWluYXRvcgoKc2VjdGlvbiAudGV4dAogICAgZ2xvYmFsIF9zdGFydAoKX3N0YXJ0OgogICAgOyDQmNC90LjRhtC40LDQu9C40LfQsNGG0LjRjyByYXgKICAgIG1vdiByYXgsIDB4MTIzNDU2Nzg5QUJDREVGMAoKICAgIDsg0J/QtdGA0LXRgdGL0LvQutCwINC00LDQvdC90YvRhQogICAgbW92IHJieCwgcmF4CiAgICBtb3YgcmN4LCByYngKCiAgICA7INCY0LfQstC70LXRh9C10L3QuNC1INC80LvQsNC00YjQtdCz0L4g0LHQsNC50YLQsCAoY2wpINC4INC/0YDQtdC+0LHRgNCw0LfQvtCy0LDQvdC40LUg0LIgQVNDSUkgaGV4CiAgICBtb3YgYWwsIGNsICAgICAgICAgOyBBTCA9INC80LvQsNC00YjQuNC5INCx0LDQudGCIHJjeAogICAgYW5kIGFsLCAweDBGICAgICAgIDsgTWFzayDRh9GC0L7QsdGLINC/0L7Qu9GD0YfQuNGC0Ywg0YLQvtC70YzQutC+INC80LvQsNC00YjQuNC1IDQg0LHQuNGC0LAgKNC+0LTQvdCwINGG0LjRhNGA0LApCgogICAgY21wIGFsLCAweDBBCiAgICBqbCAgaXNfZGlnaXQgICAgICAgOyDQldGB0LvQuCDQvNC10L3RjNGI0LUgMHhBLCDRjdGC0L4g0YbQuNGE0YDQsCAwLTkKICAgIGFkZCBhbCwgMHgzNyAgICAgICA7INCV0YHQu9C4INCx0L7Qu9GM0YjQtSDQuNC70Lgg0YDQsNCy0L3QviAweEEsINGN0YLQviDQsdGD0LrQstCwIEEtRgogICAgam1wIHNhdmVfZGlnaXQKCmlzX2RpZ2l0OgogICAgYWRkIGFsLCAweDMwICAgICAgIDsg0J/RgNC10L7QsdGA0LDQt9C+0LLQsNC90LjQtSDQsiBBU0NJSQoKc2F2ZV9kaWdpdDoKICAgIG1vdiBbaGV4X2RpZ2l0XSwgYWwKICAgIG1vdiBieXRlIFtoZXhfZGlnaXQrMV0sIDAKCiAgICA7INCS0YvQstC+0LQg0YHRgtGA0L7QutC4ICJWYWx1ZSBvZiByY3ggKGxvd2VyIGJ5dGUpOiAweCIKICAgIG1vdiByYXgsIDEgICAgICAgICAgOyBzeXNfd3JpdGUKICAgIG1vdiByZGksIDEgICAgICAgICAgOyBzdGRvdXQKICAgIG1vdiByc2ksIG1zZyAgICAgICAgOyBtZXNzYWdlIGFkZHJlc3MKICAgIG1vdiByZHgsIDMwICAgICAgICA7IG1lc3NhZ2UgbGVuZ3RoCiAgICBzeXNjYWxsCgogICAgOyDQktGL0LLQvtC0INGI0LXRgdGC0L3QsNC00YbQsNGC0LXRgNC40YfQvdC+0Lkg0YbQuNGE0YDRiwogICAgbW92IHJheCwgMQogICAgbW92IHJkaSwgMQogICAgbW92IHJzaSwgaGV4X2RpZ2l0CiAgICBtb3YgcmR4LCAxCiAgICBzeXNjYWxsCgogICAgOyDQktGL0LLQvtC0INC90L7QstC+0Lkg0YHRgtGA0L7QutC4CiAgICBtb3YgcmF4LCAxCiAgICBtb3YgcmRpLCAxCiAgICBtb3YgcnNpLCBuZXdsaW5lCiAgICBtb3YgcmR4LCAxCiAgICBzeXNjYWxsCgogICAgOyDQktGL0YXQvtC0CiAgICBtb3YgcmF4LCA2MCAgICAgICAgIDsgc3lzX2V4aXQKICAgIHhvciByZGksIHJkaQogICAgc3lzY2FsbAo=