新闻中心

EEPW首页>嵌入式系统>设计应用> 8051单片机指令定义详解——ACALL addr11(1)

8051单片机指令定义详解——ACALL addr11(1)

作者: 时间:2016-11-22 来源:网络 收藏
8051单片机指令定义详解——(ACALL addr11)

符号说明

本文引用地址://m.amcfsurvey.com/article/201611/319697.htm


表示数据传送方向

()表示单元的内容

(())表示间接寻址的内容

rrr8个工作寄存器之一;000=R0,001=R1等

dddddddd数据位

aaaaaaaa地址位

bbbbbbbb表示某个位的地址

i通过R0(i=0)或R1(i=1)间接寻址

eeeeeeee8位的相对地址偏移量


ACALLaddr11


功能:绝对调用。

说明: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处的指令:

ACALLSUBRTN

那么SP变为09H,内部RAM地址08H和09H单元的内容分别为25H和01H,PC值变为0345H。

指令长度(字节数): 2

指令执行周期: 2

指令二进制编码: aaa10001aaaaaaaa

注意: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)←页面地址



评论


技术专区

关闭