C51汇编的7种寻址方式

寻址方式:是在指令中给出的寻找操作数地址的方法

七种寻址方式

  1. 立即数寻址

  2. 直接寻址

  3. 寄存器寻址

  4. 寄存器间接寻址

  5. 基址寄存器就变址寄存器的变址地址

  6. 位寻址

  7. 相对寻址

  8. 立即数寻址

在指令中直接给出操作数,出现在指令中的操作数叫做立即数,立即数前面加#

例如:

MOV A,#62H

(A) = 62H

  1. 直接寻址

直接给出操作数单元的地址

MOV A,65H

(A) = (65H),括号表示去地址里面的值

寻址范围:

  1. 内部RAM空间地址
  2. SFR地址空间
  3. 位地址空间
  1. 寄存器寻址

与直接寻址类似,只不过将地址用寄存器表示

MOV A, R0

(A) = (R0)

寻址范围:

32个通用寄存器R0~R7。

A,B,DPTR,Cy

  1. 寄存器间接寻址

把寄存器中的内容作为地址,在该地址中的数才是操作数

MOV A,@R0

(A) = ((R0))

寻址范围:

  1. 工作寄存器R0、R1

  2. 堆栈指针SP

  3. 数据指针DPTR

  1. 基址寄存器加变址寄存器的变址寻址

操作数地址 = 变地址 + 基地址

基地址寄存器 DPTR 或 PC

变址寄存器 @A

该寻址方式常用于访问程序存储器,查表。

MOV A,@A + DPTR

这种寻址方式以程序计数器PC或DPTR为基址寄存器,累加器A为变址寄存器,变址寻址时,把两者的内容相加,所得到的结果作为操作数的地址。这种方式常用于访问程序存储器ROM中的数据表格,即查表操作。

变址寻址只能读出程序内存入的值,而不能写入,也就是说变址寻址这种方式只能对程序存储器进行寻址,或者说它是专门针对程序存储器的寻址方式。

  1. 位寻址

80C51单片机有位处理功能,可以对数据位进行操作,因此就有相应的位寻址方式。所谓位寻址,就是对内部RAM或可位寻址的特殊功能寄存器SFR内的某个位,直接加以置位为1或复位为0。

位寻址的范围,也就是哪些部份可以进行位寻址:

我们在学习51单片机的存储器结构时,我们已知道在单片机的内部数据存储器RAM的低128单元中有一个区域叫位寻址区。它的单元地址是20H-2FH。共有16个单元,一个单元是8位,所以位寻址区共有128位。这128位都单独有一个位地址,其位地址的名字就是00H-7FH。

  1. 相对寻址

把指令中给定的地址偏移量与本指令所在单元地址(PC内容)相加得到真正有效的操作数所存放的地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

指针到处飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值