第三章 单片机的指令系统32
第3章 指令系统(BH)
![第3章 指令系统(BH)](https://img.taocdn.com/s3/m/664d8ad07f1922791688e865.png)
• 程序设计语言:是实现人机交换信息的基本工具,
分为机器语言、汇编语言和高级语言。 能直接识别和执行的语言。
• 机器语言:用二进制编码表示每条指令,是计算机
• 汇编语言:是用助记符、符号和数字等来表示指令
的程序设计语言。它与机器语言指令是一一对应的。
MOV direct,Rn;
111 1rrr direct
(Rn)
direct
MOV direct, direct;
1000 0101 源 direct 目的 direct
(源 direct) 目的 direct
MOV direct,@Ri ;
1000 011i direct
((Ri))
direct
• 例如
计算机科学学院
电子信息科学教研室
12
• 例如:将片内RAM 65H单元内容47H送A,可执行 指令“MOV A,@R0”。其中R0内容为65H。如 图所示:
以指令中所指定 的R0内容(65H) ① 为指针
地址 数据存储器
R0
65H
┋
② A
47H
将片内RAM 65H单 元内容47H送A
65H
11
计算机科学学院
电子信息科学教研室
4、寄存器间接寻址
• 寄存器间接寻址:操作数的地址事先存放在某个寄
存器中,寄存器间接寻址是把指定寄存器的内容作为 地址,由该地址所指定的单元内容作为操作数。
• 89C51规定R0或R1为间接寻址寄存器,它可寻址内部
地址RAM低位的128B单元内容。还可采用DPTR作为 间接寻址寄存器,寻址外部数据存储器的64KB空间。
第三章 MCS-51单片机的寻址方式和指令系统
![第三章 MCS-51单片机的寻址方式和指令系统](https://img.taocdn.com/s3/m/1b5d014d767f5acfa1c7cd4b.png)
由此可把数据传送指令分成三部分
(一)内部数据传送(通用传送指令)
1.以A为目的操作数
MOV A,Rn MOV A,@Ri ;A← (Rn) ;A←((Ri))
双字节
11101rrr 1110011i
MOV A,direct ;A←(direct) 11100101 direct
MOV A,#data ;A←#data 例: MOV A,@R1 若(R1)=20H,(20H)=62H 结果:(A)=62H 11100100 data
指令MOVC A,@A+DPTR;执 行示意图
结果:(ACC)=64H
六、相对寻址
以当前PC的内容为基准,加上指令给出的 偏移量(rel)形成新的PC值(转移地址) 的寻址方式。
转移地址=目的地址 =当前(PC)+rel
目的地址=PC当前值十rel 目的地址=转移指令的PC值+2(或3)十rel 目的地址=转移指令地址+转移指令字节数+rel
单周期:64 双周期:45 四周期:2
若fosc=12MHz, 大多指令执行 仅1μs
按照指令的功能分5大类
一、数据传送类指令(29条) 二、算术运算类指令(24条) 三、逻辑操作类指令(24条) 四、控制转移类指令(17条) 五、位操作类指令 (17条)
在描述指令系统的功能时,常用符号介绍:
@——间址符号,如@Ri,@DPTR 13. / ——位操作数的前缀,表示对该位操作 数取反,如/bit。 14. (×)——由×寻址的单元中的内容。 15. ((X))——由X的内容作为地址的存 储单元的内容。 16. ← ——箭头右边的内容取代箭头左边的 内容。
12.
一、数据传送类指令(29条)
单片机3 指令系统
![单片机3 指令系统](https://img.taocdn.com/s3/m/b8f9fd60a98271fe910ef9f9.png)
指令系统概述
MCS-51指令系统有111条指令,可进行分类 ♫按指令字节数:
单字节指令(49条)、双字节指令(46条)和三字节 指令(16条)
♫按指令执行时间分类:
单机器周期指令(64条)、双机器周期指令(45条) 和四机器周期指令(2条)
♫范围:
--内部RAM中的位寻址区 a.直接就是位地址,如MOV C, 40H b.字节地址加上位索引,如MOV C, (28H).0 --特殊功能寄存器中的可寻址位 a.直接使用位地址。例如PSW.5的位地址为0D5H b.位名称的表示方法。例如:PSW.5是F0标志位, 可使用F0表示该位。 c.字节地址加位索引。例:(0D0H).5。 d.特殊功能寄存器符号加位数的表示方法。 例:PSW.5。
„„
寻址方式
立即数寻址:指操作数包含在指令字节中,跟
在指令操作码后面的数就是参加运算的数, 该 操作数称为立即数。需在操作数前面加前缀 “#” 。
♫例子:立即数有一字节和二字节两种可能
MOV A, #3AH
MOV DPTR, #0DFFFH
寻址方式
变址寻址(基址REG+变址REG)
♫特点:这种寻址方式以基址寄存器DPTR或PC的内
MCS-51指令系统
两条指令功能完全相同,但使用中存在着差异。
偏移量的计算方法不同 查表的位置要求不同 采用DPTR作为基地址寄存器,查表地址为 采用DPTR作为基地址寄存器,表可以放在64KB程 (A)+(DPTR)。采用PC作为基地址寄存器,查表地址 序存储器空间的任何地址,使用方便,故称为远 为(A)+(PC)+1。因此偏移量的计算方法不同。 程查表。 DPTR : A为欲查数值距离表首地址的值; 采用PC作为基地址寄存器,具体的表在程序存储 PC : A的值必须预先设置为: 器中只能在查表指令后的256B的地址空间中,使 用有限制,故称为近程。 A的值=表首地址-当前指令的PC值-1
第3章指令系统
![第3章指令系统](https://img.taocdn.com/s3/m/3b189270a417866fb84a8e3e.png)
单片机原理 及接口技术
第3 章
89C51单片机指 89C51单片机指 令系统
LOGO
LOGO
程序设计举例
一 二 三 四 五 六
简单程序设计举例 分支程序 循环程序 子程序设计举例 代码转换程序设计举例 运算类程序设计举例
BACK
LOGO
一、 简单程序设计举例
例1 :拆字。将片内RAM 20H单元的内容拆成两段,每段 拆字。将片内RAM 20H单元的内容拆成两段 单元的内容拆成两段, 四位。并将它们分别存入21H 22H单元中 程序如下: 21H与 单元中。 四位。并将它们分别存入21H与22H单元中。程序如下:
练习: 练习: 1.将片外RAM 2000H单元开 始的20个字节,传送到片 内RAM 30H单元开始的单元 中去。 2.将片内RAM 20H单元开始 的10个字节,传送到片内 RAM 30H单元开始的单元中 去。 3.将片内RAM BK1单元开始 的COUNT个字节,传送到片 外RAM BK2单元开始的单元 中去。
Back
LOGO
3.4
思考题与习题
1. 简述下列基本概念: 指令、指令系统、机器语言、汇编语言、高级 语言。 2. 什么是计算机的指令和指令系统? 3. 简述89C51汇编指令格式。 4. 简述89C51的寻址方式和所能涉及的寻址空间。 5. 要访问特殊功能寄存器和片外数据存储器,应采用哪些寻址方式?
第三章MCS51系列单片机指令系统及汇编语言程序设计
![第三章MCS51系列单片机指令系统及汇编语言程序设计](https://img.taocdn.com/s3/m/e2e9ddb10342a8956bec0975f46527d3250ca65c.png)
SJMP rel ;PC+ 2 + rel→PC 短转移指令为一页地址范围内的相对转移指令。因为rel为1字节补码 偏移量,且SJMP rel指令为2字节指令,所以转移范围为-126D~+ 129D 【4】间接转移指令
表3.4 程序存储器空间中的32个基本2K地址范围
0000H~07FFH 0800H~0FFFH 1000H~17FFH 1800H~1FFFH 2000H~27FFH 2800H~2FFFH 3000H~37FFH 3800H~3FFFH 4000H~47FFH 4800H~4FFFH 5000H~57FFH
3. 寄存器寻址
以通用寄存器的内容为操作数的寻址方式。通用寄存 器包括:A,B,DPTR,R0~R7。其中,R0~R7必须在 工作寄存器组之中。
例如:INC R0 ;(R0)+1→R0
需要注意的是,A和B既是通用寄存器,又是具有直 接地址的特殊功能寄存器。
4. 寄存器间接寻址
以寄存器中的内容为地址,该地址中的内容为操作数的寻址方式。能够 用于寄存器间接寻址的寄存器有:R0,R1,DPTR,SP。其中,R0,R1必 须在工作寄存器组之中,SP仅用于堆栈操作。
MCS-51单片机共有111条指令,按功能分类, MCS-51指令系统可分为5大类:
➢ 数据传送类指令(共29条) ➢ 算术操作类指令(共24条) ➢ 逻辑操作类指令(共24条) ➢ 控制转移类指令(共17条) ➢ 布尔变量操作类指令(共17条)
1.数据传送类指令(共29条)
以累加器A为目的操作数类指令(4条)
8051单片机3单片机指令系统
![8051单片机3单片机指令系统](https://img.taocdn.com/s3/m/becfabfc04a1b0717fd5dd23.png)
(1) 方括号[ ]表示该项是可选项, 可有可无。 (2) 标号是用户设定的符号, 它实际代表该指令所在的地址。 标号必须以字母开头, 其后跟1~8个字母或数字, 并以“:”结 尾。 (3) 操作码是用英文缩写的指令功能助记符。它确定了本条指 令完成什么样的操作功能。如: ADD表示加法操作。任何一 条指令都必须有该助记符项, 不得省略。 (4) 操作数指的是指令操作的数据. 可以是一个数,也可以是寄 存器和特殊功能寄存器,还可以是标号地址;个数可以为0, 3 也可以为1,2,3
23
3.4.1 数据传送类指令
3.4.1 数据传送类指令
数据传送类指令共29条, 它是指令系统中最活跃、 使 用最多的一类指令。一般的操作是把源操作数传送到目的操 作数, 即指令执行后目的操作数改为源操作数, 而源操作数保 持不变 数据传送类指令不影响进位标志CY、 半进位标志AC 和溢出标志OV, 但当传送或交换数据后影响累加器A的值时, 奇偶标志P的值则按A的值重新设定。 按数据传送类指令的操作方式,又可把传送类指令分 为3种类型: 数据传送、数据交换和堆栈操作, 并使用8种助记 符: MOV、MOVX、MOVC、XCH、XCHD、SWAP、 PUSH及POP 24
3.4.1 数据传送类指令
25
3.4.1 数据传送类指令
1. 内部数据存储器间数据传送指令
内部RAM区是数据传送最活跃的区域, 可用的指令数也最 多, 共有16条指令, 指令操作码助记符为MOV,通用格式为: MOV 目的操作数 , 源操作数 内部RAM之间源操作数传递关系如下图所示
26
3.4.1 数据传送类指令
4
3.1 指令格式
指令描述符号:
在分类介绍各类指令之前, 先对描述指令的一些 符号意义进行一些简单约定:
03.9 第三章 - 单片机指令系统(位操作指令MOV、SETB、CLR、CPL、ANL、ORL)
![03.9 第三章 - 单片机指令系统(位操作指令MOV、SETB、CLR、CPL、ANL、ORL)](https://img.taocdn.com/s3/m/fd1b35eb31b765ce05081498.png)
;A = 59H = 0101 1001B ;P1 = A = 0101 1001B ;C = 1 ;ACC.1 = 1 ;P1.3 = 0 ;P1.6 = 0 ;P1.2 = 1 ;(20H)= P1 = 0001 0101B ;(30H)= A = 0101 1011B
09:43
单片机技术
8
3.9.2 位控制指令(SETB、CLR、CPL)
;P1.0 = 1 ;ACC.3 = 0 ;C = 1 ;C = 1 ;C = 1 ;P3.4 = 1
09:43
单片机技术
14
3.9.3 位条件转移指令(JC、JB、JBC)
❖ 1.判C转移指令ຫໍສະໝຸດ JC、JNC)JC rel
;先PC←PC+2;若(Cy)= 1时转移,且PC'
=PC+rel,否则顺序执行
CPL bit ;(bit)= (/bit)
▪ 功能:将Cy或bit取反。
09:43
单片机技术
9
3.9.2 位控制指令(SETB、CLR、CPL)
❖ 课堂练习
▪ 执行以下指令?
SETB P1.0 CLR 20H CLR PSW.2 CPL PSW.2 CLR RS0 SETB RS1
;P1.0 = 1 ;20H = 0 ;PSW.2 = 0 ;PSW.2 = 1 ;RS0 = 0 ;RS1 = 1
❖ 1.位置1指令(SETB)
▪ 格式:SETB C ;(Cy) = 1
SETB bit ;(bit)= 1
▪ 功能:将Cy或bit置1。
❖ 2.位置0指令(CLR)
▪ 格式:CLR C ;(Cy) = 0
CLR bit ;(bit)= 0
▪ 功能:将Cy或bit置0。
第3章单片机指令系统
![第3章单片机指令系统](https://img.taocdn.com/s3/m/6f18354b33687e21af45a961.png)
寄存器寻址 寻址方式 寄存器间接寻址
基址加变址寄存器间接寻址 相对寻址 位寻址
1.立即寻址
操作数直接由指令给出,通常紧跟指令操作码之 后的字节是操作数,该操作数被称为立即数。
立即寻址所对应的寻址空间为:ROM 立即数:8/16位二进制数
如:MOV MOV A,#7AH DPTR, #1234H
注意:
① 适当选择SFR。寻址SFR时,可以用直接地址,也可以 用寄存器名,但后者更容易理解和阅读 如: MOV A,0D0H ; (A)←(D0H) MOV A,PSW ; (A)←(PSW)
② 适当选择累加器的表达式
累加器A表达方式 A → 寄存器寻址 ACC 直接寻址 E0H ;04H 单字节
如:
INC A INC ACC INC 0E0H
;05E0H 双字节
③ 注意地址的区别(位地址与字节地址)
如: MOV A,30H MOV C,30H ; (A)←(30H) ;(C)←(30H) 字节操作 位操作
3. 寄存器寻址
操作数在寄存器中
可用寄存器有: (1)四组工作寄存器R0~R7共32个工作寄存器 (2)SFR中有A、AB、DPTR及CY 如: MOV R3,#12H MOV A,R3
注意:① 立即数前加“#”号 ② 立即寻址方式的指令是双字节的(第1个字节为 操作码,第2个字节是操作数) ③ 操作数是放在ROM内的常数
2. 直接寻址
指令中直接给出操作数所在的单元地址或位地址
直接寻址可访问的存储空间: (1)内部RAM低128个单元 在指令中直接以单元地址形式给出,地址范围00H~7FH (2)特殊功能寄存器SFR 直接寻址是SFR惟一的寻址方式,SFR可以用单元地址给出, 也可用寄存器符号形式给出(但A、AB、DPTR除外) (3)211个位地址空间 内部RAM中可位寻址的20H~2FH单元对应的128个位地址空间 11个SFR中83个可用的位地址空间
单片机与微机原理及应用课后答案(张迎新等)电子工业出版社
![单片机与微机原理及应用课后答案(张迎新等)电子工业出版社](https://img.taocdn.com/s3/m/d7ce152158fafab068dc021a.png)
第二章单片机结构及原理1、MCS-51 单片机内部包含哪些主要功能部件它们的作用是什么答:(1)一个8bit CPU 是微处理器的核心,是运算和逻辑计算的中心。
(2)片内震荡器及时钟电路:提供标准时钟信号,所有动作都依据此进行。
(3)4K ROM 程序存贮器:存贮程序及常用表格。
(4)128B RAM 数据存贮器:存贮一些中间变量和常数等。
(5)两个16bit 定时器/计数器:完全硬件定时器(6)32 根可编程I/O 口线:标准8 位双向(4 个)I/O 接口,每一条I/O 线都能独立地作输入或输出。
(7)一个可编程全双工串行口。
(8)五个中断源。
2、什么是指令什么是程序答:指令是规定计算机执行某种操作的命令。
程序是根据任务要求有序编排指令的集合。
3、如何认识89S51/52 存储器空间在物理结构上可以划分为 4 个空间,而在逻辑上又可以划分为3 个空间答:89S51/52 存储器空间在物理结构上设有4个存储器空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。
在逻辑上有3个存储器地址空间:片内、片外统一的64KB 程序存储器地址空间,片内256B数据存储器地址空间,片外64KB的数据存储器地址空间。
4、开机复位后,CPU 使用的是哪组工作寄存器他们的地址是多少CPU 如何确定和改变当前工作寄存器组答:开机复位后,CPU 使用的是第0 组工作寄存器,地址为00H~07H,CPU 通过改变状态字寄存器PSW中的RS0 和RS1 来确定工作寄存器组。
5、什么是堆栈堆栈有何作用在程序设计时,有时为什么要对堆栈指针SP 重新赋值如果CPU 在操作中要使用两组工作寄存器,SP 应该多大答:堆栈是一个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。
堆栈指针SP复位后指向07H 单元,00H~1FH 为工作寄存器区,20H~2FH 为位寻址区,这些单元有其他功能,因此在程序设计时,需要对SP 重新赋值。
03.8 第三章 - 单片机指令系统(逻辑运算指令ANL、ORL、XRL、CPL、RL、RR、RRC、RLC)
![03.8 第三章 - 单片机指令系统(逻辑运算指令ANL、ORL、XRL、CPL、RL、RR、RRC、RLC)](https://img.taocdn.com/s3/m/d6e6ad6edd36a32d737581ad.png)
0000 1001
0
9
09:42
单片机技术
6
3.8.1 逻辑“与”运算指令(ANL)
❖ 练习 ▪ 已知(A)=6EH,(R0)=9BH,执行ANL A,R0后 ?
0110 1110
∩ 1001 1010
0000 1010
0
A
09:42
单片机技术
7
3.8.1 逻辑“与”运算指令(ANL)
第三章:单片机指令系统
3.8 逻辑运算类指令
09:42
单片机技术
1
第三章:MSC-51 单片机指令系统
3.8 - 逻辑运算类指令
☺ 3.8.1 逻辑“与”运算指令 ☺ 3.8.2 逻辑“或”运算指令 ☺ 3.8.3 逻辑“异或”运算指令 ☺ 3.8.4 累加器A清0和取反 ☺ 3.8.5 “左移”循环指令(RL RLC) ☺ 3.8.6 “右移”循环指令(RR RRC)
∪ 1000 1001
1101 1111
D
F
09:42
单片机技术
12
3.8.2 逻辑“或”运算指令(ORL)
❖ 2.高考考点(ORL)
▪ 规则:有1出1,全0出0(按位) ▪ 功能:置1操作 ▪ 方法:某一位要置1则该位写1,其余不变位写0
09:42
单片机技术
13
3.8.2 逻辑“或”运算指令(ORL)
09:42
单片机技术
10
3.8.2 逻辑“或”运算指令(ORL)
❖ 1.“或” 逻辑指令(ORL)
▪ 指令格式:
ORL A ,
#data ;A ←(A)∪ data ,立即寻址 direct ;A ←(A)∪ direct ,直接寻址 Rn ;A ←(A)∪ (Rn) ,寄存器寻址 @Ri ;A ←(A)∪ (@Ri),寄间寻址
MCS-51单片机原理和接口技术习题参考答案
![MCS-51单片机原理和接口技术习题参考答案](https://img.taocdn.com/s3/m/c2d63300773231126edb6f1aff00bed5b9f37371.png)
MCS-51单片机原理和接口技术习题参考答案第一章绪论1-1解答:第一台计算机的研制目的是为了计算复杂的数学难题。
它的特点是:计算机字长为12位,运算速度为5000次/,使用18800个电子管,1500个继电器,占地面积为150m2,重达30t,其造价为100多万美元。
它的诞生,标志着人类文明进入了一个新的历史阶段。
1-2解答:单片微型计算机简称单片机。
一个完整的单片机芯片至少有中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口等部件。
1-3解答:单片机的发展大致经历了四个阶段:第一阶段(1970—1974年),为4位单片机阶段;第二阶段(1974—1978年),为低中档8位单片机阶段;第三阶段(1978—1983年),为高档8位单片机阶段;第四阶段(1983年至今),为8位单片机巩固发展阶段及16位单片机、32位单片机推出阶段。
1-4解答:Intel公司的MCS-48系列、MCS-51系列、MCS-96系列产品;Motorola公司的6801、6802、6803、6805、68HC11系列产品;Zilog公司的Z8、Super8系列产品;Atmel公司的AT89系列产品;Fairchild公司的F8和3870系列产品;TI公司的TMS7000系列产品;NS公司的NS8070系列产品;NEC公司的μCOM87(μPD7800)系列产品;National公司的MN6800系列产品;Hitachi公司的HD6301、HD63L05、HD6305。
1-5解答:(1)8031/8051/8751三种型号,称为8051子系列。
8031片内没有ROM,使用时需在片外接EPROM。
8051片内含有4KB的掩模ROM,其中的程序是生产厂家制作芯片时烧制的。
8751片内含有4KB的EPROM,用户可以先用紫外线擦除器擦除,然后再利用开发机或编程器写入新的程序。
(2)8032A/8052A/8752A是8031/8051/8751的增强型,称为8052子系列。
第三章 PIC单片机指令系统PPT课件
![第三章 PIC单片机指令系统PPT课件](https://img.taocdn.com/s3/m/3bfada53844769eae009ed8c.png)
53
汇编语言程序设计
2.PIC 汇编语言的程序流程图
(1)程序流程图常用的图形符号 圆角矩形框为起始/终止框,表示一个程序的开
始或结束。 矩形框为任务框,表示要处理的任务。 菱形框为判断框,表示要判断的因素,判断结果
15
2.指令符号的意义说明
在PIC系列单片机指令中常把数据存储器RAM当作 寄存器来使用(处理)并用字母f(或F)表示。
d 代表操作数的目标装置选择,定义d=0,结果存入 W;d=1结果存入(文件)寄存器f,当使用汇编程序 指令d缺省时,默认d=1。
b代表(文件)寄存器(8位)的位地址(0~7取值)。如寄 存器的8位为b7、b6……b1、b0,若b=1代表寄存 器的第b1位。
ADDLW 21H
8
3.直接寻址
操作数所在的存储单元地址直接在指令中形式给 出,就称之为直接寻址。这种方式可以对任何一 个寄存器进行直接寻址访问。
9
4.位寻址
这种寻址方式是对寄存器中的任一位(bit) 进行操作。
10
例3-1 ADDLW 16H
11
例2-2 IORWF 26H, 0
结果存放装置的选择
k代表立即数、常数和数据标号。
16
指令集
17
字节操作指令
1.寄存器加法指令
0=w 1=f
d equ 0 FSR equ 0XC2 Addwf fsr,d
18
字节操作指令
2.寄存器减法指令
19
字节操作指令
3.寄存器加1指令
CNT+1-->CNT
微机原理_单片机的指令系统(2001)(1)
![微机原理_单片机的指令系统(2001)(1)](https://img.taocdn.com/s3/m/4a3a1e6e25c52cc58bd6be4a.png)
(Rn) #data
数据传送类指令(2)
mov direct,A ;
(direct) (A)
mov direct,Rn ;
mov direct,direct ;
(direct) (Rn) n=0~7
(direct) (direct)
mov direct, @Ri ;
数据传送类指令(5)
direct 直接寻址 A @Ri 间接寻址
累加器 Rn 寄存器 data 立即数
算术运算类指令
程序状态字 PSW 加法指令 减法指令 乘/除指令
减法指令
subb subb subb subb A,Rn ;(A)<--(A)-(Rn)-(C) A,direct ;(A)<--(A)-(direct) -(C) A,@Ri ;(A)<--(A)-((Ri)) -(C) A,#data ;(A)<--(A)-#data -(C)
movx @Ri,A;
movx @DPTR,A ; ((DPTR)) (A)
movc A,@A+DPTR ; (A) ((A)+(DPTR))
movc A,@A+PC;
(PC) (PC)+1 ,
(A) ((A)+(PC))
mov DPTR,#data16; (DPTR) #data16
减 1 指令
减 1 指令
dec A dec Rn dec direct dec @Ri ;(A)(A)-1 ;(Rn)(Rn)-1 ;(direct)(direct)-1 ;((Ri) )((Ri) )-1
单片机指令系统-第3讲寻址方式
![单片机指令系统-第3讲寻址方式](https://img.taocdn.com/s3/m/5e2684d66429647d27284b73f242336c1eb930d8.png)
单片机指令系统-第3讲寻址方式单片机指令系统第 3 讲寻址方式在单片机的世界里,指令系统就像是它的“语言”,而寻址方式则是这门语言中的重要语法规则。
理解了寻址方式,我们就能更加高效、准确地编写单片机程序,让单片机按照我们的意愿去工作。
什么是寻址方式呢?简单来说,寻址方式就是寻找操作数的方式。
在单片机执行指令的过程中,需要对各种数据进行操作,而这些数据可能存放在不同的地方,比如寄存器、内存单元等等。
寻址方式就是告诉单片机如何找到这些数据。
常见的寻址方式有以下几种:一、立即寻址立即寻址是最简单直观的一种寻址方式。
在这种方式下,操作数直接包含在指令中。
例如,指令“MOV A, 50H”中,“50H”就是一个立即数,单片机直接将这个数值赋给累加器 A。
这种方式的优点是指令执行速度快,因为操作数就在指令中,不需要额外的时间去寻找。
但是,由于指令长度有限,能表示的立即数范围也有限。
二、直接寻址直接寻址就是直接给出操作数所在的内存单元地址。
比如,指令“MOV A, 30H”,这里的“30H”就是一个内存单元的地址,单片机从这个地址中取出数据并赋给累加器 A。
直接寻址方式可以访问片内 RAM 的 00H 7FH 单元以及特殊功能寄存器(SFR)。
使用直接寻址可以方便地对特定的内存单元进行操作,但需要注意的是,直接寻址的范围相对有限。
三、寄存器寻址寄存器寻址是指操作数存放在寄存器中。
例如,指令“MOV A, R0”,就是将寄存器 R0 中的内容传送到累加器 A 中。
由于寄存器的存取速度比内存快得多,所以寄存器寻址方式可以提高指令的执行效率。
在单片机中,通常有多个通用寄存器可供选择,程序员可以根据需要灵活使用。
四、寄存器间接寻址寄存器间接寻址是通过寄存器中的内容作为地址来访问内存单元。
比如,指令“MOV A, @R0”,这里的 R0 中存放的不是操作数本身,而是操作数所在的内存地址。
单片机先从 R0 中取出地址,然后再从这个地址中取出数据赋给累加器A。
03.10 第三章 - 单片机指令系统(条件转移类指令LJMP、AJMP、SJMP、JMP、JZ、DJNZ、CJNE、RET、RETI)
![03.10 第三章 - 单片机指令系统(条件转移类指令LJMP、AJMP、SJMP、JMP、JZ、DJNZ、CJNE、RET、RETI)](https://img.taocdn.com/s3/m/42414ce9f524ccbff12184ad.png)
09:42
单片机技术
12
第三章:MSC-51 单片机指令系统
3.10.2 - 条件转移类指令
❖ 理解条件的概念 ❖ 掌握JZ、JNZ的特点和用法 ❖ 掌握DJNZ的特点和用法 ❖ 掌握CJNE的特点和用法
09:42
单片机技术
13
3.10.2 条件转移指令(JZ、DJNZ、CJNE)
❖ 1.判A转移指令(JZ、JNZ)
09:42
单片机技术
4
3.10 控制转移类指令 ❖ 控制转移类指令分类
▪ 无条件转移指令: 指执行此类指令,程序将无条件转移到目的地址
包括:LJMP 、AJMP 、SJMP 、JMP
Long(长-64KB)Absolutely(绝对-2KB)Short(短-256B)Jump(跳)
▪ 条件转移指令:
指程序需满足某种条件时,才转移到目的地址,否则顺 序执行下一条指令。
包括:JC、JB、JBC、JZ、DJNZ、CJNE
09:42
单片机技术
5
3.10.1 无条件转移指令(LJMP、AJMP、SJMP、JMP)
❖ 1.长转移指令(LJMP)
▪ 格式:LJMP addr16 ;PC =(PC)+ 3
;PC ← addr15~0 ▪ 范围:216B = 64KB,(0000H~FFFFH)
▪ 格式:JZ rel ;当A = 00H时转向rel,PC' =(PC)+ 2+rel ;否则顺序执行,PC' =(PC)+ 2
▪ 格式:JNZ rel ;当A ≠ 00H时转向rel,PC' =(PC)+2+rel ;否则顺序执行,PC' =(PC)+ 2
单片机与接口技术课后习题答案
![单片机与接口技术课后习题答案](https://img.taocdn.com/s3/m/e56694d2915f804d2a16c19a.png)
;送数
MOV @R1,A
INC R0
INC R1
DJNZ R2,LOOP
;是否传送结束?
SETB P1.0
;置传送结束标志位
END
;结束
习题答案
①②③④
13:试编写程序,将片外RAM从2000H开始存放的16个数传送到片外RAM从30H
开始的单元中。
ORG 0000H
MOV DPTR,#2000H ;存放数据原始起始地址
《单片机与接口技术》
【习题P99-3】初始化程序
;外部中断0中断矢量地址
;定时器0中断矢量地址
;串口中断矢量地址
;主程序起始地址 ;主程序其他初始化工作 ;开外部中断0 ;置外部中断0电平触发方式 ;开定时器0中断 ;开串口中断 ;开CPU总中断 ;置定时器0为高优先级中断 ;主程序主体内容 ;外部中断0中断处理子程序 ;定时器0中断处理子程序 ;串口中断处理子程序 ;主程序结束
;判断数据是否比较完毕
《单片机与接口技术》
习题答案
第五章:中断系统
一、填空 1. 共享 2. 外部 3. PC;PC;外部中断0矢量地址 4. 外部中断0 5. 电平;边沿 二、选择 1. ②2. ③3. ④4. ①5. ③6. ④7. ②8. ② 三、编程
①②③④
【习题P99-3】试编写一段对中断系统初始化程序,要求允许外 部中断0(电平触发)、T0中断、串行口中断,且使T0为高优先 级中断。
《单片机与接口技术》
三、问答题 1.定时/计数器用作定时器时,其定时时间与哪些因素有关? 用作计数器时,对外部计数脉冲有何要求? 2.当定时器0工作在模式3时,由于TR1被T0占用,那么应 如何控制定时器1的开启和关闭?
第三章MCS-51指令系统及汇编语言程序设计
![第三章MCS-51指令系统及汇编语言程序设计](https://img.taocdn.com/s3/m/f4f5fe4dfe4733687e21aae9.png)
指 令 系 统 的 寻 址 方 式
MCS-51指令系统及一般说明 MCS-51指令系统及一般说明
在介绍指令之前, 在介绍指令之前 , 先对指令中使用的一些符号意义进行简单 的说明。 的说明。 direct---直接地址, ---直接地址 ① direct---直接地址,即8位的内部数据存储器单元或特殊 功能寄存器的地址。 功能寄存器的地址。 #data--包含在指令中的8位常数。 --包含在指令中的 ② #data--包含在指令中的8位常数。 #datal6--包含在指令中的16位常数 包含在指令中的16位常数。 ③ #datal6--包含在指令中的16位常数。 rel-- 位的带符号的偏移量。用于SJMP --8 SJMP及所有的条件转移 ④ rel--8位的带符号的偏移量。用于SJMP及所有的条件转移 指令中。 指令中 。 偏移量按相对于下一条指令的第一个字节地址与跳转 后指令第一个字节地址之差计算, 范围内取值。 后指令第一个字节地址之差计算,在-128~+127范围内取值。 128 +127范围内取值 DPTR--数据指针,可用作16位的地址寄存器。 --数据指针 16位的地址寄存器 ⑤ DPTR--数据指针,可用作16位的地址寄存器。
指 令 系 统 的 寻 址 方 式
寄存器间接寻址
寄存器间接寻址方式可用于访问内部RAM 或外部数据存储器 寄存器间接寻址方式可用于访问内部 RAM或外部数据存储器 。 RAM 或外部数据存储器。 这种寻址方式是由指令指定某一寄存器的内容作为操作数的 地址。 地址。 其中(Ri)=40H (Ri)=40 例如 MOV A,@Ri ;(i=0或1),其中(Ri)=40H 这条指令表示从Ri中找到源操作数所在单元的地址, Ri中找到源操作数所在单元的地址 这条指令表示从Ri中找到源操作数所在单元的地址,把该地 址中的内容传送给A 即把内部RAM 40H单元的内容送到累加器A RAM中 址中的内容传送给A。即把内部RAM中40H单元的内容送到累加器A 中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.1 MCS-51单片机指令格式和寻址方式
3.1.1 MCS-51单片机指令格式 [标号: ] 操作码 [目的操作数][,源操作数][;注释]
标号:以字母开头的1-8个字符(字母、数字等)和“:” 组 操作码成:。规不定能指使令用进本行汇什编么语操言作已,不定能义空的缺符。号。
3.1.2 MCS-51单片机寻址方式
7。相对寻址方式 用于转移指令 目的地址=转移指令地址+转移指令字节数+rel
(a)指令JZ 08H寻址示意图
(b)指令JZ F4H寻址示意图
3 MCS-51单片机指令系统
3.1 MCS-51单片机指令格式和寻址方式 3.2 MCS-51单片机指令分类介绍
数据传送类指令(29条) 算术运算类指令(24条) 逻辑运算及移位类指令(24条) 控制转移类指令(17条) 位操作类指令(17条)
3.寄存器寻址方式
选定某寄存器,自该寄存器中读取或存放操作数,以完成指令 规定的操作。 寻址范围包括通用寄存器和部分专用寄存器。
例如:MOV A,R0
3.1 MCS-51单片机指令格式和寻址方式
3.1.2 MCS-51单片机寻址方式
4.寄存器间接寻址方式 由指令指出某一个寄存器的内容作为操作数地址的寻址方法, 称 为寄存器间接寻址方法。
3.2.2 数据传送类指令
1. 概述
2. 内部RAM数据传送指令组
(1) 立即数传送指令
MOV A,#data
MOV direct,#data MOV Rn,#data
8位立即数传送指令
MOV @Ri,#data
MOV DPTR,#data16 16位立即数传送指令
例:MOV DPTR,#1234H DPH: 12H DPL: 34H
3.2 MCS-51单片机指令分类介绍
3.2.2 数据传送类指令
2. 内部RAM数据传送指令组
(1) 立即数传送指令 (2) 内部RAM单元之间的数据传送指令
MOV direct2,direct1 MOV direct,Rn MOV Rn , direct MOV direct,@Ri MOV @Ri , direct 例:MOV P2,R2
3.2 MCS-51单片机指令分类介绍
3.2.1 指令格式中符号意义说明
Rn:通用寄存器R0-R7。 Ri:间接寻址寄存器R0、R1。 direct:8位直接地址。 #data :8位立即数。 #data16:16位立即数。 DPTR:数据指针。 bit:内部RAM中的直接寻址位。 @:间址寄存器的前缀标志。 /:位地址前表示对该位取反。
1.立即寻址方式
操作数直接出现在指令中,紧跟在操作码的后面,作 为指令的一部分与操作码一起存放在程序存储器内, 可以立即得到并执行。
例如:MOV A,#3AH MOV DPTR,#123AH
3.1 MCS-51单片机指令格式和寻址方式
3.1.2 MCS-51单片机寻址方式
2.直接寻址方式 指令中直接给出操作数所在的存储器地址, 以供寻址取数或存数 寻址范围包括内部RAM的低128单元和专用寄存器。 例如:MOV A,3AH
强调: 寄存器的内容不是操作数本身, 而是操作数地址。
例如:MOV A,@Ri MOVX A,@DPTR
3.1 MCS-51单片机指令格式和寻址方式
3.1.2 MCS-51单片机寻址方式
5。变址寻址方式 基址寄存器加变址寄存器间接寻址,简称变址寻址。它以数据指针 DPTR或程序计数器PC作为基址寄存器,累加器A作为变址寄存器, 两者的内容相加形成16位程序存储器地址,该地址就是操作数所在地 址。
MOV 0A0h,R2 MOV 0D0h,@R1 MOV R5,70h
MOV 0D0h,@R1
位序
位标 志
PSW. PSW. PSW. PSW. PSW. PSW. PSW. PSW.
7
654ຫໍສະໝຸດ 3210
CY
AC
F0 RS1 RS0 OV
/
P
MOV 0D0h,@R1
位序
位标 志
PSW. PSW. PSW. PSW. PSW. PSW. PSW. PSW.
MOVC A,@A+DPTR MOVC A,@A+PC JMP A,@A+DPTR
3.1 MCS-51单片机指令格式和寻址方式
3.1.2 MCS-51单片机寻址方式
6。位寻址方式
指令中直接给出位地址。
例如:SETB PSW.5
说明:1)寻址范围包括内部数据存储器RAM中的128位和特殊寄存器 SFR中的可寻址位;
操作数:规定指令操作的对象,为指令的操作提供数据或地 址;可缺省,也可包括二项、三项;各操作数之间 以逗号分隔。
注释:以“;”开头,如换行还应加“;”。
3.1 MCS-51单片机指令格式和寻址方式
3.1.1 MCS-51单片机指令格式 3.1.2 MCS-51单片机寻址方式
寻址方式:指定操作数所在单元的方式。(共七种)
2)位寻址区中的位可以采用位地址或单元地址加位的表示方法; 特殊寄存器SFR中的可寻址位在指令中有4种表示方法,即: 直接使用位地址,如SETB 0D5H; 位名称表示法,如SETB F0; 单元地址加位数的表示法,如SETB 0D0H.5; SFR符号加位数的表示法,如SETB PSW.5。
3.1 MCS-51单片机指令格式和寻址方式
3.2 MCS-51单片机指令分类介绍
3.2.1 指令格式中符号意义说明 3.2.2 数据传送类指令 1. 概述
MOV 目的操作数,源操作数
目的操作数 :累加器A、通用寄存器Rn、直接地址direct、 间址寄存器
源操作数 :累加器A、通用寄存器Rn、直接地址direct、 间址寄存器、立即数
3.2 MCS-51单片机指令分类介绍
7
6
5
4
3
2
1
0
CY
AC
F0 RS1 RS0 OV
/
P
MOV 0D0h,@R1
3.2 MCS-51单片机指令分类介绍
3.2.2 数据传送类指令
2. 内部RAM数据传送指令组
(1) 立即数传送指令 (2) 内部RAM单元之间的数据传送指令 (3) 通过累加器的数据传送指令
MOV A,Rn MOV Rn ,A MOV A,direct MOV direct, A MOV A,@Ri MOV @Ri , A