Как переместить регистр 64-бит в 8-бит fasm

Я сейчас пишу свой первый компилятор(до этого писал только интерпретаторы) на питоне. И до этого я не работал с ассемблером, решил сделать с помощью fasm.

И я хочу записать 8-бит в память, и это число я достаю с стека с помощью pop и в стеке числа должны быть 64-битовые. Но для того, что бы записать 8-бит как я понял мне нужен регистр на 8-бит, как мне из стека достать число и перевести его в 8-бит?


Ответы (2 шт):

Автор решения: farkon00

Я сейчас решил посмотреть в похожий компилятор и нашёл вариант, который работает, но я не полностью понимаю почему, как я понимаю эти регистры как то связаны, но чтение и запись выглядит так.

pop rax
pop rbx
mov [mem+rax], bl
pop rax
xor rbx, rbx
mov bl, [mem+rax]
push rbx
→ Ссылка
Автор решения: Илья К

Используйте подходящий вариант команды MOVZX

→ Ссылка