当前课程知识点:单片机原理及应用 > 3 指令系统 > 3.10 传送类指令习题讲解 > 传送类指令习题讲解
同学
你好
前面我们已经学习了各类传送类指令的功能
那么今天我们将通过几道习题来巩固一下
我们对传送类指令的学习
好
我们下面来看一看这些习题
请你找出各条指令中的错误
并进行改正
先看第一条指令
MOV A , #2032H
该条指令本来是想把立即数2032H送给累加器A
但是他的错误在于
累加器A只是一个八位的寄存器
里面只能存放八位的二进制数据
而指令中是想把一个16位的立即数2032H
送给累加器A
所以错误就在于这个立即数
只能是一个八位的立即数
不能是16位
我们再来看一看习题二
该条指令MOVX A , 3333H
习题二的错误就在于
想从片外RAM取数送给累加器A
MOVX指令是一个从片外RAM单元取数
送给累加器A
但是这条指令在书写时
对于源操作数用了直接寻址的方式
3333H
这是不允许的
因为在MOVX指令中
对RAM单元的寻址方式
必须采用寄存器间接寻址的方式
下面我们来看一下习题三
这条指令MOVC A , 6666H
该条指令是想把ROM中的某一个单元的数据
送给累加器A
但是错误的类型和前面一条指令MOVX中的错误一样
对ROM进行寻址
只能够使用的是寄存器的间接寻址
不能采用直接寻址的方式
这条指令中它是用6666H
这种是直接寻址
你必须用DPTR或者用MOVC或者用PC
来实现寄存器的间接寻址
好
我们再来看一看习题四
习题四是MOVX 4AH , A
该条指令是想实现片内RAM单元之间的数据传送
但是要注意的是特殊功能寄存器
比如说累加器A都是归于
片内RAM的高128个单元的
而对片内RAM单元的数据传送
必须用指令MOV
所以这条指令它用的是MOVX这就错了
我们再来看一看习题五
MOV R0 , 52H和MOV 55H , @R0
这两条指令它是想实现片内RAM52H单元
和55H单元之间的数据的传送
实际上我们可以用一条指令
MOV 52H , 55H
就可以实现指令的功能了
你没必要写两条指令
再来看一看习题6
该条指令是XCH R1 , R2
XCH我们说过是字节交换指令
对于该条指令目的操作数必须是累加器A
所以这里面它的目的操作数用的是一个R1
这就有问题
B源操作数和目的操作数两者之间
必须有一个是累加器A
下面我们再来看一看习题七
指定是MOVX DPTR , #1234H
这条指令本来是想
给数据指针DPTR赋一个值
前面说过DPTR属于特殊功能寄存器SFR
而SFR它本质上是属于片内RAM区的
所以对特殊功能寄存器SFR传送数据
一律要用片内RAM传送指令MOV
而不能用MOVX
因为MOVX是实现片外RAM的单元送数据给累加器A的
所以这里面MOVX用错了 必须用MOV
最后我们来看一看这个习题八
第八条指令MOVX 48H ,@ DPTR
该条指令是想从片外RAM读取数据
到片内RAM
但是我们知道用MOVX指令时
目的操作数只能是累加器A
所以你可以先用MOVX指令
把片外RAM单元的数据先读到累加器A暂存
然后再用MOV指令把A中的暂存的数据
送到片内RAM的60H单元中存放
以上就是我们对传送类指令的
通过几个习题使同学们能够深刻地领会到
这些传送类指令的一些特殊的用法
和特别要注意的地方
希望同学们在今后的学习和程序编写中
一定要注意这些常见的错误
因为在程序编写中一个很小的错误
都会造成程序不能运行
所以同学们今后要特别注意这些常见错误之处
好的
今天我们的课就到这里
同学们再见
-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 第八章作业-作业