. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
寄存器(内存访问)
主题 : :
当SS:SP遇到64KB栈段?
[待解决]
回复[
16
次 ] 点击[
1026
次 ]
ghost2003
[帖 主]
[ 发表时间:2010-04-26 10:27 ]
荣誉值:2
信誉值:8
注册日期:2010-04-03 11:03
书上原文:
如果将10000h~1ffffh这个短的空间当做栈段(64kb),初始状态栈是空的。栈的底部内存单元地址为 1000:fffe
这个“1000:fffe”是怎么来的?
我只知道 如果将1000h~100f这个段的控件当做栈来用,初始状态栈是空的,栈的底部内存单元地址为1000:1010
scuzg
[第
1
楼]
[ 回复时间:2010-04-26 17:44 ]
荣誉值:307
信誉值:0
注册日期:2009-03-15 23:46
弄清楚栈底的定义就明白了。
什么是栈底呢?栈底是堆栈存放第一个数据的位置。
栈底偏移量的值仅仅和SP的初值有关,初始化64K堆栈时SP=0,这个时候堆栈是空的;如果存放第一个数据,按照PUSH指令功能,应该是:
SP<-SP-2
(SP)=入栈数据
SP的值由原来的0减去2,就是0fffeh。
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved