内容正文:
四川省(对口招生)电子信息类《单片机原理及应用》
知识点讲解
考点12重点掌握数据传送指令(内部数据存储器读取指令)
【考情分析】
本考点是51单片机汇编语言程序设计的核心基础,在高职单招、中职升高职联考及电子信息类专业技能高考中必考且高频考查,是程序数据处理、外设控制、功能实现的核心指令体系。考查形式以单选题、判断题、填空题、程序阅读题为主,侧重内部RAM数据传送指令的格式、寻址方式、指令执行结果、操作数范围等核心知识点,需熟练掌握各类MOV指令的使用规则与应用场景,是程序设计题的核心得分点。
考纲解读
1
掌握51单片机内部数据存储器的地址空间划分与寻址规则
2
掌握核心数据传送指令MOV的指令格式、操作数类型与寻址方式
3
熟练掌握内部数据存储器各类读取指令的功能、执行过程与结果
4
掌握内部数据传送指令的使用注意事项与编程应用规范
51单片机内部数据存储器数据传送指令概述
51单片机的核心数据传送指令为MOV指令,是专门用于内部数据存储器(包括工作寄存器、累加器、特殊功能寄存器、片内RAM)之间数据读取与写入的核心指令,是汇编程序中使用频率最高的指令。指令核心功能为“源操作数的数据传送到目的操作数,源操作数数据保持不变”,实现内部RAM数据的读取、复制、暂存与传递,仅针对片内256B数据存储器空间操作。
内部数据存储器核心地址划分:
00H-1FH:4组工作寄存器区(R0-R7),每组8个寄存器,通过PSW寄存器的RS1、RS0位切换
20H-2FH:位寻址区,可字节操作也可位操作
30H-7FH:通用RAM区,用户数据暂存区
80H-FFH:特殊功能寄存器SFR区(仅52单片机支持高128BRAM,需间接寻址访问)
1.以累加器A为目的操作数的内部数据读取指令
结构特点:是最常用的内部数据读取指令,所有寻址方式均支持,指令执行速度最快,是算术运算、逻辑运算的前置数据读取核心指令。
主要功能(核心指令共4条):
①MOV A,Rn
功能:读取工作寄存器Rn(n=0~7)中的数据,传送到累加器A中
寻址范围:当前选中的工作寄存器组R0-R7,地址00H-1FH
特点:单字节指令,1个机器周期,执行速度最快
②MOV A,direct
功能:读取内部RAM直接地址direct单元中的数据,传送到累加器A中
寻址范围:片内RAM00H-7FH、特殊功能寄存器SFR80H-FFH
特点:双字节指令,1个机器周期,可直接读取SFR和片内RAM任意单元
③MOV A,@Ri
功能:以Ri(i=0/1)中的数据为地址,读取该地址单元的内部RAM数据,传送到累加器A中
寻址范围:片内RAM00H-7FH(51单片机)、片内RAM00H-FFH(52单片机高128B)
特点:单字节指令,1个机器周期,支持间接寻址访问连续RAM单元
④MOV A,#data
功能:读取8位立即数#data,直接传送到累加器A中
特点:双字节指令,1个机器周期,用于给累加器赋初始值
2.以工作寄存器Rn为目的操作数的内部数据读取指令
结构特点:用于将内部RAM中的数据读取并暂存到工作寄存器中,工作寄存器作为程序数据暂存的核心载体,指令仅支持3种合法寻址方式。
主要功能(核心指令共3条):
①MOV Rn,A
功能:读取累加器A中的数据,传送到工作寄存器Rn中
特点:单字节指令,1个机器周期
②MOV Rn,direct
功能:读取内部RAM直接地址direct单元中的数据,传送到工作寄存器Rn中
特点:双字节指令,2个机器周期,可直接读取SFR和RAM数据到工作寄存器
③MOV Rn,#data
功能:读取8位立即数#data,直接传送到工作寄存器Rn中
特点:双字节指令,1个机器周期,用于给工作寄存器赋初始值
考试高频易错点:MOV Rn,Rn/MOV Rn,@Ri为非法指令,编译无法通过,是判断题核心考点。
3.以直接地址direct为目的操作数的内部数据读取指令
结构特点:用于读取内部各类存储单元的数据,写入到片内RAM或SFR的直接地址单元中,支持的寻址方式最丰富,是内部RAM数据批量传递的核心指令。
主要功能(核心指令共5条):
①MOV direct,A
功能:读取累加器A中的数据,传送到direct直接地址单元中
特点:双字节指令,1个机器周期,常用于将运算结果写入SFR或RAM单元
②MOV direct,Rn
功能:读取工作寄存器Rn中的数据,传送到direct直接地址单元中
特点:双字节指令,2个机器周期
③MOV direct1,direct2
功能:读取direct2直接地址单元中的数据,直接传送到direct1直接地址单元中
特点:三字节指令,2个机器周期,无需经过累加器,可直接实现两个RAM/SFR单元的数据传递
④MOV direct,@Ri
功能:以Ri中的数据为地址,读取该地址单元的内部RAM数据,传送到direct直接地址单元中
特点:双字节指令,2个机器周期
⑤MOV direct,#data
功能:读取8位立即数#data,直接传送到direct直接地址单元中
特点:三字节指令,2个机器周期,用于给RAM/SFR单元赋初始值
4.以间接寻址@Ri为目的操作数的内部数据读取指令
结构特点:用于读取数据并写入到以Ri内容为地址的内部RAM单元中,是访问连续RAM单元、实现数据指针操作的核心指令,适合批量数据处理。
主要功能(核心指令共3条):
①MOV @Ri,A
功能:读取累加器A中的数据,传送到以Ri内容为地址的内部RAM单元中
特点:单字节指令,1个机器周期
②MOV @Ri,direct
功能:读取direct直接地址单元中的数据,传送到以Ri内容为地址的内部RAM单元中
特点:双字节指令,2个机器周期
③MOV @Ri,#data
功能:读取8位立即数#data,直接传送到以Ri内容为地址的内部RAM单元中
特点:双字节指令,1个机器周期,用于给连续RAM单元批量赋值
考试高频易错点:MOV @Ri,Rn/MOV @Ri,@Ri为非法指令,是单选题、判断题高频考点。
5.16位数据传送指令(DPTR读取指令)
结构特点:51单片机唯一的16位数据传送指令,用于读取16位立即数,写入到数据指针DPTR中,是外部存储器访问的前置核心指令,也属于内部数据读取指令范畴。
主要功能:
核心指令格式:MOVDPTR,#data16
功能:读取16位立即数#data16,分别传送到DPH(DPTR高8位)和DPL(DPTR低8位)寄存器中
特点:三字节指令,2个机器周期,专门用于给16位地址指针赋值
应用场景:外部ROM/RAM访问、查表程序设计
内部数据存储器读取指令使用注意事项
指令核心规则:所有MOV指令执行后,源操作数的数据保持不变,目的操作数的数据被源操作数覆盖,不存在“数据移动”,仅为“数据复制”。
非法指令禁忌:禁止出现MOV Rn,Rn、MOV Rn,@Ri、MOV @Ri,@Ri、MOV A,@R2等非法指令,工作寄存器间接寻址仅支持R0、R1。
寻址范围限制:
直接寻址direct可访问片内RAM00H-7FH和SFR80H-FFH,无法访问52单片机高128BRAM;
间接寻址@Ri可访问片内RAM00H-FFH,无法访问SFR特殊功能寄存器区。
累加器A的特殊性:所有算术运算、逻辑运算指令仅能通过累加器A执行,因此内部数据读取优先通过累加器A中转,是程序设计的核心规范。
工作寄存器组切换:Rn的实际物理地址由PSW寄存器的RS1、RS0位决定,使用前需确认当前工作寄存器组,避免数据读写冲突。
位操作与字节操作区分:MOV指令为字节操作指令,位数据传送需使用MOVC指令,二者不可混用,是判断题高频考点。
例题1.下列51单片机指令中,属于合法的内部数据读取传送指令的是()
A.MOV R1,R2 B.MOV A,@R0 C.MOV @R2,A D.MOV A,@DPTR
【解析】A选项MOV Rn,Rn为非法指令;C选项间接寻址仅支持R0/R1,R2非法;D选项@DPTR为外部寻址,需用MOVX指令;B选项为累加器间接寻址读取内部RAM数据的合法指令。答案:B
例题2.指令MOV A,30H的核心功能是()
A.将立即数30H传送到累加器A中
B.读取内部RAM 30H单元的数据,传送到累加器A中
C.将累加器A中的数据传送到内部RAM30H单元中
D.读取30H地址的外部RAM数据,传送到累加器A中
【解析】direct为直接地址寻址,该指令为读取内部RAM30H单元的字节数据,传送到累加器A中。答案:B
例题3.51单片机唯一的16位数据传送指令是()
A.MOV A,#data16
B. MOV DPTR,#data16
C. C.MOVC A,@A+DPTR
D. D.MOVX @DPTR,A
【解析】MOV DPTR,#data16是51单片机唯一的16位数据传送指令,用于给数据指针DPTR赋16位立即数。答案:B
例题4.(判断题)执行MOV 40H,50H指令后,内部RAM 50H单元的数据会被清空。()
【解析】MOV指令为数据复制操作,源操作数50H单元的数据保持不变,仅目的操作数40H单元被覆盖。答案:×
【参考答案】B B B ×
【高考题实战】
真题1(2025高考单选)下列指令中,能够读取51单片机内部RAM20H单元数据到累加器A的是()
A.MOV A,#20H B.MOV A,20H C.MOV 20H,A D.MOVX A,20H
真题2(2024高考单选)指令MOVR0,#30H的源操作数的寻址方式是()
A.寄存器寻址 B.直接寻址 C.立即寻址 D.寄存器间接寻址
真题3(2025高考判断)MOV@R0,R1是51单片机的合法汇编指令。()
真题4(2023单招单选)下列指令执行时间最短(1个机器周期)的内部数据传送指令是()
A.MOV A,Rn
B. MOV direct,direct
C. MOV DPTR,#data16
D. MOV direct,#data
真题5(2025高考判断)执行MOV A,#55H指令后,累加器A中的值为55H,源操作数的内容保持不变。()
【参考答案】B C × A √
【模拟演练】
一、单选题
1.51单片机内部数据存储器数据传送的核心指令助记符是()
A.MOV B.MOVX C.MOVC D.XCH
2.下列指令中,可读取52单片机内部高128BRAM数据的是()
A.MOV A,80H B.MOV A,@R0
C.MOVX A,@DPTR D.MOVC A,@A+DPTR
3.指令MOV 30H,40H的源操作数寻址方式是()
A.立即寻址 B.寄存器寻址 C.间接寻址 D.直接寻址
4.下列合法的51单片机汇编指令是()
A.MOV R2,@R1
B.MOV @R1,@R0
C.MOV A,R5
D.MOV A,@R2
5.执行MOV A,#66H指令后,累加器A中的值为()
A.00H B.66H C.FFH D.不确定
6.下列指令中,无需经过累加器即可实现两个内部RAM单元数据直接传送的是()
A.MOV A,30H B.MOV 30H,40H
C.MOV R0,30H D.MOV @R0,30H
7.寄存器间接寻址访问内部RAM时,仅支持使用下列哪组寄存器()
A.R0、R1 B.R0-R7 C.DPTR D.A、B
8.指令MOV @R0,A的功能是()
A.将R0中的数据传送到累加器A中
B.读取累加器A中的数据,传送到R0寄存器中
C.读取累加器A中的数据,传送到以R0内容为地址的内部RAM单元中
D.以A的内容为地址,读取该单元数据传送到R0中
9.下列指令中,属于三字节指令的是()
A.MOV A,Rn B.MOV A,direct
C.MOV A,#data D.MOV direct,#data
10.51单片机中,用于访问特殊功能寄存器SFR的唯一寻址方式是()
A.寄存器寻址 B.直接寻址 C.间接寻址 D.立即寻址
二、判断题
1.MOV指令可实现51单片机外部数据存储器的数据读取与传送。()
2.执行MOV R1,A指令后,累加器A中的数据会被清空。()
3.MOV A,@R1是合法的内部数据读取指令。()
4.直接寻址方式可访问51单片机内部RAM的全部256B空间。()
5.MOV DPTR,#1234H指令会将12H写入DPL寄存器,34H写入DPH寄存器。()
6.MOV Rn,#data指令是双字节、1个机器周期的指令。()
7.位数据传送可使用MOV指令直接实现。()
8.执行MOV @R0,30H指令时,源操作数是内部RAM30H单元的数据。()
9.MOV R5,80H指令可读取P0口(地址80H)的数据到R5寄存器中。()
10.51单片机内部数据传送指令执行后,目的操作数和源操作数的数据会发生交换。()
【参考答案】
一、单选题
A B D C B B A C D B
二、判断题
× × √ × × √ × √ √ ×
原创精品资源学科网独家享有版权,侵权必究
学科网(北京)股份有限公司zxxk.com
学科网(北京)股份有限公司
$