单片机堆栈指针SP的功能问题

单片机复位后,默认状态下,SP=07H,为什么堆栈最大允许范围是内RAM08H~7FH,而不是07H~7FH。算范围时,答案是120个单元,不是7FH-07H=120?... 单片机复位后,默认状态下,SP=07H,为什么堆栈最大允许范围是内RAM 08H~7FH,而不是07H~7FH。算范围时,答案是120个单元,不是7FH-07H=120? 展开
 我来答
一剑出血
高粉答主

2016-09-25 · 醉心答题,欢迎关注
知道大有可为答主
回答量:5.7万
采纳率:78%
帮助的人:1.7亿
展开全部
“单片机复位后,默认状态下,SP=07H,为什么堆栈最大允许范围是内RAM 08H~7FH,而不是07H~7FH”
这说明你对51入栈的指令序列不熟悉。入栈时都是先累加SP、之后再入栈的。

算范围时,可用的范围是08H~7FH,总计7Fh - 08h + 1h = 78h,也就是120个字节。
追问
还有一个问题,麻烦一下:
ORG 2000H
LCALL 4000H
ORG 4000H
ADD A,R2
执行完LCALL指令后,为什么PC=4000H.
PC不是显示将要执行的指令地址吗?怎么是原来的位置不变了?
追答
……LCALL指令本来要做的事情就是将4000H装载到PC中啊。
LCALL这条指令所处的地址是2000H,不是4000H……
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式