MCS51單片機(jī)調(diào)用指令LCALL addr16 ,ACALL addr11的使用介紹
LCALLaddr16;長調(diào)用
ACALLaddr11;絕對調(diào)用
1.LCALLaddr16;轉(zhuǎn)移范圍64KB,不影響標(biāo)志位。執(zhí)行中自動完成如下過程:
(PC)(PC)+ 3
(SP)(SP)+ 1
((SP))(PC7 ~ 0), 保護(hù)斷點(diǎn)地址低字節(jié);
(SP)(SP)+ 2
((SP))(PC15 ~ 8),保存斷點(diǎn)地址高字節(jié);
(PC)addr16,目的地址送PC,轉(zhuǎn)子程序。
例、設(shè)(SP)= 07H,(PC)= 2100H,子程序首地址為3456H,執(zhí)行:
LCALL3456H
MOVA,20H
??????
畫出執(zhí)行過程示意圖。
執(zhí)行結(jié)果:(SP)= 09H,(09H)= 21H,(08H)= 03H,(PC)= 3456H
2.ACALLaddr11;轉(zhuǎn)移范圍與(PC)+ 2在同一個2KB內(nèi)。不影響任何標(biāo)志位,執(zhí)行中機(jī)器自動完成下列過程:
(PC)(PC)+ 2
(SP)(SP)+ 1
((SP))(PC7 ~ 0)
(SP)(SP)+ 2
((SP))(PC15 ~ 8)
(PC10 ~ 0)addr10 ~ 0