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

IA-32 assembly: Effect of 8 bit operations on 32 bit registers

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

add    %esi,%ecx

我了解到后缀 l 的命令在 32 位寄存器上运行,后缀 w 的命令在 16 位寄存器上运行,我认为(但不知道)没有后缀的运算符对 8 位寄存器进行操作。 编辑:请参阅 Ross Ridge 的评论,它推翻了我的假设。

所以我的问题是:

  1. 我的上述假设是否正确?
  2. 如果是这样,上述指令的效果是什么(与 addl 相比)——以及其他操作如 submov 等有什么效果?

提前致谢!

通常情况下,如果给出了正确的寄存器名称,后缀 ignored/not 很重要。所以上面的指令是32位指令,因为esi和ecx是32位寄存器。