+ -
当前位置:首页 → 问答吧 → 简单小题白给分

简单小题白给分

时间:2011-10-23

来源:互联网

通过这个汇编写C 谢谢大家了先

作者: followme_1987   发布时间: 2011-10-23

这个形式的汇编看得不太懂

应该只是一个只是一个相减的函数而已

作者: WJN92   发布时间: 2011-10-23

C/C++ code

void foo(int a, int b, int *c){
    *c = a-b;
}

int main(){

}


gcc 3.4.2(mingw-special)
gcc a.c -O2 -o a.exe 

objdump -D a.exe的结果:(和给出来的相比 使用的edx和eax交换了 不过对于实参的效果是一样的
Assembly code


00401290 <_foo>:
  401290:    55                       push   %ebp
  401291:    89 e5                    mov    %esp,%ebp
  401293:    8b 55 0c                 mov    0xc(%ebp),%edx
  401296:    8b 45 08                 mov    0x8(%ebp),%eax
  401299:    29 d0                    sub    %edx,%eax
  40129b:    8b 55 10                 mov    0x10(%ebp),%edx
  40129e:    89 02                    mov    %eax,(%edx)
  4012a0:    5d                       pop    %ebp
  4012a1:    c3                       ret    

作者: pochioly   发布时间: 2011-10-23