当前课程知识点:单片机原理及应用 > 3 指令系统 > 3.5 内部RAM传送指令 > 内部RAM传送指令
同学
你好
前面我们介绍了指令的寻址方式
今天我们将进入51单片机各类指令的学习
51单片机的指令大体可以分为
数据传送类指令
数据操作类指令
布尔处理指令和程序控制等几种类型的指令
本次课程我们将学习数据传送类指令
数据传送类指令主要实现
寄存器 存储器之间的数据传送
具体又可以分为内部传送指令
它主要是实现
片内数据存储器RAM数据的传送的
还有外部传送指令
主要实现片外数据存储器数据的传送
还有交换指令
它主要是实现片内数据存储器的传送
还有就是堆栈操作指令
堆栈操作指令主要实现
片内数据存储器数据的传送
还有就是查表指令
主要实现程序存储器ROM的数据传送
我们首先来看一下
实现片内RAM数据传送的指令 MOV
该指令的格式如PPT所示
是MOV 目的操作数 , 源操作数
指令的功能是把片内RAM单元的源操作数
送给片内RAM单元的目的操作数
操作数的寻址方式
可以是我们前面介绍的立即寻址方式
直接寻址方式
寄存器寻址方式
寄存器间接寻址方式
比如指令MOV A , Rn
它的功能就是把工作寄存器Rn的内容
送给累加器A
指令MOV A , direct
这条指令中的direct表示的是
直接寻址方式
功能是把地址为direct RAM单元里面的数据
送给累加器A
再来看一看MOV A , @ Ri
这条指令中的@ Ri就是寄存器间接寻址方式
功能就是把工作寄存器里面的地址信息
表示的RAM单元的数据送给累加器A
再就是MOV A , # data
这条指令中的大塔由于前面有井号
就表示的是立即寻址
功能就是把立即数data送给累加器A
当然目的操作数也可以采用相关的各种寻址方式
好了
我们可以来看一道例题
例题如PPT所示
顺序执行下列指令顺序
求每一步的结果
我们先看第一条指令
MOV A , # 3CH
该条指令是把立即数3CH送给累加器A
第二条指令MOV 3BH , A
该条指令是把累加器A中的数据3CH
送给地址是3BH的RAM单元存放
第三条指令
MOV R0 , # 30H
则是把立即数30H送给工作寄存器R0
再接着MOV @ R0 , 3BH
该条指令是把地址为3BH的RAM单元里面的数据3CH
送给工作寄存器R0里的30H地址
代表的RAM单元来存放
下面这条指令
MOV 31H , 30H
则是把地址是30H的RAM单元里面的数据3CH
送给地址是31H的RAM单元中去
请你在阅读这些指令的功能时
请同学们一定要理解每条指令中
源操作数和目标操作数的寻址方式
下面你可以自己尝试着做这样一道习题
用两种寻址方式来实现
将片内RAM58H单元的数据传送给累加器A
我们这里给出了两种常见错误答案
及其相应的改正方法
第一个错误我们来看一下
是MOV A , #58H
哪错了呢
由于井号58H它实际上是一种立即寻址的方式
所以它并不是把58H的地址对应的单元内容
送给累加器A
而是把立即数58H送给累加器A
所以这条指令相应的改正应该是
MOV A , 58H
58H是一种直接寻址的方式
58H代表的是一个单元地址
具体的操作数是在58H这个地址
所对应的单元中
实际执行完之后
就是把58H这个地址的内容2FH
送给累加器A
第二种错误方式
请同学们自己去看一看
我就不再详细介绍了
这里要特别说明的是
一条指令中不能同时出现两个工作寄存器
间接寄存器只能够使用R0和R1
特殊功能寄存器SFR区中
只能使用直接寻址
不能够用寄存器的间接寻址方式
前面我们提到过
SFR区在占用的是RAM单元的高128位
即80H到FFH的地址区
好的
今天我们主要介绍了一下MOV这条指令
今天的课就到这里
同学们再见
-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 第八章作业-作业