鱼C论坛

 找回密码
 立即注册
查看: 2237|回复: 9

[已解决]运算

[复制链接]
发表于 2017-12-6 12:00:09 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

x
1512532552939294016889.jpg 为啥要保存到栈中?
最佳答案
2017-12-6 14:15:30
xiaohaituan 发表于 2017-12-6 13:43
还想问下,变量的值在指令中改变,那保存在栈中的值会不会随之改变

不会的,变量的值的改变是改变当前寄存器中的值,并不会改变栈中的值的。往往当我们调用一个函数结束之后,就会使用pop命令弹出栈的值。
总的来说:栈就相当于一个“备份区”,你不能直接更改栈中数据(就像直接对栈中的数据进行加减乘除什么的,这一般来说是不允许的),当想保护某一个数据的时候,就push一下,当需要使用数据的时候,就POP一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-6 12:34:19 | 显示全部楼层
因为这里教的就是栈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-6 12:49:02 From FishC Mobile | 显示全部楼层
BngThea 发表于 2017-12-6 12:34
因为这里教的就是栈

可能我问的表达不够清楚,我是想问,保存这一步是不是多余的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-6 12:56:48 | 显示全部楼层
如果仅仅针对这一个程序而且楼主大人仅仅想得到本题的正确结果,那么压栈的操作完全可以不用!也就是说那几个push确实是多余的。
但是如果这一段代码是某一个大型程序的一小部分,那么这几个push就相当必要了!因为他可以起到保存变量的作用!!!而且为了程序的健壮性,最好在调用其他函数的时候,将几个寄存器中的变量进行压栈处理。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-6 13:27:25 From FishC Mobile | 显示全部楼层
可以理解为当再次用到这些变量并且赋值不同时,让计算机可以清楚的知道哪个变量属于哪个程序的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-6 13:27:56 | 显示全部楼层
xiaohaituan 发表于 2017-12-6 12:49
可能我问的表达不够清楚,我是想问,保存这一步是不是多余的?

哪一步?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-6 13:30:18 From FishC Mobile | 显示全部楼层
兰陵月 发表于 2017-12-6 13:27
哪一步?

入栈那一步
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-6 13:43:25 From FishC Mobile | 显示全部楼层
tailor_long 发表于 2017-12-6 12:56
如果仅仅针对这一个程序而且楼主大人仅仅想得到本题的正确结果,那么压栈的操作完全可以不用!也就是说那几 ...

还想问下,变量的值在指令中改变,那保存在栈中的值会不会随之改变
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-6 14:15:30 | 显示全部楼层    本楼为最佳答案   
xiaohaituan 发表于 2017-12-6 13:43
还想问下,变量的值在指令中改变,那保存在栈中的值会不会随之改变

不会的,变量的值的改变是改变当前寄存器中的值,并不会改变栈中的值的。往往当我们调用一个函数结束之后,就会使用pop命令弹出栈的值。
总的来说:栈就相当于一个“备份区”,你不能直接更改栈中数据(就像直接对栈中的数据进行加减乘除什么的,这一般来说是不允许的),当想保护某一个数据的时候,就push一下,当需要使用数据的时候,就POP一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-6 21:19:59 | 显示全部楼层

很有必要,你现在是看的程序不多,编写的程序也不长,等你越来越熟练汇编,你会发现栈的发明和使用是一个多么美妙的事情,要靠慢慢体会。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 18:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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