单片机的指令系统
MCS-51单片机指令系统教程(3)
2,当直接地址时在工作寄存器区中时,可以使用两种寻址 方式来访问。 如:
MOV A,00H ;将RAM中00H单元数据送累加器A
04
03
02
01
00
返回前一次
2.2.3立即寻址
指令本身直接含有所需要的8位或16位的操作数。
将此数称为“立即数”(使用#标明)。如:
MOV A,#30H
;将(8位)立即数送累加器A
MOV DPTR,#2000H ;16位立即数送DPTR积存器
【注意】:MOV A,#30H MOV A,30H 两者的区别。 立即数寻址的指令长度为2或3个字节。
三字节指令在存储器中存放的方式示意图
指令的字节数与指令的运行时间
指令的字节多是否意味着指令周期就长?
指令
字节数 周期数
MOV A,R0
1
1
MOV A,#0FFH 2
1
MOV 20H,#30H 3
2
MUL AB
1
4
INC DPTR
1
1
指令说明 R0内容送累加器A
立即数FFH送A 立即数30H送内存20h单元
累加器A 02H
ALU
DPTR 0300H
0300H + 02H
0302H
ROM
0302H X
返回
MOVC A,@A+DPTR
2.2.6 相对寻址
转移指令中使用的一种寻址方式。MCS-51单片机的指令 系统中,有两类转移指令:相对转移( 2个或3个字节)
专题四 MCS-51指令系统-第三章 单片机的指令系统
8、指令字节数和机器周期数
第三章 单片机的指令系统
是必须掌握的内容。 Ø 一台计算机所有指令的集合, 称为该计算机的指令系统。 Ø 各种计算机都有专用的指令系统。
Ø 本章主要介绍单片机的寻址方式及指令系统,
学时分配:2学时 1—53+97+98+99 2学时 54—96 100
第三章 单片机的指令系统 • 3.1 MCS-51 指令系统概述
类
按指令字长分类
按指令执行时间分类
3.2 寻址方式
• 寻址方式:7种
– – – – – – – – – 寄存器寻址 直接寻址 寄存器间接寻址 立即寻址 变址间接寻址 相对寻址 位寻址 寻址方式与寻址空间 MCS-51单片机的两个突出特点
寄存器寻址——操作数存放在寄存器中
寄存器为 MOV A,R0 MOV R0,#01001111B R0~R7,A,DPTR,C SETB RS0 MOV R3,#56H
目的寻址为直接寻址
2) 20H ~2FH 可位寻址区的寻址方式
字节寻址方式: 直接寻址 direct
寄存器间接寻址@R0,@R1
位寻址: bit 直接寻址
例: MOV 26H,C ; 位寻址 (26H)1位
MOV 26H,A ;字节寻址(26H)8位
3) 30H ~7FH 数据缓冲区的寻址方式
字节寻址方式: 直接寻址 direct
MOV A,#23H
PUSH ACC
;
A寄存器寻址
POP
0E0H
;直接寻址
4、可做片内RAM的指针有:
R0,R1, 四个组共有8个 预先设置RS1、RS0,以选定组。 SETB RS0 CLR RS1; 1组
第三章MCS51系列单片机指令系统及汇编语言程序设计
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单片机指令系统
(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 指令格式
指令描述符号:
在分类介绍各类指令之前, 先对描述指令的一些 符号意义进行一些简单约定:
第9章 单片机的指令系统说明
计算机总是把操作数当作有符号数(补码形式)看待 并影响PSW的相关标志位。影响情况如下: 进位/借位标志CY: 两数和的D7位有进位时,(CY)=1,否则,(CY)=0。 半进位/借位标志AC: 两数和的D3位有进位时,(AC)=1,否则,(AC)=0。 溢出标志OV: 两数和的D7,D6位只有一位有进位时,(OV)=1;否则, (OV)=0,即OV=C6⊕C7。 奇偶标志P: 当累加器A中“1”的个数为奇数时,(P)=1;为偶数 时(P)=0。
例2 把片外RAM的36H单元中的数据送到片外RAM的 1200H单元。 〈分析〉(36H)→(1200H) 程序如下: MOV R1,#36H MOVX A ,@R1 MOV DPTR,#1200H MOVX @DPTR, A <想一想>下面的程序可以实现吗? MOV DPTR, #1200H MOV R1,#36H MOV @DPTR,@R1 注意:片外RAM之间不能直接传送数据,必须经过累加器 A
例5 试分析8051单片机执行下述指令后,累加器A和PSW各标 志位的变化。 MOV A,#0A5H ADD A,#0CFH 解: (A)=10100101B + Data=11001111B CY 01110100B C7 C6 AC (CY)=C7=1;(AC)=1;溢出标志(OV)=C7⊕C6=1⊕0=1,有 溢出;(P)=0。执行结果:(A)=74H。 若为无符号数运算, (CY)=1,表示结果超出(0~255) 范围。若为带符号数运算,因(-49)+(-91)=-140,超出了 (-128~+127)的范围,所以OV=1溢出。
半字节交换 XCHD A,@Ri SWAP A
;(A3~0)((Ri)3~0) ;(A3~0)(A7~4)
单片机的指令系统
3、简述80C51指令的分类和格式。
答:80C51单片机的指令系统共有111条指令,按其功能可分为5大类:数据传送类指令(28 条)、算术运算类指令(24条)、逻辑运算类指令(25条)、控制转移类指令(17条)和布尔 操作(位)类指令(17条)。
BCD码采用4位二进制数编码,并且只采用了其中10个编码,即 0000~1001,分别代表BCD码0~9,而1010~1111为无效码。当两个BCD码 相加结果大于9时,说明已进入无效编码区;当两个BCD码相加结果有进 位时,说明已跳过无效编码区。若结果进入或跳过无效编码区,则结果 是错误的,相加结果均比正确结果小6(差6个无效编码)。
指令的表示方法称之为“指令格式”,其内容包括指令的长度和指令内部信息的安排等。 在80C51系列的指令系统中,有单字节、双字节和三字节等不同长度的指令。
单字节指令:指令只有一个字节,操作码和操作数同在一个字节中。 双字节指令:包括两个字节,其中一个字节为操作码,另一个字节是操作数。 三字节指令:操作码占一个字节,操作数占两个字节。其中操作数既可能是数据,也可能 是地址。
例如:
INC R7
;R7的内容为操作数,加1后再送回R7
(4)寄存器间接寻址。在指令中给出的寄存器内容是操作数的地址,从该地址中取出的才
是操作数。可以看出,在寄存器寻址方式中,寄存器中存放的是操作数;而在寄存器间接寻址
方式中,寄存器中存放的则是操作数的地址。
寄存器间接寻址须以寄存器符号名称的形式表示,为了区别寄存器寻址和寄存器间接寻
寄存器间接寻址须以寄存器符号名称的形式表示为了区别寄存器寻址和寄存器间接寻址在寄存器间接寻址中应在寄存器的名称前面加前缀
单片机第4章8051单片机指令系统
单片机第4章8051单片机指令系统在单片机的世界里,指令系统就如同指挥官手中的指令手册,指引着单片机完成各种复杂的任务。
8051 单片机的指令系统更是其中的重要组成部分,它为我们提供了丰富多样的指令,让我们能够灵活地控制单片机的运行。
8051 单片机的指令系统可以分为五大类,分别是数据传送指令、算术运算指令、逻辑运算指令、控制转移指令和位操作指令。
数据传送指令是指令系统中的基础,就像是在战场上调配物资一样。
它能够实现寄存器之间、寄存器与存储器之间、立即数与寄存器或存储器之间的数据传递。
比如 MOV 指令,它可以将一个数据从源地址传送到目的地址。
假设我们要将立即数 50H 传送到累加器 A 中,就可以使用指令“MOV A, 50H”。
这样,累加器 A 就存储了 50H 这个数值。
算术运算指令则像是在进行战斗中的兵力计算。
它包括加法、减法、乘法和除法等运算。
ADD 指令用于加法运算,SUBB 指令用于带借位的减法运算。
例如,我们要将累加器 A 中的值与寄存器 B 中的值相加,并将结果存放在累加器 A 中,就可以使用指令“ADD A, B”。
如果要进行带借位的减法运算,比如从累加器 A 中减去寄存器 B 中的值以及借位标志位 CY 的值,可以使用指令“SUBB A, B”。
逻辑运算指令就像是在制定战略时的思考逻辑。
AND 指令用于逻辑与操作,ORL 指令用于逻辑或操作,XRL 指令用于逻辑异或操作。
以 AND 指令为例,如果我们要将累加器 A 中的值与立即数 80H 进行逻辑与操作,并将结果存放在累加器 A 中,就可以使用指令“AND A, 80H”。
控制转移指令则是指挥战斗中的战略部署调整。
它可以改变程序的执行顺序,使单片机能够根据不同的条件执行不同的程序段。
比如 JZ 指令,如果累加器 A 的值为 0,则程序跳转到指定的地址;JC 指令,如果进位标志位 CY 为 1,则程序跳转到指定的地址。
位操作指令则专注于对单个位的操作,就像是在精细地调整战斗中的某个关键环节。
03.9 第三章 - 单片机指令系统(位操作指令MOV、SETB、CLR、CPL、ANL、ORL)
;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。
单片机原理与应用(陈桂友)第4章_指令系统
单片机原理及应用
4.3
寻址方式
8/79
操作数是指令的重要组成部分,它指定了参与运算的数或数所在 单元地址,而如何得到这个地址就称为寻址方式。一般来说,寻址方 式越多,计算机功能越强,灵活性越大。所以寻址方式对机器的性能 有重大影响。8051单片机共有7种寻址方式,描述如下:
1.立即寻址
指令中的源操作数是立即数,叫做立即寻址。立即数的类型可以 是:二进制(B)、十进制、十六进制(H)、整数、序数或者字符。立即 数的字长可以是8位或16位。 例如: MOV A,#61H 这条指令是把61H这个数据送入到累加器A中。 例如: MOV DPTR,#2050H 这条指令是把2050H这个数据送入到数据指针DPTR中。
程序存储器 PC 11100101 操作码 60H 01100000 直接地址
RAM 89H 89H ACC 0E0H
4:59:21
版权所有。
单片机原理及应用
10/79
3.寄存器寻址
指定某一可寻址的寄存器的内容为操作数,对寄存器ACC,B, DPTR和CY(进位标志,也是布尔处理机的累加器),其寻址时具体的 寄存器已隐含在其操作码中。而对选定的8个工作寄存器R7~R0,则用 指令操作码的低3位指明所用的寄存器。在应用中,可以先通过PSW中 的RS1、RS0两位来选择寄存器组,再用操作码中低3位来确定是组内哪 一个寄存器,达到寻址的目的。 例如:INC R5 ;把寄存器R3的内容加1后再送回R5
8位带符号偏移量。 当前工作区(0~3区)的工作寄存器(n=0,1,„,7) 可作地址寄存器的工作寄存器R0和R1(i=0,1) X寄存器内容 由X寄存器寻址的存储单元的内容 表示数据的传送方向 表示位操作数取反 表示逻辑与操作 表示逻辑或操作 表示逻辑异或操作
单片机指令系统
指令系统的实现方式
硬核实现
将指令系统直接集成在单片机芯片中,这种方式具有 高可靠性和高性能。
软核实现
通过软件编程实现指令系统,这种方式具有灵活性高 、可定制性强等优点。
混合实现
结合硬核和软核两种方式,以获得更好的性能和灵活 性。
指令系统的实现过程
指令集设计
根据单片机的应用需求和性能要求, 设计指令集,包括指令的格式、功能 、寻址方式等。
单片机指令系统
汇报人:
202X-12-24
CATALOGUE
目 录
• 单片机指令系统概述 • 单片机指令系统详解 • 单片机指令系统的应用 • 单片机指令系统的实现 • 单片机指令系统的未来发展
CATALOGUE
单片机指令系统概述
指令系统的定义
• 指令系统的定义:指令系统是指单片机中所有可 能的指令的集合,这些指令用于控制单片机的操 作和运算。
指令系统的功能
指令执行
指令系统通过执行各种指令来实 现单片机的操作和控制,包括算 术运算、逻辑运算、数据传输等 。
程序控制
指令系统通过程序控制实现单片 机的流程控制,如条件判断、循 环、跳转等。
系统资源管理
指令系统负责管理单片机的系统 资源,如内存、寄存器、IO端口 等,确保资源的使用和分配合理 高效。
采用先进的制程技术和低功耗设计,降低单片 机的功耗,延长设备的使用时间。
智能化
集成人工智能算法和数据处理功能,使单片机具备更强的智能化处理能力。
未来指令系统的发展方向
异构指令集融合
将不同架构的指令集进行融合,以实现更广 泛的应用覆盖和性能优化。
边缘计算支持
加强单片机在边缘计算领域的应用,满足物 联网和智能设备的实时数据处理需求。
第3章单片机指令系统
寄存器寻址 寻址方式 寄存器间接寻址
基址加变址寄存器间接寻址 相对寻址 位寻址
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个可用的位地址空间
单片机指令系统
② 外部传送指令
指令格式: 指令格式:
目的操作数和源操作数 中必须有一个是A 实现片外数据存储器和A累加器之间的数据传送。 实现片外数据存储器和A累加器之间的数据传送。
MOVX 目的操作数,源操作数 目的操作数,
例:位地址的表示方法(4种) 40H 位地址的表示方法( MOV C,40H ;
28H 设指令执行前 C = 1,位地址 ,C 40H 存储器单元如图, 执行指令后, C 40H 存储器单元如图 , 执行指令后 ,–MOV EA29H = 0 ?
–MOV 20H ,C 位编语言: 汇编语言: A, MOV A,R0 R6, MOV R6,#32H 40H, MOV 40H,#100H
11101000 机器语言: 机器语言: E8H 7E 32H 75 40 64H 01111110 00110010 01110101 01000000 01100100
例:顺序执行下列指令序列,求每一步执行结果。 顺序执行下列指令序列,求每一步执行结果。 ;A= 30H A, MOV A,#30H ;(4FH)= 30H 4FH, MOV 4FH,A R0, MOV R0,#20H ;R0= 20H @R0, MOV @R0,4FH ;(20H)= 30H 21H, MOV 21H,20H ;(21H)= 30H 例:用两种寻址方式实现,将片内RAM 60H单元的数据 用两种寻址方式实现,将片内RAM 60H单元的数据 传送给累加器A 传送给累加器A。 解: MOV A,60H MOV R0,#60H R0, A, MOV A,@R0
注意:数值前加#符号表 注意:数值前加# 示该数是立即数
● 变址寻址方式是单片机中用于访问程序存储器的 变址寻址方式是单片机中用于访问程序存储器 程序存储器的 寻址方式。 寻址方式。 数据在程序存储器 程序存储器中 ● 数据在程序存储器中,指令给出的寄存器中为数 据的基地址和偏移地址。( 据的基地址和偏移地址。(数据地址 = 基地址 + 偏移地
第3章 MCS-51指令系统
16
MCS-51单片机指令系统
MCS-51单片机指令系统包括111条指令 按功能可以划分为以下5类:
1. 数据传送和交换指令(29条)
2. 算术运算指令(24条) 3. 逻辑运算指令(24条) 4. 控制转移指令(17条) 5. 位操作指令(17条)
17
数据传送和交换类指令主要有以下几种:
1. 2. 3.
30H
Eg:MOV 30H,#33H 33H
30H
XX 30H
33H
30H
31H
Eg:MOV 30H,31H
55H
XX
55H
25
A
30H XX
地址
30H 33H
Eg:MOV 30H, A
33H
R0
Eg:MOV 30H,@R0
55H
取出
30H 78H 30H
55H
R3
78H
30H XX
55H
MOV A , 30H
XX 55H
30H
A
6
3、寄存器寻址
寄存器寻址是指将操作数存放于寄存器中,寄存器包括工作寄 存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR等。 数据存放在R0~R7中的某个通用寄存器内,或者放在某个专用 寄存器中。 e.g.: MOV A,R7 ADD A,R0
DPTR
2000H
DPTR 2000H
XXXX
Eg:将数据指针DPTR指向存于ROM中的表格首地址。
MOV DPTR,#TABLE
27
三、片外数据传递指令
使用DPTR和Ri进行间接寻址 MOVX A, @DPTR ;A ←((DPTR))片外 MOVX A,@Ri ;A ←((Ri))片外 MOVX @DPTR,A ;(DPTR)片外←(A) MOVX @Ri,A ;(Ri)片外←(A) 注意: 该指令用于在单片机和外部RAM、扩展I/O的数据传送; 使用Ri时,只能访问低8位地址为00H~FFH地址段; 使用DPTR时,能访问0000H ~ FFFFH地址段。
第3章MCS-51单片机指令系统
第3章MCS-51单片机指令系统3.1概述3.1.1指令格式3.1.2指令的三种表示形式3.1.3指令的字节数1. 单字节指令(49条)图3-1 MOVA,Rn指令的格式2单片机原理及其接口技术(第2版)2. 双字节指令(46条)3. 三字节指令(16条)3.1.4指令的分类1. 数据传送指令(28条)2. 算术运算指令(24条)3. 逻辑操作和环移指令(25条)4. 控制转移指令(17条)5. 位操作指令(17条)3.1.5指令系统综述1. 指令系统中所用符号的说明2. 指令对标志位的影响3.2寻址方式3.2.1寄存器寻址图3-2寄存器寻址示意图单片机原理及其接口技术(第2版) 3 3.2.2直接寻址图3-3直接寻址示意图3.2.3立即寻址3.2.4寄存器间址图3-4寄存器间址寻址示意图3.2.5变址寻址图3-5变址寻址示意图4单片机原理及其接口技术(第2版)3.2.6相对寻址图3-6相对寻址示意图3.2.7位寻址3.3数据传送指令3.3.1内部数据传送指令(15条)1. 立即寻址型传送指令2. 直接寻址型传送指令3. 寄存器寻址型传送指令4. 寄存器间址型传送指令5. 内部数据传送指令的使用图3-7 8×C552/8051指令的数据传送方式单片机原理及其接口技术(第2版) 5 3.3.2外部数据传送指令(7条)1. 16位数传送指令2. 外部ROM的字节传送指令图3-8 0~9平方值表3. 外部RAM的字节传送指令3.3.3堆栈操作指令(2条)图3-9例3.8的堆栈变化示意图6单片机原理及其接口技术(第2版)3.3.4数据交换指令(4条)3.4算术与逻辑运算和移位指令3.4.1算术运算指令(24条)1. 加法指令2. 减法指令3. 十进制调整指令4. 乘法和除法指令3.4.2逻辑运算指令(20条)1. 逻辑与运算指令2. 逻辑或指令3. 逻辑异或指令4. 累加器清零和取反指令3.4.3移位指令(5条)单片机原理及其接口技术(第2版)7图3-10例3.26附图3.5控制转移和位操作指令3.5.1控制转移指令(17条)1. 无条件转移指令图3-11 AJMP指令转移范围8单片机原理及其接口技术(第2版)图3-12例3.29附图图3-13带符号数的比较方法3. 子程序调用和返回指令图3-14二级子程序嵌套及断点地址存放单片机原理及其接口技术(第2版)9图3-15例3.33附图10单片机原理及其接口技术(第2版)4. 空操作指令3.5.2位操作指令(17条)1. 位传送指令2. 位置位和位清零指令3. 位运算指令4. 位控制转移指令习题与思考题3.1指令通常有哪三种表示形式?各有什么特点?3. 2 MCS-51指令按功能可以分为哪几类?每类指令的作用是什么?3. 3 MCS-51共有哪七种寻址方式?各有什么特点?3. 4指出下列每条指令源操作数的寻址方式和功能。
第三章MCS-51指令系统
3.1 概述
3.2
3.3
寻址方式
MCS-51的指令系统
3.4
伪指令
3.1
概述
指令:使计算机完成某种操作的命令。 指令系统 :计算机能够执行的全部操作所对应的指 令集合。 机器语言: 采用二进制编码表示指令,是计算机能够直 接识别和执行的语言。 汇编语言: 采用助记符 、符号、数字来表示指令的程序 语言,它与机器语言指令时一一对应的。
如果我们分别向DPH,DPL送数,则结果也一样。
如下面两条指令: 则就相当于执行了 MOV DPH,#35H MOV DPTR,#3512H。 MOV DPL,#12H。
(6) 累加器A与片外RAM之间的数据传递类指令(4条)
MOVX A,@Ri MOVX @Ri,A MOVX A,@DPTR MOVX @DPTR,A 说明: 1.在51中,与外部存储器RAM打交道的只可以是A累加器。所 有需要送入外部RAM的数据必需要通过A送去,而所有要读入的外 部RAM中的数据也必需通过A读入。 在此我们可以看出内外部RAM的区别了,内部RAM间可以直接 进行数据的传递,而外部则不行。 比如,要将外部RAM中某一单元(设为0100H单元的数据)送 入另一个单元(设为0200H单元),也必须先将0100H单元中的内 容读入A,然后再送到0200H单元中去。
MOV B,R0
PUSH ACC
;R0→B,R0为寄存器寻 址,B为直接寻址。
;A的内容压入堆栈
3.2.4
寄存器间接寻址
例:MOV A, @R0
• 以寄存器中内容为地址,以该地址中内容为操作数的
寻址方式。间接寻址的存储器空间包括内部RAM和
外部RAM。 • 能用于寄存器间接寻址的寄存器有R0,R1,DPTR, SP。其中R0、R1必须是工作寄存器组中的寄存器。 SP仅用于堆栈操作。
单片机原理及接口技术第三章指令系统
AVR指令集
以简洁、高效著称,具有丰富的算术和逻辑操作指令。
PIC指令集
采用精简指令集(RISC)结构,以高速、低功耗为特 点。
汇编语言基础
汇编语言概念
用助记符代替机器语言中的二进制代码,更易于理解和记忆 。
汇编语言与机器语言关系
汇编语言是机器语言的符号化表示,与机器语言一一对应。
06
指令系统应用与扩展
指令系统在嵌入式系统中的应用
控制程序流程
通过条件判断、循环、跳转等指令,实现程序流 程的控制。
数据处理
对数据进行算术运算、逻辑运算、移位等操作, 满足各种数据处理需求。
系统资源管理
通过指令系统对嵌入式系统的资源进行统一管理 和调度,如内存分配、中断处理等。
自定义指令实现特定功能
提高代码效率
针对特定应用场景,设计专用指令,可以显 著提高代码执行效率。
实现特殊功能
通过自定义指令,可以实现一些标准指令集 无法完成的特殊功能。
优化算法性能
针对某些特定算法,设计专用指令进行优化, 提高算法执行效率。
指令系统扩展方法
指令集扩展
在原有指令集基础上增加新的指令,以支持 更多功能或提高性能。
寻址方式
8051单片机提供七种寻址方式,包括寄存器寻址、直接寻址、寄存器间接寻址 、立即寻址、位寻址、相对寻址和变址寻址,使得编程更加灵活高效。
指令执行时间
8051单片机的指令执行时间通常为1-4个机器周期,部分复杂 指令可能需要更多时间,但总体来说,其执行速度较快。
PIC单片机指令系统简介
精简指令集
高级语言支持
AVR单片机指令系统针对高级语言进行优化,使得使用C语言等高 级语言编程时能够生成高效的代码。
(完整版)单片机指令大全
一个单片机所需执行指令的集合即为单片机的指令系统。
单片机使用的机器语言、汇编语言及高级语言,但不管使用是何种语言,最终还是要“翻译”成为机器码,单片机才能执行之。
现在有很多半导体厂商都推出了自己的单片机,单片机种类繁多,品种数不胜数,值得注意的是不同的单片机它们的指令系统不一定相同,或不完全相同。
但不管是使用机器语言、汇编语言还是高级语言都是使用指令编写程序的。
所谓机器语言即指令的二进制编码,而汇编语言则是指令的表示符号。
在指令的表达式上也不会直接使用二进制机器码,最常用的是十六进制的形式。
但单片机并不能直接执行汇编语言和高级语言,都必须通过汇编器“翻译”成为二进制机器码方能执行,但如果直接使用二进制来编写程序,那将十分不便,也很难记忆和识别,不易编写、难于辨读,极易出错,同时出错了也相当难查找。
所以现在基本上都不会直接使用机器语言来编写单片机的程序。
最好的办法就是使用易于阅读和辨认的指令符号来代替机器码,我们常称这些符号为助记符,用助记符的形式表示的单片机指令就是汇编语言,为便于记忆和阅读,助记符号通常都使用易于理解的英文单词和拼音字母来表示。
每种单片机都有自己独特的指令系统,那么指令系统是开发和生产厂商定义的,如要使用其单片机,用户就必须理解和遵循这些指令标准,要掌握某种(类)单片机,指令系统的学习是必须的。
MCS-51共有111条指令,可分为5类:[1].数据传送类指令(共29条)[2].算数运算类指令(共24条)[3].逻辑运算及移位类指令(共24条)[4].控制转移类指令(共17条)[5].布尔变量操作类指令(共17条)一些特殊符号的意义在介绍指令系统前,我们先了解一些特殊符号的意义,这对今后程序的编写都是相当有用的。
Rn——当前选中的寄存器区的8个工作寄存器R0—R7(n=0-7)。
Ri——当前选中的寄存器区中可作为地址寄存器的两个寄存器R0和R1(i=0,1)direct—内部数据存储单元的8位地址。
高职高专单片机原理及应用33指令系统.ppt
6.
MOVC A, @A+PC
MOVC A, @A+DPTR
这是两条很有用的查表指令, 可用来查找存放在外部程序 存储器中的常数表格。第一条指令是以PC作为基址寄存器, A 的内容作为无符号数和 PC的内容 ( 下一条指令的起始地址) 相加后得到一个 16 位的地址, 并将该地址指出的程序存储器单 元的内容送到累加器A。 这条指令的优点是不改变特殊功能寄 存器和PC的状态, 只要根据A的内容就可以取出表格中的常数。 缺点是表格只能放在该条查表指令后面的 256 个单元之中, 表 格的大小受到限制, 而且表格只能被一段程序所利用。
(四)、 XRL A, Rn XRL A, direct XRL A, @Ri XRL A, #data XRL direct, A XRL direct, #data 这组指令的功能是: 将两个操作数的内容按位进行逻辑 异或操作, 并将结果送回到目的操作数的单元中。
四、
控制转移指令共有 17 条, 不包括按布尔变量控制程序转 移指令(见表 3.5)。其中有 64 KB范围内的长调用、 长转移 指令; 有 2 KB范围内的绝对调用和绝对转移指令; 有全空间的 长相对转移及一页范围内的短相对转移指令; 还有多种条件转 移指令。由于MCS -51 提供了较丰富的控制转移指令, 因此在 编程上相当灵活方便。这类指令用到的助记符共有 10 种: AJMP、LJMP、SJMP、JMP、ACALL、LCALL、JZ、JNZ、 CJNE、DJNZ。
例如: 进入中断服务子程序时, 把程序状态寄存器PSW、 累加器A、 数据指针DPTR进栈保护。设当前SP为 60H。则
PUSH PSW PUSH ACC PUSH DPL PUSH DPH 执行后, SP内容修改为 64H, 而61H、62H、63H、64H单元中 依次栈入PSW、A、DPL、DPH的内容。当中断服务程序结 束之前, 如下程序段(SP保持 64H不变)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机的指令系统一、数据传送指令数据传送指令主要负责把数据、地址或马上数传送到寄存器或存储单元中。
这类指令共有29条,可分为以下3大类:基本数据传送指令,数据交换指令,栈操作指令。
执行数据传送指令时,除以累加器A为目的操作数的指令会对奇偶标志位P有影响外,其余指令执行时均不会影响任何标志位。
1.基本数据传送指令依据数据取自何方和传到何方,MOV指令有着很多不同的形式。
(1)以累加器A为目的操作数类指令这组指令的作用是把源操作数指向的内容送到累加器A。
有马上数、直接、寄存器和寄存器间接寻址方式:MOVA,#data ;data→(A)MOVA,direct ;(direct)→(A)MOVA,Ri ;(Ri)→(A)MOVA,@Rj ;((Rj))→(A)(2)以寄存器Ri为目的操作数的指令这组指令的功能是把源操作数指定的内容送到所选定的工作寄存器Ri中。
有马上、直接和寄存器寻址方式:(3)以直接地址为目的操作数的指令这组指令的功能是把源操作数指定的内容送到由直接地址direct所选定的片内RAM中。
有马上、直接、寄存器和寄存器间接4种寻址方式:(4)以间接地址为目的操作数的指令这组指令的功能是把源操作数指定的内容送到以Rj中的内容为地址的片内RAM中。
有马上、直接和寄存器3种寻址方式(5)查表指令这组指令的功能是对存放于程序存储器中的数据表格进行查找传送,使用变址寻址方式:MOVCA,@A+DPTR ;((A)+(DPTR))→(A)MOVCA,@A+PC ;((PC))+1→(PC),((A)+(PC))→(A)(6)累加器A与片外数据存储器RAM传送指令这组指令的作用是累加器A与片外RAM间的数据传送。
使用寄存器寻址方式:MO@DPTR,A ;(A)→((DPTR))MOA,@DPTR ;((DPTR))→(A)MOA,@Rj ;((Rj))→(A)MO@Rj,A ;(A)→((Rj))(7)16位数据传送指令这条指令的功能是把16位常数送入数据指针寄存器。
MOVDPTR,#data16 ;dataH→(DPH),dataL→(DPL)2.交换指令MOV指令主要完成从一处到另一处的拷贝,XCH指令则可实现数据的双向传送。
全部的操作都涉及到累加器A,可以把把累加器A中的内容与源操作数所指的数据相互交换。
XCHA,direct ;(A)←→(direct)XCHA,Ri ;(A)←→(Ri)XCHA,@Rj ;(A)←→((Rj))XCHDA,@Rj ;(A3-0)←→((Rj)3-0)SWAPA ;(A3-0)←→(A7-4)3.入栈/出栈指令这类指令的作用是把直接寻址单元的内容传送到堆栈指针SP所指的单元中,以及把SP所指单元的内容送到直接寻址单元中。
⑴PUSH指令堆栈的入栈指令,该指令可以把某片内RAM单元(低128字节)或某专用寄存器的内容入栈。
PUSHdirect ;(SP)+1→(SP),(direct)→(SP)⑴POP指令堆栈的出栈指令,该指令用于恢复某片内RAM单元(低128字节)或某专用寄存器的内容。
POPdirect ;(SP)→(direct),(SP)-1→(SP)二、算术运算指令在51系列单片机的指令系统中,供应了完备的加、减、乘、除算术运算指令及增量(加1)、减量(减1)运算,可处理不带符号或带符号的8/16二进制数。
除加1和减1指令外,算术运算指令会影响进位、半进位和溢出位三个标志位。
1.不带进位的加法指令这组指令的作用是把马上数,直接地址、工作寄存器及间接地址内容与累加器A的内容相加,运算结果存在A中。
ADDA,#data ;(A)+data→(A)ADDA,direct ;(A)+(direct)→(A)ADDA,Ri ;(A)+(Ri)→(A)ADDA,@Rj ;(A)+((Rj))→(A)本组指令的执行将影响标志位AC、CY、OV、P。
当和的第3、7位有进位时,分别将AC,CY标志位置位;否则复位。
对于无符号数,进位标志位CY=1,表示溢出;CY=0表示无溢出。
带符号数运算的溢出取决于第6、7位,若这2位中有一位产生进位,而另一位不产生进位,则溢出标志位OV置位,否则被复位。
2.带进位加法指令这组指令的作用是把马上数,直接地址、工作寄存器及间接地址内容与累加器A的内容以及进位位C相加,运算结果存在A中。
本组指令执行对标志位AC、CY、OV、P的影响与ADD指令相同。
3.增量指令这组指令的的功能均为原寄存器的内容加1,结果送回原寄存器。
这组指令共有直接、寄存器、寄存器间接寻址等寻址方式:INCA ;(A)+1→(A)INCdirect ;(direct)+1→(direct)INCRi ;(Rn)+1→(Ri)INC@Rj ;((Rj))+1→((Rj))INCDPTR ;(DPTR)+1→(DPTR)增量指令不会对任何标志有影响。
4.带借位减法指令这组指令包含马上数、直接地址、间接地址及工作寄存器与累加器A连同借位位C内容相减,结果送回累加器A中。
SUBBA,#data ;(A)-data-(C)→(A)SUBBA,direct ;(A)-(direct)-(C)→(A)SUBBA,Ri ;(A)-(Ri)-(C)→(A)SUBBA,@Rj ;(A)-((Rj))-(C)→(A)本指令执行将影响标志位AC、CY、OV、P。
若第七位有借位,则将CY置位,否则CY复位。
若第3位有错位,则置位帮助进位标志AC,否则AC复位。
若第7和第6位中有一位需借位,而另一位不借位,则置位溢出标志OV。
当在进行单字节或多字节减法前,不知道进位标志位CY的值,则应在减法指令前先将CY复位清“0”。
5.减量指令这组指令的作用是把所指的寄存器内容减1,结果送回原寄存器,这组指令共有直接、寄存器、寄存器间接寻址等寻址方式:DECA ;(A)-1→(A)DECdirect ;(direct)-1→(direct)DECRi ;(Ri)-1→(Ri)DEC@Rj ;((Rj))-1→((Rj))运算结果不影响任何标志位。
6.乘法指令这条指令的作用是把累加器A和寄存器B中的8位无符号数相乘,所得到的是16位乘积,这个结果低8位存在累加器A,而高8位存在寄存器B中。
MULAB ;(A)×(B)→(B)和(A)乘法指令需要4个机器周期。
假如乘积大于255(0FFH),即B的内容不为0时,则置位溢出标志位OV,否则OV复位。
进位标志位CY总是复位为0。
7.除法指令这条指令的作用是把累加器A的8位无符号整数除以寄存器B中的8位无符号整数,所得到的商存在累加器A,而余数存在寄存器B中。
DIVAB;(A)÷(B)→(A)和(B)除法指令需要4个机器周期。
本指令总是将CY和OV标志位复位。
当除数(B中内容)为00H 时,那么执行结果将为不定值,则置位溢出标志位OV。
8.十进制调整指令在进行BCD码运算时,这条指令总是跟在ADD或ADDC指令之后,其功能是将执行加法运算后存于累加器A中的结果进行调整和修正。
DAA三、规律运算指令在51系列单片机的指令系统中供应的规律运算指令主要包括ANL(与),ORL(或),XRL(异或)等指令。
1.规律与指令ANL这组指令的功能是在指出的变量之间以位为基础的规律与操作。
操作数有寄存器寻址、直接寻址、寄存器间接寻址和马上寻址等寻址方式:ANLA,#data;(A)⑴data→(A)ANLA,direct ;(A)⑴(direct)→(A)ANLA,Ri ;(A)⑴(Ri)→(A)ANLA,@Rj ;(A)⑴((Rj))→(A)ANLdirect,#data ;(direct)⑴data→(direct)ANLdirect,A ;(direct)⑴(A)→(A)2.规律或指令ORL这组指令的功能是在所指出的变量之间执行以位为基础的规律或操作,结果存到目的变量中去。
操作数有马上寻址、直接寻址、寄存器寻址和寄存器间接寻址方式:3.规律异或指令XRL这组指令的功能是在所指出的变量之间执行以位为基础的规律异或操作,结果存放到目的变量中去。
操作数有马上寻址、直接寻址、寄存器寻址和寄存器间接寻址方式:4.循环移位指令这4条指令的作用是将累加器中的内容循环左或右移一位,后两条指令是连同进位位CY一起移位。
RLA ;累加器A中的内容左移一位。
RRA ;累加器A中的内容右移一位。
RLCA ;累加器A中的内容连同进位位CY左移一位。
RRCA ;累加器A中的内容连同进位位CY右移一位。
5.求反指令这条指令将累加器中的内容按位取反。
CPLA ;累加器中的内容按位取反。
6.清零指令这条指令将累加器中的内容清0。
CLRA ;0→(A),累加器中的内容清0。
四、位操作类指令MCS-51单片机内部有一个布尔处理机,对位地址空间具有丰富的位操作指令。
1.位传送指令这2条指令的功能是把由源操作数指出的布尔变量送到目的操作数指定的位中去。
其中一个操作数必需为进位标志,另一个可以是任何直接寻址位。
MOVC,bit ;bit→CY,某位数据送CY。
MOVbit,C ;CY→bit,CY数据送某位。
本组指令不影响其他寄存器和标志位。
2.位变量修改指令这些指令对CY及可寻址位进行置位或复位操作CLRC ;0→CY,复位CY。
CLRbit ;0→bit,复位某一位。
SETBC ;1→CY,置位CY。
SETBbit ;1→bit,置位某一位。
本组指令不影响其他标志。
3.位变量规律指令位运算都是规律运算,有与、或、非三种指令ANLC,bit ;(CY)⑴(bit)→CYANLC,/bit;(CY)⑴()→CYORLC,bit ;(CY)⑴(bit)→CYORLC,/bit ;(CY)⑴()→CYCPLC ;()→CYCPLbit ;()→bit4.位变量条件转移指令位变量条件转移指令是以位的状态作为实现程序转移的推断条件:JCrel ;(CY)=1转移,(PC)+2+rel→PC,否则程序往下执行,(PC)+2→PC。
JNCrel ;(CY)=0转移,(PC)+2+rel→PC,否则程序往下执行,(PC)+2→PC。
JBbit,rel ;位状态为1转移。
JNBbit,rel;位状态为0转移。
JBCbit,rel ;位状态为1转移,并使该位清“0”。
五、掌握转移指令一般状况下指令是挨次执行的逐条执行的,但实际上程序不行能全部挨次执行而常常需要转变程序的执行流程,常用的掌握转移指令有:1.无条件转移指令这组指令执行完后,程序就会无条件转移到指令所指向的地址上去。
长转移指令访问的程序存储器空间为16地址64kB,肯定转移指令访问的程序存储器空间为11位地址2kB空间。