8051单片机指令系统有哪几种寻址方式?

本文详细介绍了8051单片机的七种寻址方式,包括寄存器寻址、直接寻址、立即寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。每种寻址方式通过实例进行了说明,并解释了其在指令执行中的作用。此外,还提到了位寻址在内部RAM特定区域和特殊功能寄存器中的应用。
摘要由CSDN通过智能技术生成

8051单片机指令系统有哪几种寻址方式?

寄存器寻址、直接寻址、立即寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。
寄存器寻址:以通用寄存器的内容为操作数的寻址方式。通用寄存器为A、B 、DPTR以及R0~R7 。
例:

CLR 	A                  ;A←0
INC 	DPTR	            ;DPTR←DPTR+1   
ADD	R5,# 20H	            ;R5←#20H+R5。

在8051单片机中,没有专门的通用硬件寄存器,而是把内部数据RAM区中00H1FH地址单元作为工作寄存器使用,共有32个地质单元,分成四组,每组8个工作寄存器,命名为R0R7,每次使用其一,当以R0~R7来表示操作数时,就属于寄存器寻址方式。例如:

MOV A,R0
ADD A,R0

一条指令由操作码和操作数组成。操作码指明执行什么操作,例如数的传送、加法、减法等。操作数则表示这条指令所完成的操作对象,即是对谁进行操作。指令由指令字节组成,不同的指令,指令的字节数不相同。有单字节指令、双字节指令和三字节指令。
直接寻址:直接给出操作数地址。8051单片机中,用直接寻址方式可以访问片内数据RAM中DATA空间的00H~7FH共128个单字节及所有的特殊功能寄存器。

MOV	A,30H       	;A←(30H)

立即寻址:若指令的操作数是一个8位或16位二进制数,就称是立即寻址,指令中的操作数称为立即操作数。在立即数前冠以“#”。如#3AH表示立即数3AH,而直接写3AH则表示RAM区中地址为3AH的字节单元。例如:

MOV A,#3AH
MOV A, 3AH.

注:8051单片机中,只有一条16位立即数指令:MOV DPTR , #data16,将16位立即数送往数据指针寄存器。
寄存器间接寻址: 以寄存器中内容为地址,以该地址中内容为操作数的寻址方式。间接寻址的存储器空间包括内部数据RAM和外部数据RAM。能用于寄存器间接寻址的寄存器有R0,R1和DPTR。在寄存器名称前面加 一个符号@来表示寄存器间接寻址。
例:

   MOV   A , @R0      ;A ← ((R0))
   MOVX  @DPTR,A      ;由(DPTR)指示的外部RAM←A

变址寻址:变址寻址是以DPTR或PC的内容为基本地址,然后在这个基址上A的内容作为地址偏移量,才是真正的操作数地址。
例:

   MOVC  A,@A+DPTR      ;A←((A)+(DPTR))
   MOVC  A,@A+PC        ;A←((A+(PC))   

相对寻址:以当前程序计数器PC的内容为基础,加上指令给出的一字节补码数偏移量,再加上2,形成新的PC值。相对寻址用于修改PC值,主要用于实现程序的分支转移。
例:

SJMP  08H          ;PC←PC+08H+2    

位寻址:
位寻址只能对有位地址的单元作位寻址操作。位寻址其实是一种直接寻址方式,不过其地址是位地址。
例:

  SETB  10H           ;将10H位置1
   MOV   32H,C        ;32H←进位位CY
   CLR   PSW.4         ;将PSW.4位清0

8051内部RAM中有1个可位寻址区,地址为20H~2FH,共16个单元,其中每个单元的每一位都可单独作为操作数,共128位。另外如果特殊功能寄存器的地址值能被8整除,则该特殊功能寄存器也可以进行位寻址。
注:

位地址的表示可以采用以下几种方式:
(1) 直接用位地址00H~FFH来表示,如20H单元的07位可表示为20H~27H。
(2) 采用第n字节第n位的表示方法,如25H.5,表示25H字节的第5位。
(3) 对于特殊功能寄存器可直接用寄存器名加位数的表示方法,如ACC.3,PSW.7等。
(4) 用汇编语言中的伪指令定义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值