发布网友 发布时间:2022-05-01 21:57
共4个回答
热心网友 时间:2022-06-24 01:42
51单片机中LCALL意思是长调用指令,可以调用64kb范围内程序存储器中的任何一个子程序。
执行过程是先把程序计数器pc加3获得下条指令的地址(也就是断点地址),并把它压入堆栈(先低八位后高八位),同时把堆栈指针加2。接着把指令的第二个和第三个字节(A15-A8,A7-A0)分别装入pc的高位和低位中,然后从pc中指出的地址开始执行程序。
扩展资料:
在调用函数时,也即当执行LCALL、ACALL等汇编指令时,随着函数调用链条不断加长,SP指向的系统栈被占用的空间越来越多。PC不可寻址,无法用程序出入栈,只能由硬件自动完成。但指令执行后不影响任何标志。
PC存放的是下一条要执行的指令,在调用子函数前,要把紧跟ACALL/LCALL指令后面的一条指令的ROM地址入栈,因为LCALL本身占用3字节。
热心网友 时间:2022-06-24 01:42
LCALL(长调用指令)热心网友 时间:2022-06-24 01:42
LCALL和ACALL都是单片机汇编语言中的调用指令热心网友 时间:2022-06-24 01:43
就是长跳转指令,直接跳到后面的标号或者直接地址