一个函数的返回地址存放在哪个寄存器里面啊。不是返回值。
RT。 本帖最后由 zzxzxj888 于 2016-11-22 12:41 编辑{:5_90:} zzxzxj888 发表于 2016-11-22 11:33
{:5_90:} 函数的返回地址在堆栈中 在在寄存器里,在栈里 xieglt 发表于 2016-11-22 19:02
在在寄存器里,在栈里
好的。谢谢了
xieglt 发表于 2016-11-22 19:02
在在寄存器里,在栈里
是ss段吗。64位下呢。看哪个呢 qq408477779 发表于 2016-12-26 15:37
是ss段吗。64位下呢。看哪个呢
16位函数调用演示
一、CALL , RET 调用函数
函数:
_MyfunPROC
...
RET
_MyfunENDP
调用:
CALL_Myfun
二、用 PUSH/POP 和 JMP 模拟函数调用
函数:
_MyfunPROC
POPAX
POPDS
JMP DS:AX
_MyfunENDP
调用:
PUSHCS
PUSHOFFSET _ReturnAddress
JMP _Myfun
_ReturnAddress:
32位下写法
_MyfunPROC
RET
_MyfunENDP
CALL_Myfun
PUSH/POPJMP模拟:
_Myfun PROC
POP EAX
JMP EAX
_Myfun ENDP
PUSH OFFSET _ReturnAddress
JMP_Myfun
_ReturnAddress: qq408477779 发表于 2016-12-26 15:37
是ss段吗。64位下呢。看哪个呢
64位的我不懂
页:
[1]