【问题标题】:Subtraction order in assembly汇编中的减法顺序
【发布时间】:2015-05-31 20:41:49
【问题描述】:

所以我有。

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)

【问题讨论】:

  • ISTM 很容易尝试一下。

标签: assembly x86 calling-convention att


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多