汇编中的减法顺序

Subtraction order in assembly

所以我有。

pushl %ebp
movl %esp, %ebp
movswl 12(%ebp), %edx
movl 8(%ebp), %eax
subl %edx, %eax
popl %ebp
ret

如果说我的函数调用 2 个变量:function(int a, short b).

当我调用减法时,它是(b - a)还是(a - b)。 eax 是存储值的地方,如果我是正确的,所以我想说它将是 (a - b).

movl 8(%ebp), %eax 将您的 int a 放入 %EAX 寄存器中。

movswl 12(%ebp), %edx 将您的 short b 放入 %EDX 寄存器。

因为 subl %edx, %eax 从 %EAX 中减去 %EDX 你得到 (a - b)