無涯 发表于 2013-3-3 00:17:22

汇编 栈的问题

   今天看了小甲鱼老师汇编视频,讲到有关栈的问题,提出了两个疑惑,可是看完视频到最后都好像没有解答耶。。。
到底 cpu如何知道哪段空间是当作栈来使用,如何确定哪个单元是栈顶?是不是cpu也没办法确定啊?!求各位大神抽空解答,谢谢~~~

NGtailang 发表于 2013-3-3 00:17:23

把哪里当做栈是程序员,也就是我们来定的不是电脑定的。只要你把ss:sp指向哪里,哪里就算栈,栈顶和栈空的问题,要看你是入栈还是出栈,多看看书理解吧

無涯 发表于 2013-3-3 00:18:17

我去,没鱼币了,自顶一下。。。。

無涯 发表于 2013-3-3 00:24:11

求大神赐教啊,,,再次自顶

無涯 发表于 2013-3-3 01:08:12

:Q:Q:Q:Q:Q:Q求解答

小小小小鱼 发表于 2013-3-3 02:22:43

我也是菜鸟~我的理解是~栈的大小就是偏移地址的大小~栈顶 就是当前 SS:SP

想游泳的鱼 发表于 2013-3-3 09:42:12

俺的理解是:SP的顶就是栈顶。SP的底就是栈底。SS定义了栈的大小。

想游泳的鱼 发表于 2013-3-3 10:03:23

不对。觉得应该这样理解。菩提本无树,明镜亦非台 。你定义了多少就是多少?没定义就没有。

但:但最大时SP的顶就是栈顶。SP的底就是栈底。SS定义了栈的大小。

L]V[G 发表于 2013-3-3 10:12:24

本帖最后由 L]V

1 栈:如果你没有在程序中指明,这是cpu自行分配的,是按照一定的规律来分配的,不同的机器,都不同
2 栈顶或者栈底:书上说了,如果栈里没有push任何数据,栈是空的,sp = 0,如果你传送了数据,那么就有一个栈顶,这是你创造出来的。
3 cpu只知道一段栈段的大小是64K,有一定的默认性和规律性,至于是什么,我也不清楚,这是cpu的设计者指定的。至于哪里是栈,哪里是栈顶,哪里是栈底,你可以修改,要看你对它“做了什么”。

183560656 发表于 2013-3-3 10:13:46

本帖最后由 183560656 于 2013-3-3 10:15 编辑

额   cpu不知道的哦   是我们自己决定的   你可以吧 ss 和ip 指向 0000:0070h 然后把DS 指向0000    然后入栈   再修改ds:的值再出栈看看是你原来入栈的值还是修改后的值

無涯 发表于 2013-3-3 17:41:52

谢谢,谢谢各位大神啦{:5_108:}{:5_108:}
页: [1]
查看完整版本: 汇编 栈的问题