addl指令做了哪些不同的事情?

时间:2018-05-02 09:10:33

标签: c assembly x86 att

我对x86中的添加指令感到困惑。

这是原始c代码:

int a = 1;
int b = 2;
int c = 0;

void add() { 
c = a + b;      
}

我把它翻译成汇编语言并得到了这个:

add:
pushl   %ebp
movl    %esp, %ebp
movl    a, %edx
movl    b, %eax
addl    %edx, %eax // add instruction
movl    %eax, c    // why is it stored in eax?
popl    %ebp
ret

edx+eax的结果是否应该存储在edx中? 为什么它存储在eax中? 或者可能是我的编译器以不同的方式处理事情?

0 个答案:

没有答案