我对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
中?
或者可能是我的编译器以不同的方式处理事情?