本文介绍了在装配code中的返回地址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
组装code是这样的:
The assembly code goes like this:
call next
next:
popl %eax
我调用next
,返回地址将被压入堆栈,右后认为?但是,在上述code,有什么返回地址?
I thought after call next
, the return address will be pushed onto the stack, right? But in the above code, what's the return address?
推荐答案
这code后执行%eax中都会有标签的下一个地址
After that code executes %eax will have the address of label "next"
- 呼叫分支到这恰好是下一条顺序指令和将返回地址,这始终是下一个顺序指令的地址的目标
- 的popl会弹出从堆栈中的返回地址到%EAX寄存器
净效果是%EAX指向标签下一个
The net effect is %eax points to label "next"
这篇关于在装配code中的返回地址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!