单片机 若(SP)=60执行START;LCALL3456H 之后SP和堆栈的内容有合变化?

来源:百度知道 编辑:UC知道 时间:2024/06/23 03:45:52
设标号START 为2345H
那PC 的 过程呢?

在START 为 2345H 处,执行 LCALL 3456H,则会将 2345H + 3 = 2348H 存入堆栈。
过程是:
SP + 1 -> SP = 61H, PCL -> (SP), 即 (61H) = 48H
SP + 1 -> SP = 62H, PCH -> (SP), 即 (62H) = 23H
---------------------
PC 的内容压入堆栈后,随即变更为 3456H,即 (PC) = 3456H。

应该是没有变化,是调用,不是中断,没有现场保护,所以也没有压入和弹出堆栈的操作

中断是自动把状态压入堆栈,不需要操作堆栈,返回时执行reti,自动弹出中断

坐而论道 的答案是对的……