关于x86汇编中32位寄存器的子部分,我有一个问题:寄存器的较低子部分(当使用时)是否被视为相应32位寄存器的一部分?
ror cl,2 ror cl,2 push ecx pop eax
字符串以上面的代码部分为例,由于CL是ECX寄存器的一个子部分,当我将寄存器的内容推送到堆栈上时,CL子部分中的内容也会被推送到堆栈上吗?或者它们是分开处理的?假设我将堆栈弹出到EAX寄存器,那么之前CL寄存器中的内容是否会进入EAX寄存器?
CL
ECX
EAX
nx7onnlm1#
ECX寄存器在其下部包含CX,其下部包含CH和CL,如下图所示。当修改存储在CL中的值时,也会更改CX和ECX,但不会更改CH。
CX
CH
回答您的问题:Q: 当我将寄存器[ ECX ]的内容压入堆栈时,CL子部分中的内容也会被压入堆栈吗?还是它们被分开处理?.**A:**All in one shot. CL是ECX的一部分。CL只是处理器提供的访问ECX的一部分的方式。问: 假设我将堆栈弹出到EAX寄存器上,那么之前CL寄存器中的内容是否会进入EAX寄存器?。**A:**是的,更准确地说,CL中的内容将进入AL。
AL
的数据
1条答案
按热度按时间nx7onnlm1#
ECX
寄存器在其下部包含CX
,其下部包含CH
和CL
,如下图所示。当修改存储在CL
中的值时,也会更改CX
和ECX
,但不会更改CH
。回答您的问题:
Q: 当我将寄存器[
ECX
]的内容压入堆栈时,CL
子部分中的内容也会被压入堆栈吗?还是它们被分开处理?.**A:**All in one shot.
CL
是ECX
的一部分。CL
只是处理器提供的访问ECX
的一部分的方式。问: 假设我将堆栈弹出到
EAX
寄存器上,那么之前CL
寄存器中的内容是否会进入EAX
寄存器?。**A:**是的,更准确地说,
CL
中的内容将进入AL
。的数据