当前课程知识点:单片机原理及应用 > 3 指令系统 > 3.4 变址间接寻址与位寻址 > 变址间接寻址与位寻址
同学 你好
前面我们已经介绍了指令的四种寻址方式
分别是立即寻址方式
直接寻址方式
寄存器寻址方式和寄存器间接寻址
今天我们继续介绍第五种寻址方式
叫做变址间接寻址方式
该种方式和前面介绍的
寄存器间接寻址方式类似
那么数据都是存放在存储器的单元中
指令中给出的寄存器里存放的是
操作数的基地址和偏移量
操作数所在存储单元的地址为
基地址和偏移量之和
比如我们来看这样一道例题
MOVC A ,@A+DPTR中
这个指令中的话
A+DPTR A是累加器
DPTR是我们前面说过的数据指针
都是寄存器
由于在这个寄存器前面加了一个@
所以这种寻址方式叫做变址间接寻址方式
真正要操作的数实际上是存放在
存储器中A和DPTR里存放的是
操作数的偏移量和基地址
操作数所在存储单元的完整地址
等于A和DPTR里的地址之和
我们来看一下例题中的存储器的分配
在存储器地址3010H中
我们看存放的是2CH这个数据
在存储器的地址3011H这个单元中
存放的是F9H而由于我们这个指令
MOVC A,@ A+DPTR
那么由于这个采用的是变址间接寻址的方式
所以这个操作数的地址等于A的内容
加上DPTR的内容
由于在执行指令之前
A里面的内容是10H
DPTR里面的内容是3000H
所以真正的操作数的地址是
3000H加上10H
也就是3010H
所以 指令MOVC将从存储器单元的地址
3010H地址中的内容中
去找内容 找到2CH
然后把2CH这个数据送给累加器A
所以当该指令执行完成之后
累加器A中的内容就变成了2CH
这是变址加间接寻址的方式
下面我们来看第六种寻址方式
这种方式叫做位寻址方式
该种方式操作数为一位二进制数据
我们前面几种的寻址方式操作数都是
对一个八位的二进制数来进行操作
第六种寻址方式的话表示的是
这个操作数是一位二进制数
如何来对某一位来进行操作
在指令中的表示方法就有四种
第一种是直接使用位地址
比如在PSW 这是程序状态字寄存器
如果我们要在PSW的第六位
这个位地址是0DH
就可以用D6H这个地址来表示
要对PSW的第六位来进行操作
这是使用直接寻址的方式
除了直接寻址方式之外
也可以用位名称来表示
比如上面的这个位的名称也叫做AC
所以在指令中你也可以用AC来表示
要对这同一个位来进行操作
除了用位名称之外
也可以用字节地址加位数来表示
比如说还是上面这一个位
那我们可以用0D0H点六来表示
这是一个对位来进行操作
第四种位寻址方式是什么
是用专用寄存器的符号加位数来表示
比如说还是上面这个位
我们可以用PSW 点六 来表示
要对位来进行操作
比如说我们用这个例题
指令MOV C , 42H
那么42H就是用的是位寻址
这里面的42H
注意是一个位地址
具体对应于RAM的位寻址区
28H这个单元里面的红色数字的那一位
该指令的功能就是把该位的内容一
送给进位标志位C来存放
这里的C实际上属于我们以前介绍的
八位状态标志寄存器PSW里面的
最高的那一位
好的
以上就是我们对两种寻址方式的介绍
一种是位寻址方式
一种是变址加寄存器的寻址方式
那么至此我们已经对六种寻址方式
全部介绍完了
希望同学们在今后的学习中能够
不断的巩固练习这六种寻址方式
好
今天的课程就说到这里
再见
-1.1 单片机的名称
--单片机的名称
-1.2 单片机的相关概念
--单片机的相关概念
-1.3 单片机的设计语言及软件
-1.4 单片机的发展
--单片机的发展
-1.5单片机的应用
--单片机的应用
-1.6 第一单元作业
-2.1 单片机的结构框图
--单片机的结构框图
-2.2 80C51内部结构
-2.3 信号引脚
--信号引脚
-2.4 内部数据存储器RAM
-2.5 特殊功能寄存器
--特殊功能寄存器
-2.6 堆栈
--堆栈
-2.7 内部程序存储器ROM
-2.8 存储器的结构特点
--存储器的结构特点
-2.9 并行输入输出接口电路
-2.10 并口功能与时序
--并口功能与时序
-2.11 工作方式
--工作方式
-2.12 最小应用系统
-- 最小应用系统
-2.13 第二单元作业
-3.1 指令格式
--指令格式
-3.2 立即寻址与直接寻址
-3.3 寄存器寻址与寄存器间接寻址
-3.4 变址间接寻址与位寻址
-3.5 内部RAM传送指令
-3.6 外部RAM传送指令
-3.7 ROM传送指令
--ROM传送指令
-3.8 交换指令
--交换指令
-3.9 堆栈操作指令
--堆栈操作指令
-3.10 传送类指令习题讲解
-3.11 算术运算类指令特点
-3.12 加法指令
--加法指令
-3.13 加法习题、减法和乘除指令
-3.14 逻辑运算指令
--逻辑运算指令
-3.15 布尔变量操作指令
--布尔变量操作指令
-3.16 无条件转移指令
--无条件转移指令
-3.17 条件转移指令
--条件转移指令
-3.18 循环转移指令
--循环转移指令
-3.19 子程序相关指令
--子程序相关指令
-3.20 并口访问指令及指令小结
-3.21 第三单元作业
-4.1 汇编程序约定
--汇编程序约定
-4.2 宏指令
--宏指令
-4.3 汇编控制指令
--汇编控制指令
-4.4 汇编语言程序设计步骤
-4.5 顺序程序举例
-- 顺序程序举例
-4.6 单重分支结构
--单重分支结构
-4.7 多重分支结构
--多重分支结构
-4.8 单重循环结构
--单重循环结构
-4.9 计数控制循环程序
--计数控制循环程序
-4.10 特征控制循环程序
-- 特征控制循环程序
-4.11 多重循环程序
--多重循环程序
-4.12 子程序的概念
--子程序的概念
-4.13 子程序设计注意事项
-4.14 子程序举例
--子程序举例
-4.15 第四单元作业
-5.1 系统扩展
--系统扩展
-5.2 51单片机扩展方法
-5.3 存储器单元位数扩充方法
-5.4 存储器容量单元扩充方法
-5.5 译码线选法
--译码线选法
-5.6 程序存储器的类型
--程序存储器的类型
-5.7 程序存储器的扩展
--程序存储器的扩展
-5.8 数据存储器的扩展
--数据存储器的扩展
-5.9 存储器综合扩展
--存储器综合扩展
-5.10 单片机存储器系统的特点
-- 单片机存储器系统的特点
-5.11 第五单元作业
-6.1 中断技术
--中断技术
-6.2 中断优先级及中断系统内部结构
-6.3 中断控制寄存器及中断响应过程
-6.4 中断请求的撤消
--中断请求的撤消
-6.5 外部中断举例
--外部中断举例
-6.6 定时器/计数器
--定时器/计数器
-6.7 定时计数器工作方式及程序编写
-6.8 定时器举例
--定时器举例
-6.9 第六单元作业
-7.1 并行接口
-- 并行接口
-7.2 并口举例
--并口举例
-7.3 并口扩展芯片
--并口扩展芯片
-7.4 8155连接方式及编程
-7.5 键盘接口技术
--键盘接口技术
-7.6 按键处理程序及举例
-7.7 键盘扫描子程序
-- 键盘扫描子程序
-7.8 显示接口技术
--显示接口技术
-7.9 多位字符静态显示
--多位字符静态显示
-7.10 多位字符动态显示
--多位字符动态显示
-7.11 第七单元作业
-8.1 流水灯控制系统设计
--html
-8.2 数码管显示系统设计
--html
-8.3 按键控制系统设计
--html
-8.4 中断控制系统设计
--html
-8.5 定时计数器系统设计
--html
-8.6 串口通信系统设计
--html
-8.7 汉字显示系统设计
--html
-8.8 单片机烧录方法
--单片机烧录方法
-8.9 第八章作业-作业