PC(ProgramCounter)是一个程序计数器,是一个16位的专用寄存器,用于存储下一条指令的地址,LJMP和SJMP同上,LJMP三字节指令可以转移到64KB程序内存的任意单元,SJMP是两字节指令,只能在256个单元内存内转移,有自动加一的功能(注意这里的一是指地址加一个单位),首先要明白什么是PC。
1、MCS-51 单片机在执行短调用指令(ACALL首先要明白什么是PC。PC(ProgramCounter)是一个程序计数器,是一个16位的专用寄存器,用于存储下一条指令的地址。有自动加一的功能(注意这里的一是指地址加一个单位)。当CPU要取指令时,PC的内容先送到地址总线,然后从内存中取指令。取指令后,PC的内容自动加1,指向下一条指令的地址(这句话很关键)。ACALL是一个子程序调用指令,它本身占用一个2字节的存储单元。为了保证子程序返回后程序按原顺序运行,PC内容要先加2,指向ACALL指令后的单元进行顺序执行。
2、MCS-51系列 单片机,长调用LCALL和短调用ACALL什么情况下使用可寻址范围不同。ACALL是双字节指令,调用指令加2的地址PC应该和被调用子程序的起始地址在同一个2KB范围内,而LCALL是三字节指令,可以在64KB范围内调用。换句话说,子程序太远就要用LACLL,太近就用ACALL就够了。LJMP和SJMP同上,LJMP三字节指令可以转移到64KB程序内存的任意单元,SJMP是两字节指令,只能在256个单元内存内转移。
{2。
文章TAG:单片机acall什么意思 acall pc 单片