鱼C论坛

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

汇编一个小小的问题 我是新手!

[复制链接]
发表于 2013-7-20 19:36:55 | 显示全部楼层 |阅读模式
1鱼币
为什么SP后面是2 而不是0啊。
1.jpg

最佳答案

查看完整内容

棧可以理解为我们暂时存放东西的罐子,东西放进去,慢慢地堆满上来。棧在哪里?棧就是我们从内存地址中抽取一段没有被使用过的内存单元作为我们临时储存的罐子。 我们看内存单元地址是线性存在的,就像一条线,从上往下,从大到小排列,就像这样: (地址) ↓ 00 01 02 03(罐子口)→棧顶 04 。。。。。。。。 05 。。。。。。。。 06 。。。。。。。。 07 。。。。。。。。 08 。。。。。。。。 09(罐子 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-20 19:36:56 From FishC Mobile | 显示全部楼层
本帖最后由 遗忘c年华 于 2013-7-20 21:45 编辑

棧可以理解为我们暂时存放东西的罐子,东西放进去,慢慢地堆满上来。棧在哪里?棧就是我们从内存地址中抽取一段没有被使用过的内存单元作为我们临时储存的罐子。
我们看内存单元地址是线性存在的,就像一条线,从上往下,从大到小排列,就像这样:
(地址)

00
01
02
03(罐子口)→棧顶
04   。。。。。。。。
05   。。。。。。。。
06   。。。。。。。。
07   。。。。。。。。
08   。。。。。。。。
09(罐子底部)→棧底
10

由于我们存东西进罐子是从罐子底部(棧底)慢慢地慢慢地存到罐子口(棧顶),所以正如你所看到的,为什么我们的棧底是大地址,棧顶是小地址了,明白了吧。

评分

参与人数 2鱼币 +7 收起 理由
小甲鱼 + 5 用手机码字?辛苦了~~~~~
Dardy + 2 助人为乐

查看全部评分

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

使用道具 举报

发表于 2013-7-20 19:53:56 | 显示全部楼层
不要纠结什么前面后面,压栈是从大地址开始,而出栈是从小地直开始。
初始化空栈时,sp指向栈底,即大地址的地方。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-7-21 01:51:37 | 显示全部楼层

这个我知道 ,但是 SP 后面的不应该是0吗?怎么是2啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-21 02:18:22 From FishC Mobile | 显示全部楼层
S_18 发表于 2013-7-21 01:51
这个我知道 ,但是 SP 后面的不应该是0吗?怎么是2啊?

因为push运算是先要sp-2,再存入数据的懂了吗?pop指令整好相反,多看看几次视频教程的动画演示吧!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-21 03:56:13 | 显示全部楼层
因为push ax是要往栈压入新数据,那么栈需要腾出空间,所有mov sp, 2,这样子的话push压栈就有2个空间可以用来存放ax的内容啦,原理就像我们玩的盖楼游戏,有了新住户,可是楼层已经住满,那么要做就是继续往上盖楼,新住户就可以有地方住啦~楼主应该是想问这个吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-7-21 13:37:50 | 显示全部楼层
小甲鱼 发表于 2013-7-21 03:56
因为push ax是要往栈压入新数据,那么栈需要腾出空间,所有mov sp, 2,这样子的话push压栈就有2个空间可以用 ...

谢谢小甲鱼老师 我知道了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-7-21 13:38:42 | 显示全部楼层
遗忘c年华 发表于 2013-7-21 02:18
因为push运算是先要sp-2,再存入数据的懂了吗?pop指令整好相反,多看看几次视频教程的动画演示吧!

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

使用道具 举报

 楼主| 发表于 2013-7-21 14:23:43 | 显示全部楼层
小甲鱼 发表于 2013-7-21 03:56
因为push ax是要往栈压入新数据,那么栈需要腾出空间,所有mov sp, 2,这样子的话push压栈就有2个空间可以用 ...

小甲鱼老师 请问 哪里有MASM 6.1和UE下载 我的U盘还没到货 想提前学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-21 15:44:44 | 显示全部楼层
S_18 发表于 2013-7-21 14:23
小甲鱼老师 请问 哪里有MASM 6.1和UE下载 我的U盘还没到货 想提前学习

MASM5.0和6.15两个版本都很稳定:http://blog.fishc.com/602.html

UE百度下,很多地方有最新版本。

另外问题如果解决了,麻烦设置下最佳答案以及将题目分类设置为【已经解决】~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-29 07:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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