Table 带地址或寄存器,汇编器 x86

Table with addresses or registers, assembler x86

我必须在操作后写入寄存器的目的地和值。

斜体字是我写的。粗体字段(如说明)是由我的教授编写的。

我曾尝试填写所有字段,但不太确定答案。 如果你能告诉我哪里出了问题,我会很高兴,谢谢! :)

push eax stores a register to memorypush有两个输出ESP-=4(寄存器),然后是[ESP]=eax(内存地址)。我想您可以将两个输出都放在 table.

中的一行中

这就是序列包含 LEA 以更早设置 ESP 的原因:普通代码不会这样做,但此分配需要知道 ESP 的数值。


你的第二个错误在 sub edx,ebx。 EDX 已被前一条指令清零,但 EBX 仍为 0x200。 sub 执行无符号/2 的补码二进制减法,它环绕,而不是饱和到零。在调试器中尝试,或在 C 中使用 uint32_t.