请教有关51堆栈的问题

[复制链接]
3545|10
 楼主| cgkdxx 发表于 2007-1-17 08:31 | 显示全部楼层 |阅读模式
mov&nbsp;sp,&nbsp;60h;一定社在这里吗?70行不?<br />除了push之外还有哪里要用到堆栈?谢谢!
awey 发表于 2007-1-17 08:46 | 显示全部楼层

可以,子程序调用和中断也要用到

  
 楼主| cgkdxx 发表于 2007-1-17 08:55 | 显示全部楼层

调子程序是机器里自动压站吗?

到ret的时候自己弹出来?
zhichengdz 发表于 2007-1-17 20:01 | 显示全部楼层

可以

  
computer00 发表于 2007-1-18 16:30 | 显示全部楼层

是的。

  
 楼主| cgkdxx 发表于 2007-1-19 15:51 | 显示全部楼层

哥们,好像说过吧

别这样跟贴,行不?!
twz8858877 发表于 2007-1-20 13:54 | 显示全部楼层

执行调子程序或中断服务程序时

cpu都会先将当前PC值压栈,执行ret或reti时将堆栈保存的弹回PC,返回原处继续执行下一条语句。
zhangwr 发表于 2007-1-20 15:00 | 显示全部楼层

关键在于使用的芯片

52系列内存到FFH,无论60H还是70H都无所谓。<br />如果使用51系列,内存只到7FH,如果设为70H,压栈只能有16次,那么子程序嵌套调用次数和压栈次数就要十分谨慎了。
nertz 发表于 2007-1-20 19:46 | 显示全部楼层

7楼正解

一般的汇编书都有讲
 楼主| cgkdxx 发表于 2007-1-22 08:15 | 显示全部楼层

twz8858877:如果不加

push的话在调子程序时只会用到一个内存?那还是可以嵌套调很多层的嘛<br />另外,有个新问题:cjne&nbsp;a,&nbsp;#xxh,&nbsp;bbb 一条指令用几十遍有没有关系?
zhangwr 发表于 2007-1-24 18:12 | 显示全部楼层

多用几次没有关系

关键是几十遍的长度会超过一个页,就必须改变转移的代号了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

192

主题

1126

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部