MCS51单片机调用指令LCALL addr16 ,ACALL addr11的使用介绍
扫描二维码
随时随地手机看文章
LCALLaddr16;长调用
ACALLaddr11;绝对调用
1.LCALLaddr16;转移范围64KB,不影响标志位。执行中自动完成如下过程:
(PC)(PC)+ 3
(SP)(SP)+ 1
((SP))(PC7 ~ 0), 保护断点地址低字节;
(SP)(SP)+ 2
((SP))(PC15 ~ 8),保存断点地址高字节;
(PC)addr16,目的地址送PC,转子程序。
例、设(SP)= 07H,(PC)= 2100H,子程序首地址为3456H,执行:
LCALL3456H
MOVA,20H
??????
画出执行过程示意图。
执行结果:(SP)= 09H,(09H)= 21H,(08H)= 03H,(PC)= 3456H
2.ACALLaddr11;转移范围与(PC)+ 2在同一个2KB内。不影响任何标志位,执行中机器自动完成下列过程:
(PC)(PC)+ 2
(SP)(SP)+ 1
((SP))(PC7 ~ 0)
(SP)(SP)+ 2
((SP))(PC15 ~ 8)
(PC10 ~ 0)addr10 ~ 0