导航:首页 > 操作系统 > 单片机压栈题

单片机压栈题

发布时间:2023-03-28 02:12:00

A. 51单片机R0-R7怎样压栈

首先你得知道R0~R7并不对应绝对地址,而PUSH只能对绝对地址压栈的。
对于自己编写的汇编程序,你得清楚当前PSW.RS位域选中的是哪一组RegBank,并将相应地址的寄存器压栈。例如如果选中了第2组寄存器(10b),那么应当压栈的是10h~17h单元。
如果是编译器写的伪代码,可以直接书写成 PUSH Rn 形式,编译器自动根据当前的RS位域来换算成对应的绝对地址。

网络嫌我字数不够

B. 单片机堆栈问题

堆栈的压栈动作地址是递减的;出栈动作地址是增加的。sp是栈顶指针,经过压栈动作后的值要比70H小。具体的数值得看单片机的位数——32 bit/16 bit/8 bit

C. 关于51单片机堆栈的问题

首先,SP是堆栈指针,当压堆栈的时候,它增加一,当出栈的时候,它减一。
PUSH
ACC和POP
ACC分别是压和出的指令。
除此之外,中断和call指令,硬件自动将PC程序指针压栈,等到reti或ret指令的时候,出栈。
一般讲SP设置大一点,比如70H,以免和其他单元冲突。

D. 51单片机问题: SP=60 A=90 push A 执行这条语句后,(SP)= (

(SP)=61因51单片机堆堆是向上生长的

(60H)=90答案可能是这样的,但应该错误的,实际上是(61H)=90因51单片机压栈是先上移指针,后压入数据60H单元并没有被占用

A=90这是没说的,入栈并没有改变A的值

并且不知是你写错了还是出题人写错了SP=60 不是16进制 (60H)又变成

16进制

阅读全文

与单片机压栈题相关的资料

热点内容
phpjsondecode乱码 浏览:724
如何在服务器管理器添加角色 浏览:395
程序员那么可爱陆漓出车祸失忆了 浏览:138
51单片机ad转换教程 浏览:436
TPM怎么加密文件夹 浏览:81
找工作用什么app靠谱 浏览:915
从程序员转产品经理 浏览:793
linux查询序列号 浏览:251
vi输入命令 浏览:654
程序员节几月份合适 浏览:291
凯迪app是什么东西 浏览:765
linuxjavapath环境变量 浏览:971
pdf的更多命令在哪里 浏览:168
c语言经过编译的后缀 浏览:875
怎么做一款app 浏览:969
小红书看过的视频在哪个文件夹 浏览:536
中兴云服务器市场份额 浏览:407
内网系统报文加密 浏览:210
centeroslinux 浏览:910
xcode如何编译大型项目 浏览:59