51单片机中LCALL是什么意思

如题所述

51单片机中LCALL意思是长调用指令,可以调用64kb范围内程序存储器中的任何一个子程序。

执行过程是先把程序计数器pc加3获得下条指令的地址(也就是断点地址),并把它压入堆栈(先低八位后高八位),同时把堆栈指针加2。接着把指令的第二个和第三个字节(A15-A8,A7-A0)分别装入pc的高位和低位中,然后从pc中指出的地址开始执行程序。

扩展资料:

在调用函数时,也即当执行LCALL、ACALL等汇编指令时,随着函数调用链条不断加长,SP指向的系统栈被占用的空间越来越多。PC不可寻址,无法用程序出入栈,只能由硬件自动完成。但指令执行后不影响任何标志。

PC存放的是下一条要执行的指令,在调用子函数前,要把紧跟ACALL/LCALL指令后面的一条指令的ROM地址入栈,因为LCALL本身占用3字节。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-13
LCALL(长调用指令)
长调用指令可以调用64kb范围内程序存储器中的任何一个子程序。
先把程序计数器pc加3获得下条指令的地址(也就是断点地址),并把它压入堆栈(先低八位后高八位),同时把堆栈指针加2.接着把指令的第二个和第三个字节(A15-A8,A7-A0)分别装入pc的高位和低位中,然后从pc中指出的地址开始执行程序。
本指令执行后不影响任何标志。
第2个回答  2013-10-15
LCALL和ACALL都是单片机汇编语言中的调用指令
LCALL是长调用;可寻址64K
ACALL是短调用;寻址相对比较短
一般我们都是用LCALL
第3个回答  2013-10-15
就是长跳转指令,直接跳到后面的标号或者直接地址
相似回答