. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
寄存器(内存访问)
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
关于教程中问题3.11中SP值的问题
[待解决]
回复[
2
次 ] 点击[
302
次 ]
zz63948992
[帖 主]
[ 发表时间:2013-08-01 17:07 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2013-08-01 17:00
问题3.11
如果将10000H~1FFFFH这段空间当做栈段,初始状态是空的,此时,SS=1000H,SP=?
此时整个栈空间占了最大值64KB,计算下来SP应该等于10000H才对,但SP是一个字节最大只能表示FFFFH的数,所以最终SP=0000H,但这时岂不是指向了整个栈空间的最上端?下次压栈的时候压到哪儿去了呢?
a380556791
[第
1
楼]
[ 回复时间:2013-08-01 18:42 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:4
信誉值:0
注册日期:2013-05-23 21:42
因为压栈的时候执行的是(SP)=(SP)-2,所以sp=0000H-2=0FFFEH
而压栈时SS是不会改变的,所以用到的两个内存单元还是1000H:0FFFFH和1000H:0FFFEH
如果不好理解的话你就想成这个栈是循环的,首尾相接,那么0FFFFH的下一个偏移地址是0000H
zz63948992
[第
2
楼]
[ 回复时间:2013-08-01 20:07 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2013-08-01 17:00
懂了,0000H-2H=FFFEH
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved