![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
展开全部
在汇编中 一个子程序(call)有几个参数(push)就需要几个RETURN(堆栈平衡) 因为push压入的是四字节 所以有几个push 也就需要几个RETN 4(push数量*4)
请采纳!!!
请采纳!!!
追问
如果有4个参数的话,Retn 4 代表的是 从堆栈弹出4个4字节的数据 然后在返回? 那谈出的数据 被丢弃了?
追答
四个参数就是retn 10 十六进制的十六
![](https://ecmb.bdimg.com/kmarketingadslogo/fc48c2040562611dd976dfc267a3114a_60_60.jpg)
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
从堆栈弹出4个字节,典型的stdcall约定的一环,由被调用方清理堆栈。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
RET操作数表示释放参数(由调用者传入)所占用的栈空间!
retn,retf是ret的两个版本,retn表示Near return。retf表示Far return。
欲了解更多,可参考《Intel® 64 and IA-32 Architectures Software Developer’s Manual》第4章4.2 INSTRUCTIONS中的RET指令!
retn,retf是ret的两个版本,retn表示Near return。retf表示Far return。
欲了解更多,可参考《Intel® 64 and IA-32 Architectures Software Developer’s Manual》第4章4.2 INSTRUCTIONS中的RET指令!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2019-03-29
展开全部
;一段函数
push eax, ...
push ebx, ...
ret
这样是不对的,堆栈不平衡。
加上
add esp, 相应长度,写在在retn之前。
或者retn 跟一个数,效果是一样的 。
push eax, ...
push ebx, ...
ret
这样是不对的,堆栈不平衡。
加上
add esp, 相应长度,写在在retn之前。
或者retn 跟一个数,效果是一样的 。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询