IA-32汇编:8位操作对32位寄存器的影响

时间:2015-06-05 19:05:45

标签: assembly ia-32

在计算机科学课程中,我使用逆向工程技术(即反汇编文件并对其进行分析)给了我一个二进制文件和任务,以找出它的作用。 我偶然发现了一行IA-32指令:

add    %esi,%ecx

我了解到后缀l的命令在32位寄存器上运行,后缀w的命令在16位寄存器上运行,我认为(但不知道),没有后缀的运算符在8位寄存器上运行。 编辑:请参阅罗斯里奇的评论,这些评论会伪造我的假设。

所以我的问题是:

  1. 我的假设是否正确?
  2. 如果是这样,上述指令的效果(与addl相比)是什么 - 以及submov等其他操作会产生什么影响?
  3. 提前致谢!

1 个答案:

答案 0 :(得分:4)

通常,如果给出了正确的寄存器名称,则后缀被忽略/不重要。所以上面的指令是32位指令,因为esi和ecx是32位寄存器。