|
主题 : : 设置栈空间的问题 [已解决] |
回复[ 8次 ]
点击[ 397次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2009-08-03 10:44 ]
[引用]
[回复]
[ top ] | |
荣誉值:1
信誉值:4
注册日期:2009-07-29 16:03 |
把一段地址作为栈空间,如内存10010H-1001FH,我的理解是把SS置为1001,SP置为10,栈空间为SS:00-SS:SP。
可是书中图3.13,内存10010H-1001FH为栈空间,SS=1000H,SP=20H。这样设置栈空间是如何做到的,栈的大小怎么确定? | | |
|
|
|
|
[第1楼]
[ 回复时间:2009-08-04 15:55 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2009-07-21 15:19 |
|
|
|
|
|
[第2楼]
[ 回复时间:2009-08-04 17:44 ]
[引用]
[回复]
[ top ] | |
荣誉值:12
信誉值:0
注册日期:2009-07-08 17:05 |
SS:SP只是确定一个栈顶地址,栈最大可以是64K,但是具体这个栈多大是靠自己划分的,CPU并不知道栈段有多大。SS:SP只是确定一个点,这个范围有多大就要靠我们自己掌握了。
具体可以看61页3.8栈顶超界,67页阴影部分“栈的综述”,69页“段的综述” | | |
|
|
|
|
[第3楼]
[ 回复时间:2009-08-06 09:24 ]
[引用]
[回复]
[ top ] | |
荣誉值:1
信誉值:4
注册日期:2009-07-29 16:03 |
我的意思是,我想把栈空间设为10010H-1001FH 怎么设? | | |
|
|
|
|
[第4楼]
[ 回复时间:2009-08-18 13:40 ]
[引用]
[回复]
[ top ] | |
荣誉值:6
信誉值:0
注册日期:2009-08-01 16:58 |
mov ax,1001h
mov ss,ax
mov sp,20h 初始化一个空栈
书上有说明的。 | | |
|
|
|
|
[第5楼]
[ 回复时间:2009-08-19 00:06 ]
[引用]
[回复]
[ top ] | |
荣誉值:15
信誉值:0
注册日期:2009-07-08 20:35 |
我不是比较赞成二楼的,把栈空间设为10010H-1001FH 只需要把栈顶设置下就行了,然后空间就成了要求的16B在小了 | | |
|
|
|
|
[第6楼]
[ 回复时间:2009-08-19 00:08 ]
[引用]
[回复]
[ top ] | |
荣誉值:15
信誉值:0
注册日期:2009-07-08 20:35 |
我比较赞成二楼的,把栈空间设为10010H-1001FH 只需要把栈顶设置下就行了,然后空间就成了要求的16B大小了(刚才把字打错了) | | |
|
|
|
|
[第7楼]
[ 回复时间:2009-08-19 00:23 ]
[引用]
[回复]
[ top ] | |
荣誉值:15
信誉值:0
注册日期:2009-07-08 20:35 |
|
|
|
|
|
[第8楼]
[ 回复时间:2009-09-07 10:21 ]
[引用]
[回复]
[ top ] | |
荣誉值:1
信誉值:4
注册日期:2009-07-29 16:03 |
此贴由 贴主 于 [ 2009-09-07 10:21 ] 结贴。 结贴原因:问题已解决 | | |