当前位置: 代码迷 >> 汇编语言 >> 屡次call,但只有一个ret
  详细解决方案

屡次call,但只有一个ret

热度:106   发布时间:2016-05-02 04:34:08.0
多次call,但只有一个ret

int main()
{
    int a = 0;
printf("a=%d\n", a);

float f = 2.0f;
printf("f=%f\n", f);

return 0;
}


查看汇编代码,
call printf出现两次,但是ret只在程序末尾出现了一次。
ret是pop 返回地址并执行该地址的指令。

所以,不应该是第一次call printf后,调用ret,然后继续执行,直到第二次call printf,再调用ret?
------解决方案--------------------
那两次 call 对应的 ret 是在 printf 函数的里面,你看到的 ret 是 main 函数的 ret
  相关解决方案