求解释下下面单片机程序的每一步是什么意思,谢谢了
发布网友
发布时间:2022-04-22 05:16
我来回答
共3个回答
热心网友
时间:2023-08-08 07:58
POP DPH ;从堆栈中弹出一个8位二进制数到DPH中,
POP DPL ;从堆栈中弹出一个8位二进制数到DPL中
MOV DPTR,#4000H ;给DPTR赋值#4000h
RL A ; 累加器A的内容左移一位
MOV B,A ; 把累加器 A的内容送到寄存器B中
MOVC A,@A+DPTR ;把DPTR的内容加A的内容作为地址,兼址寻址该地址中的内容送A
带进位位
PUSH Acc ;压堆栈,把A的内容推入堆栈
MOV A,B 把B的内容送到A中
INC A ;A的内容累加1
MOVC A,@A+DPTR ;把DPTR的内容加A的内容作为地址,兼址寻址该地址中的内容送A
带进位位
PUSH Acc ;压堆栈,把A的内容推入堆栈
RET ;中断子程序结束
ORG 4000H ; 伪指令 段地址开始位置为:4000H
DB 10H,80H,30H,50H,30H,50H ;数据段 连续存6个16进制数。
--------------
大致就是这样,你再查查指令系统的具体含义,可以更准确地解释其含义,我已经有10年没编写这些程序代码了,所以有可能记忆不是太准确。
热心网友
时间:2023-08-08 07:58
这程序,把堆栈腾空后,又压入两个字节,然后执行返回指令。
堆栈已经腾空了,返回到何处?
实际上,就是用下面的 DB 的内容,当成了返回地址。
热心网友
时间:2023-08-08 07:59
弹出 DPH
弹出 DPL
赋予 DPTR 4000H
将acc左移一位
将acc值赋给b