* 嵌入式应用基础 * 1. 子程序调用指令 子程序调用指令和指令要素如表。 第1条长调用指令LCALL addrl6,为三字节双周期指令,其操作码为12,后跟两字节的16位地址addrl6。 * 嵌入式应用基础 * 指令功能: (1)指向断点,执行PC←PC+3,使PC指向被称为断点的下一条指令地址; (2)保护断点,即先后将PCL和PCH压入堆栈,栈指针SP加2指向新的栈顶; (3)转子,将16位目的地址addr16送入程序计数器PC,使程序无条件转向子程序入口地址addr16,执行被调用的子程序。长调用指令可调用在64KB范围内的子程序。 * 嵌入式应用基础 * 第2条绝对调用指令ACALL addrl1,为双字节双周期指令,在机器码中提供11位地址addrl1,addrl1由第一字节高3位a10~8和第二字节8位a7~0构成。指令功能: (1)指向断点,执行PC←PC+2,使指向断点地址,即ACALL下一条指令的第一字节单元的地址; (2)保护断点,即先后将PCL和PCH压入堆栈,栈指针SP加2指向新的栈顶; * 嵌入式应用基础 * (3)转子,将11位目的地址addr11送入PC,取代低11位的PC10~0,与高5位PC15~11一起构成16位目的地址,使程序无条件转向子程序入口地址去执行。 绝对调用指令只修改了PC的低11位地址,高5位PC15~1
原创力文档

文档评论(0)