8051单片机指令界说详解——(ACALL addr11)
符号阐明
符
←
()
(())
rrr
dddddddd
aaaaaaaa
bbbbbbbb
i
eeeeeeee
ACALL
功用:肯定调用。
阐明:ACALL指令完成无条件调用坐落addr11参数所表明地址的子例程。在履行该指令时,首先将PC的值添加2,即使得PC指向ACALL的下一条指令,然后把16位PC的低8位和高8位顺次压入栈,一起把栈指针两次加1.然后,把当时PC值的高5位、ACALL指令榜首字节的7~5位和第2字节组合起来,得到一个16位意图地址,该地址即为行将调用的子例程的进口地址。要求该子例程的开始地址有必要与紧随ACALL之后的指令处于同1个2KB的程序存储页中。ACALL指令在履行时不会改动各个标志位。
示例:SP的初始值为07H,标号SUBRTN坐落程序存储器的0345H地址处,假如履行坐落地址0123H处的指令:
ACALL
那么SP变为09H,内部RAM地址08H和09H单元的内容分别为25H和01H,PC值变为0345H。
指令长度(字节数): 2
留意:aaa是11位方针地址addr11的A10~A8位,aaaaaaaa是addr11的A7~A0位。
指令的操作:
(PC)←(PC)+2
(SP)←(SP)+1
((SP))←(PC7—PC0)
(SP)←(SP)+1
((SP))←(PC15—PC8)
(PC10—PC0)←页面地址