鱼C论坛

 找回密码
 立即注册
查看: 6646|回复: 8

一个函数的返回地址存放在哪个寄存器里面啊。不是返回值。

[复制链接]
发表于 2016-11-22 10:51:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
RT。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-11-22 11:33:21 | 显示全部楼层
本帖最后由 zzxzxj888 于 2016-11-22 12:41 编辑

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-11-22 12:41:12 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-22 19:02:00 | 显示全部楼层
函数的返回地址在堆栈中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-22 19:02:06 From FishC Mobile | 显示全部楼层
在在寄存器里,在栈里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-26 15:22:02 | 显示全部楼层
xieglt 发表于 2016-11-22 19:02
在在寄存器里,在栈里

好的。谢谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-26 15:37:08 | 显示全部楼层
xieglt 发表于 2016-11-22 19:02
在在寄存器里,在栈里

是ss段吗。64位下呢。看哪个呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-10 15:20:36 | 显示全部楼层
qq408477779 发表于 2016-12-26 15:37
是ss段吗。64位下呢。看哪个呢

16位函数调用演示
一、CALL , RET 调用函数
函数:
_Myfun  PROC
        ...
        RET
_Myfun  ENDP
调用:
CALL  _Myfun

二、用 PUSH/POP 和 JMP 模拟函数调用
函数:
_Myfun  PROC
      POP  AX
      POP  DS
      JMP   DS:AX
_Myfun  ENDP
调用:
       PUSH  CS
       PUSH  OFFSET _ReturnAddress
       JMP   _Myfun
_ReturnAddress:

32位下写法
_Myfun  PROC
       RET
_Myfun  ENDP

CALL  _Myfun

PUSH/POP  JMP  模拟:
_Myfun   PROC
       POP   EAX
       JMP    EAX
_Myfun   ENDP

       PUSH OFFSET _ReturnAddress
       JMP  _Myfun
_ReturnAddress:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-10 15:21:26 | 显示全部楼层
qq408477779 发表于 2016-12-26 15:37
是ss段吗。64位下呢。看哪个呢

64位的我不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-19 18:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表