当前课程知识点:单片机原理及应用 > 3 指令系统 > 3.8 交换指令 > 交换指令
同学
你好
今天我们将继续51单片机
数据传送类指令的学习
我们主要将介绍交换指令
交换指令可以实现片内RAM区
和累加器A的数据的双向传送
首先我们看看字节交换指令 XCH
注意
该指令的目的操作数必须是累加积A
源操作数可以采用多种寻址方式
但其中用寄存器间接寻址时
只能使用工作寄存器R0 R1
比如指令XCH A , Rn
它可以实现累加器A
和工作寄存器Rn里的数据进行互换
而指令XCH A , @ Ri
可以实现累加器A和工作寄存器Ri中
地址信息所指向的RAM单元里面的数据进行互换
XCH A , direct
这条指令可以实现累加器A
和direct的地址所指向的RAM单元里的数据互换
好的
下面我们来看一道例题
设累加器A中的内容是1BH
执行指令XCH A , 3AH后
请问A里面的内容是多少
地址3AH RAM单元里面的数据是多少
RAM中相关地址单元的初始分布
可以如表所示
根据XCH指令的功能
我们可以知道执行完该指令后
A里面的内容变成了5FH
而地址3AH RAM单元里面的数据就变成了1BH
好
下面同学们你们可以自己思考一下这道习题
XCH 45H , 55H
这条指令本来是想实现片内RAM45H的单元
与55H单元之间数据的传送
如果这样写
对不对
如果不对
错在哪里
实际上我们前面说过
XCH这条交换指令中
必须有一个操作数是累加器A
所以同学们要想实现片内RAM 45H的单元
与55H单元的数据交换
中间必须要用累加器A过渡一下
好的
前面是字节型交换指令
下面我们再来看一看半字节交换指令
XCHD A , @ Ri
这条指令是实现累加器A和工作寄存器Ri中
地址所指向的RAM单元里低四位数据的交换
而SWAP A实现的是累加器A中高四位
和低四位数据的互换
我们再来看一看这道例题
将片内RAM 4CH和48H单元中的
ASCLL码转换成压缩式的BCD码
存入到31H单元中
我们知道BCD码它是把四位的二进制数
来进行编码的
而ASCLL码它有八位
本例的目的就是把本来用RAM两个单元存放的
数字5的ASCLL码35H和数字8的ASCLL码38H
合成一个压缩式的BCD码58H
这样就可以用一个RAM单元
来存放同样的数字信息了
程序中的指令我们前面都已经学过
请同学们自行理解每条指令的含义
读懂该段程序的它的功能
好的
今天我们主要介绍了一下字节交换指令XCH
和半字节交换指令XCHD
以及SWAP
今天的课就到这里
同学们再见
-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 第八章作业-作业





