汇编语言编写的程序,子程序的结尾用到ret与ret 参数对主程序有什么影响?

[复制链接]
查看11 | 回复3 | 2011-12-27 21:25:15 | 显示全部楼层 |阅读模式
如果只是用到不带参数的ret的话,就是返回主程序的时候pop出之前push的ip(远转移的话还有cs)。如果用的是带参数的ret的话,也就是retf指令,参数n表示在ret的基础上还在再将sp指针向后移动n个字节。也就是不仅仅弹出ip和cs,还多弹出了数据。...
回复

使用道具 举报

千问 | 2011-12-27 21:25:15 | 显示全部楼层
没影响,不用才会影响,ret是对于CALL后的返回,即恢复CALL时入栈的EIP值,应该是属于短跳吧。长跳的要恢复ECS,EIP两寄存器,好像是用retn,...
回复

使用道具 举报

千问 | 2011-12-27 21:25:15 | 显示全部楼层
子程序是RET,如果是中断必须是RETI...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行