装配中的减法顺序

时间:2015-05-31 20:41:49

标签: assembly x86 calling-convention att

所以我有。

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)

1 个答案:

答案 0 :(得分:7)

movl 8(%ebp), %eax将您的 int a 带入%EAX注册表中。

movswl 12(%ebp), %edx将您的短b 带入%EDX注册。

由于subl %edx, %eax从%EAX中减去%EDX,您获得(a - b)