论坛风格切换切换到宽版
  • 2480阅读
  • 9回复

求救,请问堆栈保存了那些数据 [复制链接]

上一主题 下一主题
离线dongyl20037
 
发帖
324
只看楼主 倒序阅读 0楼 发表于: 2006-04-23
请问push指令保存了那些数据,在什么情况下用到push指令
离线BG6AGB
发帖
915
只看该作者 1楼 发表于: 2006-04-23
保存了被你push的数据,同时应该不会更改除去栈顶指针以外的数据

通常进子程序(中断)后会把这个子程序中要用的寄存器进栈,等子程序运行结束前,在反顺序出栈
离线dongyl20037
发帖
324
只看该作者 2楼 发表于: 2006-04-23
谢谢!!!!!!!!!!!!!!!!!!
离线Sullivan
发帖
4817
只看该作者 3楼 发表于: 2006-04-23
fifo
..........
离线BG6AGB
发帖
915
只看该作者 4楼 发表于: 2006-04-23
'
fifo
..........
'
错,堆栈是先进后出
队列才是先进先出
离线BG7IGJ
发帖
1998
只看该作者 5楼 发表于: 2006-04-23
中断时用来进栈的指命
比如: push acc
      push psw

中断退出时
    pop   psw
      pop   acc
离线Sullivan
发帖
4817
只看该作者 6楼 发表于: 2006-04-27
'
错,堆栈是先进后出
队列才是先进先出
'

...................
谢谢老师指正....
离线BG6AGB
发帖
915
只看该作者 7楼 发表于: 2006-04-27
'
...................
谢谢老师指正.... [表情]
'


 
我都还没毕业呢,咋叫我老师呢?

我不老  
离线dongyl20037
发帖
324
只看该作者 8楼 发表于: 2006-04-29
在转子程序时,主要保存的有acc,   psw 还有别的吗?acc是a吗?
离线BG6AGB
发帖
915
只看该作者 9楼 发表于: 2006-04-29
'
在转子程序时,主要保存的有acc,   psw 还有别的吗?acc是a吗?
'

视具体情况而定

比如子程序中要用到r1,r2,r3做临时变量使用,使用过程中要影响到psw,acc,并且这几个寄存器的原始状态都要push,使用完了退出子程序再pop出来.用不到的寄存器就不用管了.