ss:sp的指向问题

zhouqing19871024 2008-09-14 06:25:28
将10000H~1FFFFH这段空间当作栈段,初始状态栈是空的,若设SS=1000H,则SP=?
答案是SP=0。
可我就想不明白了,当栈是空的时候,SS:SP应该是指在地址1FFFFH的下面,即20000H处,如果答案中SP=0的话,SS:SP=10000H,这不是让SS:SP指向了第一个内存空间了吗??
...全文
422 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tlost_heaven 2010-02-21
  • 打赏
  • 举报
回复
二楼解答了我的疑惑~~~~

先减2再赋值~~
笨鸟无敌 2008-09-17
  • 打赏
  • 举报
回复
呵呵,16位机,段最大值为64KB,当SS定值时SP就只能是处于0~0FFFFH间的偶数.又因SP亦是16位寄存器,故当SP处于0FFFFH外的10000H时,最高位的1在SP中不能表示,会被丢弃,并且不影响和改变SS值.此时就相当于SP循环到栈段的另一端了.
mifeixq 2008-09-16
  • 打赏
  • 举报
回复
偏移最大只有0ffffh, 所以它的下面只能是0了……
beijingbeerman 2008-09-16
  • 打赏
  • 举报
回复
是不是应该 SS=1000H,则SP=ffffh?
zhou_lei 2008-09-15
  • 打赏
  • 举报
回复
关键要理解SP是偏移量!和SS不是一个概念
BAYNPU 2008-09-14
  • 打赏
  • 举报
回复
初始状态栈是空,栈空间为64KB,堆栈这时的态状是SS=1000H SP=FFFEH,现在堆栈需要弹出一个字单元就相当于给SP加2,加2后SP就是=0000吗。
zhouqing19871024 2008-09-14
  • 打赏
  • 举报
回复
希望再讲得详细一点
bayuan0414 2008-09-14
  • 打赏
  • 举报
回复
操纵栈的指令push pop
使用push指令的时候sp=sp-2,然后才赋值
此时sp=0,那么sp=sp-2之后sp=FFFE了

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧