微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 8051单片机指令定义详解——ACALL addr11(1)

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

时间:11-22 来源:互联网 点击:
8051单片机指令定义详解——(ACALL addr11)

符号说明



表示数据传送方向

() 表示单元的内容

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

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

dddddddd 数据位

aaaaaaaa 地址位

bbbbbbbb 表示某个位的地址

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

eeeeeeee 8位的相对地址偏移量


ACALL addr11


功能:绝对调用。

说明: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 SUBRTN

那么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)←页面地址

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top