Assembly 装配中的减法顺序

Assembly 装配中的减法顺序,assembly,x86,calling-convention,att,Assembly,X86,Calling Convention,Att,我也是 pushl %ebp movl %esp, %ebp movswl 12(%ebp), %edx movl 8(%ebp), %eax subl %edx, %eax popl %ebp ret 如果说我的函数调用了两个变量:functionint a,short b 当我叫减法时,是b-a还是a-b。如果我是正确的,eax是存储值的地方,所以我想说它将是a-b。movl 8%ebp,%eax将您的int a带到%eax寄存器中 movswl 12%ebp,%edx将您的短b带到%ed

我也是

pushl %ebp
movl %esp, %ebp
movswl 12(%ebp), %edx
movl 8(%ebp), %eax
subl %edx, %eax
popl %ebp
ret
如果说我的函数调用了两个变量:functionint a,short b

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

movl 8%ebp,%eax将您的int a带到%eax寄存器中

movswl 12%ebp,%edx将您的短b带到%edx寄存器中

由于subl%edx,%eax从%eax中减去%edx,您获得了a-bmovl 8%ebp,%eax将您的int a带到%eax寄存器中

movswl 12%ebp,%edx将您的短b带到%edx寄存器中


由于subl%edx,%eax从%eax中减去%edx,因此您得到了一个-b

ISTM,即简单地尝试它非常容易。ISTM表示简单地尝试它非常容易。