装配,NASM; 32位寄存器中的信息如何在子寄存器之间划分?

时间:2015-11-22 00:05:33

标签: assembly x86 nasm endianness cpu-registers

例如,EAX在AX,AH和AL之间划分。所以,如果我这样做:

push eax
mov eax, [szString] ;; where szString holds the string 'test'

然后将如何测试'字符串在三个子寄存器之间划分?例如,AX持有什么? 有些人可以解释为什么这是比特的吗?例如,字符串' test'它是如何分区的?

1 个答案:

答案 0 :(得分:-1)

AL将具有第一个t,AH将具有e,AX将具有et(te取决于您如何考虑较低字符和较高字符)。自从我接触到汇编程序以来,它已经有15到18年了,但无论如何,这就是我所记得的。

szString在内存中看起来像这样:

t    e    s    t
0x74 0x65 0x73 0x74

mov eax,[szString]

will have:
AL - 0x74
AH - 0x65
AX - 0x6574
EAX - 0x74736574

原始ASCII艺术:

[74][65][73][74]
[-----EAX------]
[--AX--]
[AL][AH]