社区
汇编语言
帖子详情
返回值该保存在哪里?
mingzi520
2009-06-08 02:51:19
如果某个子过程返回一个值,可以用ax保存,如果这个返回值大于16位(8086),用ax和dx保存
问题
我觉得子过程在返回时不应该改变寄存器的值,比如在子过程开始要把所用到的寄存器push到栈中,返回时要pop复原,而用ax保存返回值,这样就违背了这条规则,矛盾呀!
...全文
282
9
打赏
收藏
返回值该保存在哪里?
如果某个子过程返回一个值,可以用ax保存,如果这个返回值大于16位(8086),用ax和dx保存 问题 我觉得子过程在返回时不应该改变寄存器的值,比如在子过程开始要把所用到的寄存器push到栈中,返回时要pop复原,而用ax保存返回值,这样就违背了这条规则,矛盾呀!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mingzi520
2009-06-10
打赏
举报
回复
个位太热心了,谢了
xd217
2009-06-09
打赏
举报
回复
就定义个空内存(随便多大都可以)来放这些中间结果,如果内存不够,可以转到硬盘上(就是把硬盘当虚拟内存来用),这个就是。。。。。。我在网上学的,不知道对不,我没实践过,很惭愧。。
BAYNPU
2009-06-09
打赏
举报
回复
0、程序中使用N条PUSH指令,返回时也同样使用N条POP指令,否则造成堆栈不平衡.
子过程在返回后,用到寄存器的值应该不变才是!可ax用返回值改变了原来的值.
1、MOV AX,1234
PUSH AX;压椎前保护AX的值.
.... ;中间随便给AX赋给都可以.
POP AX;出椎后还原1234.
yuchsh
2009-06-09
打赏
举报
回复
好好读读INTEL 编程手册
array020
2009-06-08
打赏
举报
回复
AX,你自己定义的话随便哪个都可以,呵呵
mingzi520
2009-06-08
打赏
举报
回复
[Quote=引用 1 楼 jxc25 的回复:]
ax是累加器,dx是累加器扩展
都不是寄存器,没有矛盾
[/Quote]
"都不是寄存器" 什么意思?
只要瞻前顾后,哪里放返回值都一样,上面我说的是人们习惯性地:习惯的把返回值放到ax中,习惯先Push子过程要用到的寄存器的值,然后在返回前pop,还原寄存器,但这两个习惯产生冲突呀,子过程在返回后,用到寄存器的值应该不变才是!可ax用返回值改变了原来的值.
是不是我学到太死了,也许ax始终应该起临时保存作用.应该遵循的原则是:让任何过程改变他,而不影响程序
goodider
2009-06-08
打赏
举报
回复
可以用的。也可以像2楼说的方法。
既然楼主说的把开始的数据先入栈了。其实就是保存了AX的值。
wudi626
2009-06-08
打赏
举报
回复
也应该可以在数据段定义一个变量:
buf db ? ; 来存放你需要返回的值
jxc25
2009-06-08
打赏
举报
回复
ax是累加器,dx是累加器扩展
都不是寄存器,没有矛盾
delphi 默认情况下参数及
返回值
的
保存
位置
本文深入解析Delphi中参数及
返回值
的默认
保存
位置,包括eax、edx、ecx等寄存器的作用,以及
返回值
通常存放于eax中的原则。同时,文章附带实用技巧和关注建议。
函数的
返回值
保存
在哪里
本文探讨了函数
返回值
的存储机制,包括整型、浮点型、长整型及结构体的不同返回方式。详细解释了32位环境下,EAX和EDX寄存器如何传递4字节和8字节数据,以及结构体通过栈内存复制返回的复杂过程。
SpringMVC详解二、
返回值
与数据在域中的
保存
本文详细介绍了SpringMVC框架中不同类型的
返回值
及其应用场景,并解释了如何在不同的域对象中
保存
数据。
保存
SelectObject
返回值
的原因
本文解释了在使用SelectObject函数时为何需要
保存
其
返回值
。通过一个具体示例说明了
保存
返回值
的两个主要目的:一是为了恢复原先的GDI对象,二是确保能够正确释放资源。
函数调用详解(函数状态
保存
参数传递和
返回值
)
本文深入探讨了从汇编角度理解函数调用的机制,包括如何通过栈指针
保存
返回地址,如何利用寄存器和栈内存
保存
函数状态,以及如何处理参数和
返回值
超过寄存器数量的情况。
汇编语言
21,500
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章