操控搬运指令用于操控程序的流向,所操控的规模即为程序存储器区间,MCS-51系列单片机的操控搬运指令相对丰厚,有可对64kB程序空间地址单元进行拜访的长调用、长搬运指令,也有可对2kB字节进行拜访的肯定调用和肯定搬运指令,还有在一页规模内短相对搬运及其它无条件搬运指令,这些指令的履行一般都不会对标志位有影响。
子程序调用指令(1条)
子程序是为了便于程序编写,削减那些需重复履行的程序占用剩余的地址空间而引进的程序分支,然后有了主程序和子程序的概念,需求重复履行的一些程序,咱们在编程时一般都把它们编写成子程序,当需求用它们时,就用一个调用指令使程序按调用的地址去履行,这就需求子程序的调用指令和回来指令。
LCALL addr16;长调用指令,可在64kB空间调用子程序。此刻(PC)+ 3→(PC),(SP)+ 1→(SP),(PC7-0)→(SP),(SP)+ 1→(SP),(PC15-8)→(SP),addr16→(PC),即分别从仓库中弹出调用子程序时压入的回来地址
ACALL addr11;肯定调用指令,可在2kB空间调用子程序,此刻(PC)+ 2→(PC),(SP)+ 1→(SP),(PC7-0)→(SP),(SP)+ 1→(SP),(PC15-8)→(SP),addr11→(PC10-0)
上面这两条指令就是在主程序中调用子程序的。
RET;子程序回来指令。此刻(SP)→(PC15-8),(SP)- 1→(SP),(SP)→(PC7-0),(SP)- 1→(SP)
子程序回来指令
子程序履行完后有必要回到主程序,怎么回来呢?只需履行一条回来指令就可以了,即履行RET。
RETI;中止回来指令,除具有RET功用外,还具有康复中止逻辑的功用,需注意的是,RETI指令不能用RET替代