搜索
bottom↓
回复: 7

很奇怪,堆栈指针SP的问题!!

[复制链接]

出0入0汤圆

发表于 2012-1-8 23:27:54 | 显示全部楼层 |阅读模式
堆栈指针SP的问题,很奇怪,大家进来看一下,谢谢
org 0000h
ajmp main
org 0050h
main:mov sp,#32h         
     mov 30h,#50h      
     mov 31h,#5Fh   
     mov 32h,#3ch   
     POP DPH;  
     POP DPL;     
     POP SP;     
     nop     
     end
运行完以上程序后,我不理解为什么sp=50h,执行POP SP首先把(30H)=50H的内容给SP,然后因为是出栈所以要减一不是吗?为什么不是(SP)=4FH   ?

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2012-1-9 00:09:42 | 显示全部楼层
51指令系统
堆栈操作指令的解释是这样的:
(1)进栈
PUSH  direct      ;      (SP)+1→SP,(direct)→(SP)
(2)推栈
POP   direct      ;((SP))→direct,(SP)-1→(SP)

出0入0汤圆

发表于 2012-1-9 14:39:45 | 显示全部楼层
回复【楼主位】4555  
-----------------------------------------------------------------------
实验证明的确有问题,但是你这样做有意义吗?

你这样的堆栈没多少实用价值啊。

出0入0汤圆

发表于 2012-1-9 15:43:46 | 显示全部楼层
当然是50H,因为你前面有一句mov 30h,#50h
当执行到pop sp时,会把30H单元内容送入SP

出0入0汤圆

发表于 2012-1-9 15:48:53 | 显示全部楼层
((SP))→direct,(SP)-1→(SP) 这个过程只能在机器周期里来理解,不能用于时基周期。

出0入0汤圆

 楼主| 发表于 2012-1-9 16:22:04 | 显示全部楼层
POP   direct                  ; ((SP))→direct,(SP)-1→(SP)
操作【1】:pop SP 产生 sp-1 的操作是由硬件直接改写,没有通过地址总线和数据总线,
操作【2】:而【((SP))→direct】中的赋值操作必须通过内部地址总线和数据总线读取【((SP))】改写【→direct】寄存器,
这一操作【2】相对于前一操作【1】要慢上若干时钟周期,
所以即使 sp-1操作在后,也会提前完成。

出0入0汤圆

发表于 2012-1-9 16:36:37 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-25 15:27:23 | 显示全部楼层
回复【3楼】BDXing6
当然是50h,因为你前面有一句mov 30h,#50h
当执行到pop sp时,会把30h单元内容送入sp
-----------------------------------------------------------------------

有道理,我刚才试了下。确实如此
到弹出指令pop时:
  sp=32h-->(3ch)“POP DPH”(将3ch压入DPH)
sp-1=31h-->(5fh)“POP DPL”(将5fh压入DPL)
sp-1=30h-->(50h)“POP SP”(将50h压入SP)
最后一个pop是把目前指针对着的地址内容压入sp,此时未执行压入指令之前,sp=30h,对应的地址里面装得数据是50h。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 22:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表