Cpu 寄存器中的字节存储:AL 在 RAX 中的什么位置?

Byte Storage in a Cpu Register: where is AL inside RAX?

假设我想在 RAX 寄存器中存储以下 64 位数字,寄存器中的字节顺序是什么?

10011111 10100000 11011111 00000001 00001111 00100110 00100110 11101000

RAX = full number; EAX = 00001111 00100110 00100110 11101000; AX = 00100110 11101000; AH = 00100110; AL = 11101000.

最低有效字节是存入AL吗?

寄存器存储的顺序是小端还是大端,还是始终相同?

在这种情况下,这些是正确的输出吗? AL = 232; AH = 38; AX = 9960; EAX = 254158568; RAX = 11502438643946366696

你的输出看起来是正确的(除了我没有计算任何高于 AL 和 AH 的值)。

big/little 字节顺序通常只适用于可寻址内存,对于寄存器来说它有点意义不大(除非你稍微扩展字节顺序的定义,就像你刚才那样 - 但请注意这种能力通过使用不同的寄存器 names/instructions 访问寄存器的某些部分是非常 x86/x64 特定的)。

恕我直言,在这里使用术语 Bit Numbering 以及 x86 参考文档中 AL、AH 等的定义更为正确。

另一方面,当RAX被保存到内存中时,AL将在具有最低地址的字节中...