. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  初学汇编 关于问题3.11的疑惑 栈空栈满  [已解决] 回复[ 3次 ]   点击[ 360次 ]  
huangbeidu
[帖 主]   [ 发表时间:2009-03-11 17:17 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:3
注册日期:2009-03-10 11:22
如果将10000H~1FFFFH这段空间当作栈段,初始状态栈是空的,此时,SS=1000H,SP=?

答案是SP=0
那栈满的时候SP不也是0吗?
机器如何识别栈顶到底在哪里 是10000H还是20000H
ilove
[第1楼]   [ 回复时间:2009-03-12 16:08 ]   [引用]   [回复]   [ top ] 
荣誉值:14
信誉值:2
注册日期:2008-10-19 21:37
机器如何识别栈顶到底在哪里 是10000H还是20000H
--------------
pop 和push只操作sp,不变ss,所以栈底和栈顶都是10000h。

cpu只按push和pop的执行过程来,也就是说没有判断栈空满的功能,所以只能由我们写程序的时候判断。

这个和数据结构的循环队列很相像,学过数据结构的话可以看看。
huangbeidu
[第2楼]   [ 回复时间:2009-03-12 20:50 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:3
注册日期:2009-03-10 11:22
栈底和栈顶都是10000h
----------------------
理解的有些艰难 没有学过数据结构 栈顶的最大变化范围是0~FFFFH 所以这类似于C语言中的溢出吧
huangbeidu
[第3楼]   [ 回复时间:2009-03-12 20:51 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:3
注册日期:2009-03-10 11:22
此贴由 贴主 于 [ 2009-03-12 20:51 ] 结贴。 结贴原因:问题已解决
得分情况: 1楼(ilove):1分  
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved