Ответ 1
Как предложил Питер Кордес, я бы представил данные как шестнадцатеричные значения:
RR RR RR RR EE EE HH LL
| | || ||
| | || AL
| | AH |
| | |___|
| | AX |
| |_________|
| EAX |
|_____________________|
RAX
... где RAX
- это 64-разрядный регистр, который существует в x86-64
.
Итак, если у вас были AH = 0x12
и AL = 0x34
, например:
00 00 00 00 00 00 12 34
| | || ||
| | || AL
| | AH |
| | |___|
| | AX |
| |_________|
| EAX |
|_____________________|
RAX
... тогда у вас были AX = 0x1234
и EAX = 0x00001234
и т.д.
Обратите внимание, что, как показано на этой диаграмме, AH
является единственным "странным" регистром, который не совпадает с нижними битами. Остальные (AL
, AX
, EAX
, RAX
для 64-битных) - это просто разные размеры, но все выровнены справа. (Например, два байта, отмеченные EE EE
на диаграмме, сами не имеют имени регистра.)