最新单片机原理及应用C语言版3PPT课件.ppt
《最新单片机原理及应用C语言版3PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新单片机原理及应用C语言版3PPT课件.ppt(151页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3章章 MCS-51指令系统指令系统及汇编程序设计及汇编程序设计目目 录录3.1 汇编语言概述汇编语言概述 3.2 MCS-51单片机寻址方式单片机寻址方式3.3 MCS-51单片机指令系统单片机指令系统3.4 MCS-51单片机伪指令单片机伪指令3.5 汇编语言程序设计举例汇编语言程序设计举例3.1.3 汇编语言指令格式汇编语言指令格式一、一、MCS-51汇编语言指令格式汇编语言指令格式由四部分组成由四部分组成,其一般格式如下:,其一般格式如下:标号:标号: 操作码操作码 操作数操作数 ;注释;注释方括号中的内容可以没有,即可以没有方括号中的内容可以没有,即可以没有标号、操作数和注释,至
2、少要有操作码。其标号、操作数和注释,至少要有操作码。其操作数部分最多可以是三项:操作数部分最多可以是三项:第第1操作数操作数 , 第第2操作数操作数 , 第第3操作数操作数对对MOV指令,有两项,第指令,有两项,第1操作数常称操作数常称为为目的操作数目的操作数,第,第2操作数称为操作数称为源操作数源操作数。3.1.3 汇编语言指令格式汇编语言指令格式例如:例如:START:MOVA,#23H;23H A“START”为标号为标号“MOV”为操作码为操作码“ A,#23H”为操作数为操作数“23H A”为注释为注释 3.1.3 汇编语言指令格式汇编语言指令格式二、二、MCS-51汇编指令构成汇编
3、指令构成1、单字节指令、单字节指令指令中既包含有操作码,也包含有操作指令中既包含有操作码,也包含有操作数,有两种情况。数,有两种情况。1)指令码中隐含着对某个寄存器的操作)指令码中隐含着对某个寄存器的操作如:如:“INC A”、“MUL AB”、“RL A”、“CLR C”、“INC DPTR”等指令。等指令。2)由指令码中的)由指令码中的r r r或或i指定操作数指定操作数 3.1.3 汇编语言指令格式汇编语言指令格式这种情况是指令中使用了这种情况是指令中使用了Rn或或Ri如如“MOVRn,A”编码格式为:编码格式为:1 1 1 1 1 r r rrrr的取值为:的取值为:07,表示,表示R
4、0R7又如又如“MOV A,Ri”编码格式为:编码格式为:1 1 1 0 0 1 1 ii取值为:取值为:0、1,表示,表示R0、R13.1.3 汇编语言指令格式汇编语言指令格式2、双字节指令、双字节指令一个字节表示操作码,另一个字节表示一个字节表示操作码,另一个字节表示操作数或操作数的地址。操作数或操作数的地址。3、三字节指令、三字节指令一个字节表示操作码,另两个字节表示一个字节表示操作码,另两个字节表示操作数或操作数的地址。操作数或操作数的地址。3.2 MCS-51单片机寻址方式单片机寻址方式 主要内容主要内容3.2.1 立即数寻址立即数寻址3.2.2 寄存器寻址寄存器寻址3.2.3 直接
5、寻址直接寻址3.2.4 寄存器间接寻址寄存器间接寻址3.2.5 变址寻址变址寻址3.2.6 位寻址位寻址3.2.7 指令寻址指令寻址3.2.8 寻址空间及指令中的符号寻址空间及指令中的符号 寻址方式:寻址方式:就是指就是指CPU寻找参与运算的寻找参与运算的操作数的方式,或者寻找数据保存位置的操作数的方式,或者寻找数据保存位置的方式方式。7种寻址方式:种寻址方式:立即数寻址、寄存器寻立即数寻址、寄存器寻址、直接寻址、寄存器间接寻址、变址寻址、直接寻址、寄存器间接寻址、变址寻址、位寻址和指令寻址。址、位寻址和指令寻址。寻址方式分两类:寻址方式分两类:操作数寻址和指令寻操作数寻址和指令寻址址,在,在
6、7种寻址方式中,除了指令寻址之外,种寻址方式中,除了指令寻址之外,其余其余6种都属于操作数寻址。种都属于操作数寻址。 寻址方式是汇编语言程序设计中最基本寻址方式是汇编语言程序设计中最基本的内容之一,必须要十分熟悉。的内容之一,必须要十分熟悉。3.2 MCS-51单片机寻址方式单片机寻址方式 3.2.1 立即数寻址立即数寻址立即数寻址也叫立即寻址、常数寻址立即数寻址也叫立即寻址、常数寻址。其操作数就在指令中,是指令的一部分其操作数就在指令中,是指令的一部分,紧,紧跟在操作码后面,用跟在操作码后面,用“#”符号作前缀,以区符号作前缀,以区别地址。例如:别地址。例如:MOV A,#2CH;2CH A
7、 MOV A,2CH;(;(2CH) A前者表示把前者表示把2CH这个数送给累加器这个数送给累加器A,后,后者表示把片内者表示把片内RAM中地址为中地址为2CH单元的内单元的内容送给累加器容送给累加器A。 3.2.1 立即数寻址立即数寻址立即数也可以是立即数也可以是16位的位的,如:,如:MOVDPTR,#1234HMOVTL2,#2345HMOVRCAP2L,#3456H对于第对于第2条指令,立即数的低条指令,立即数的低8位送给了位送给了TL2,高,高8位送给了位送给了TH2;对于第;对于第3条指令,条指令,立即数的低立即数的低8位送给了位送给了RCAP2L,高,高8位送给位送给了了RCAP
8、2H。 3.2.2 寄存器寻址寄存器寻址寄存器寻址:寄存器寻址:就是由指令指出寄存器组就是由指令指出寄存器组R0R7中某一个或寄存器中某一个或寄存器A、B、DPTR和和C(位处理器的累加器)的内容作为操作数(位处理器的累加器)的内容作为操作数。例如:例如:MOVA,R7;(;(R7) AMOV36H,A;(;(A) 36HADDA,R0;(;(A)+(R0) A对于工作寄存器组的操作,必须要考虑对于工作寄存器组的操作,必须要考虑PSW中中RS1、RS0的值,确定当前使用的是的值,确定当前使用的是哪一组寄存器以及它们的实际地址。哪一组寄存器以及它们的实际地址。 3.2.2 寄存器寻址寄存器寻址图
9、图3-1 寄存器寻址方式(寄存器寻址方式(INC R3)程序存储器程序存储器片内片内RAM:+ +1PC00011011操作码操作码工作寄存器地址工作寄存器地址13H(R3)24H:00010r r r:PSWRS1 RS03.2.3 直接寻址直接寻址直接寻址:直接寻址:是指操作存放在片内是指操作存放在片内RAM中,中,指令中给出操作数的地址指令中给出操作数的地址。例如:。例如:MOVA,38H;(38H) A说明:说明: (1)直接寻址方式可以访问片内直接寻址方式可以访问片内RAM的低的低128字节和所有的特殊功能寄存器字节和所有的特殊功能寄存器。(2)直接寻址不能够访问片内直接寻址不能够访
10、问片内RAM的高的高128字节,高字节,高128字节只能够间接访问字节只能够间接访问。对于特殊功能寄存器,既可以使用地址,对于特殊功能寄存器,既可以使用地址,也可以使用也可以使用SFR名。例如:名。例如:MOVA,P1 或或 MOVA,90H 3.2.4 寄存器间接寻址寄存器间接寻址寄存器间接寻址:寄存器间接寻址:是指操作数存放在是指操作数存放在RAM中,指令中给出存放操作数地址的寄中,指令中给出存放操作数地址的寄存器,指令执行时,通过寄存器内的地址,存器,指令执行时,通过寄存器内的地址,间接地访问操作数间接地访问操作数。存放地址的寄存器称为间址寄存器存放地址的寄存器称为间址寄存器,在,在指令
11、中,在指令中,在寄存器前面加前缀寄存器前面加前缀“”表示表示。MCS-51单片机规定,单片机规定,使用使用Ri(i=0、1,即指即指R0、R1)、)、SP和和DPTR作间址寄存器作间址寄存器。寄存器间接寻址有以下几种情况。寄存器间接寻址有以下几种情况。 3.2.4 寄存器间接寻址寄存器间接寻址一、使用一、使用Ri间接访问片内间接访问片内RAM间接访问的范围:间接访问的范围:256字节字节(包括低(包括低128字节和高字节和高128字节),字节),但不包括特殊功能寄但不包括特殊功能寄存器存器。例如:。例如:MOVA,Ri;(Ri) AMOVRi,A;(A)(Ri)(Ri):表示:表示Ri指向的单
12、元,即单元的地址指向的单元,即单元的地址((Ri)):表示:表示Ri指向单元中的数据。指向单元中的数据。操作过程如图操作过程如图3-3所示。所示。3.2.4 寄存器间接寻址寄存器间接寻址对使用对使用SP间接访问片内间接访问片内RAM (在(在C语言语言中也可以访问片外中也可以访问片外RAM) ,仅用在堆栈操仅用在堆栈操作中作中,见后面指令系统。,见后面指令系统。 图图3-3 间接寻址间接寻址(MOV A,R0)示意图示意图 62HA:62H 98H 98HR0:片内片内RAM3.2.4 寄存器间接寻址寄存器间接寻址二、使用二、使用Ri间接访问片外间接访问片外RAM间接访问的范围:间接访问的范围
13、:片外片外RAM的的64KB全空全空间间。其指令只有两条:。其指令只有两条:MOVXA,Ri ;(P2) (Ri) AMOVXRi,A ;(A)(P2 Ri)注意:注意: (1)P2中的值作为高中的值作为高8位地址,位地址,Ri中的值作为低中的值作为低8位地址位地址; (2)如果如果P2不改变,则范围为不改变,则范围为256B;(3)这两条指令均为总线操作这两条指令均为总线操作,相应,相应总线信号有效(高低总线信号有效(高低8位地址、位地址、ALE、RD或或WR)。)。3.2.4 寄存器间接寻址寄存器间接寻址三、使用三、使用DPTR间接访问片外间接访问片外RAM间接访问的范围:间接访问的范围:
14、片外片外RAM的的64KB全空全空间间。其指令也是只有两条:。其指令也是只有两条:MOVXA,DPTR;(DPTR) AMOVXDPTR,A;(A)(DPTR)DPTR为为16位地址。位地址。 3.2.5 变址寻址变址寻址变址寻址:变址寻址:实为基址加变址的间接寻址实为基址加变址的间接寻址。指令中给出存放基址和变址的寄存器。指令中给出存放基址和变址的寄存器。基地址寄存器:基地址寄存器:DPTR或或PC;变址寄存器:变址寄存器:累加器累加器A。也在地址寄存器前面加上前缀也在地址寄存器前面加上前缀“”。例如:。例如:MOVCA,A+DPTR;(A)+(DPTR) A该指令的操作过程如图该指令的操作
15、过程如图3-4所示。所示。 3.2.5 变址寻址变址寻址ROM:DPTR 03E2H+ 0414H 38HA32H:A38H图图3-4 变址寻址示意图变址寻址示意图3.2.5 变址寻址变址寻址变址寻址的空间为程序存储器变址寻址的空间为程序存储器寻址范围:寻址范围:若若使用使用DPTR为基地址寄存器,寻为基地址寄存器,寻址范围址范围为为64KB;若若使用使用PC为基地址寄存器,寻址为基地址寄存器,寻址空间在空间在PC之后之后256字节范围内字节范围内。变址寻址主要用于查表操作变址寻址主要用于查表操作 3.2.6 位寻址位寻址位寻址:位寻址:是指操作数是二进制位是指操作数是二进制位、位地址位地址位
16、操作数地址范围:位操作数地址范围:片内片内RAM中中20H2FH,SFR中可以按位寻址的位中可以按位寻址的位。位地址在指令中用位地址在指令中用bit表示。例如:表示。例如:SETBbitMOVC,bit 3.2.6 位寻址位寻址位地址的位地址的4种表示方式:种表示方式:1)直接位地址)直接位地址(00HFFH)。如。如32H2)字节地址带位号)字节地址带位号。如。如20H.1,表示,表示20H单元的第单元的第1位。位。3)特殊功能寄存器名带位号)特殊功能寄存器名带位号。如。如P1.7,表示表示P1口的第口的第7位。位。4)位符号地址)位符号地址。具体的:。具体的:SFR位名位名;用用 “BIT
17、”定义的位符号(如定义的位符号(如“flag BIT 01H”)。如)。如TR0、flag,TR0表示定时器表示定时器/计数器计数器0的运行控制位,的运行控制位,flag表示表示01H位。位。 3.2.7 指令寻址指令寻址指令寻址:指令寻址:指令中的操作数给出转移的指令中的操作数给出转移的目标地址或目标地址的一部分目标地址或目标地址的一部分。指令寻址分为绝对寻址和相对寻址指令寻址分为绝对寻址和相对寻址两种两种方式。方式。指令寻址用于控制转移指令中。指令寻址用于控制转移指令中。3.2.7 指令寻址指令寻址一、绝对寻址一、绝对寻址绝对寻址:绝对寻址:指令中的操作数给出转移的指令中的操作数给出转移的
18、16位目标地址位目标地址。寻址范围:寻址范围:64KB全空间全空间。绝对寻址用在长转移和长调用指令中,绝对寻址用在长转移和长调用指令中,例如:例如:LJMPSER_INT_T1;无条件转移到;无条件转移到T1中断服务程序中断服务程序LCALLSUB_SORT; SUB_SORT调用排序子程序调用排序子程序SUB_SORT为为16位目标地址标号位目标地址标号SER_INT_T1为为16位目标地址标号位目标地址标号3.2.7 指令寻址指令寻址二、相对寻址二、相对寻址相对寻址:相对寻址:是以当前程序计数器是以当前程序计数器PC值为值为基地址,加上指令中给出的偏移量基地址,加上指令中给出的偏移量rel
19、,得到,得到目标位置的地址目标位置的地址。即:。即:目标地址目标地址PCrelrel目标地址目标地址PC偏移量偏移量rel为为8位补码位补码,其值为其值为- -128+127。rel0表明目标地址小、源地址大,程序向表明目标地址小、源地址大,程序向回跳转;回跳转;rel0,程序向前跳转。,程序向前跳转。3.2.7 指令寻址指令寻址例如:例如:JZFIRST;(;(A)0,跳转到,跳转到FIRSTDJNZR7,LOOP;(;(R7)- -10,跳转到,跳转到LOOP说明:说明:(1)在实际编程中在实际编程中,不需要计算不需要计算rel,rel由编译器自动计算;由编译器自动计算;(2)当跳转范围超
20、出了当跳转范围超出了rel范围,编译范围,编译器会提示,对程序做适当调整即可。器会提示,对程序做适当调整即可。 3.2.8 寻址空间及指令中的符号注释寻址空间及指令中的符号注释 一、寻址方式、寻址空间及范围一、寻址方式、寻址空间及范围寻址方式寻址方式操作数及寻址空间范围操作数及寻址空间范围立即数寻址立即数寻址在在ROM中,中,随指令读入随指令读入直接寻址直接寻址片内片内RAM中,中,低低128字节和字节和SFR寄存器寻址寄存器寻址使用的寄存器:使用的寄存器:R0R7、A、B、C、DPTR 寄存器寄存器间接寻址间接寻址片内片内RAM:用用Ri、SP;范围范围256B,不含,不含SFR片外片外RA
21、M:用用Ri、DPTR;范围为范围为64KB变址寻址变址寻址用用A+PC、A+DPTR;在;在ROM中;中;范围分别为范围分别为PC之后之后256B之内和之内和64KB全空间全空间位寻址位寻址在位寻址区域在位寻址区域;RAM的的202FH和和SFR指令绝对寻址指令绝对寻址 操作数是目标地址;在操作数是目标地址;在ROM中;中; 64KB全空间全空间指令相对寻址指令相对寻址 操作数是相对地址;在操作数是相对地址;在ROM中;中;范围范围-1281273.2.8 寻址空间及指令中的符号注释寻址空间及指令中的符号注释二、指令中常用符号二、指令中常用符号Rn:n=07。当前选中的。当前选中的工作寄存工
22、作寄存器器R0R7。Ri:i=0、1。当前选中的工作寄存。当前选中的工作寄存器组中可作为器组中可作为地址指针的地址指针的R0和和R1。#data:8位立即数位立即数。#data16:16位立即数位立即数。direct:8位片内位片内RAM单元地址单元地址,包括,包括低低128B和和SFR,但不包括高,但不包括高128B。addr16: 程序存储空间的程序存储空间的16位地址位地址 3.2.8 寻址空间及指令中的符号注释寻址空间及指令中的符号注释rel:补码形式的补码形式的8位地址偏移量位地址偏移量。以下面指令的第一个字节为基地址,地址偏以下面指令的第一个字节为基地址,地址偏移量在移量在-128
23、+127。bit:片内片内RAM或或SFR中的直接寻址中的直接寻址位地址位地址:间址寄存器的前缀符号间址寄存器的前缀符号,表示,表示间接寻址。间接寻址。3.2.8 寻址空间及指令中的符号注释寻址空间及指令中的符号注释():表示表示中的内容中的内容 ():表示由表示由中指向的地址单元中中指向的地址单元中的内容的内容:逻辑与逻辑与:逻辑或逻辑或 :逻辑异或逻辑异或、: 指令操作流程,将内容送到箭指令操作流程,将内容送到箭头指向的地方头指向的地方 3.3 MCS-51单片机指令系统单片机指令系统 主要内容主要内容3.3.1 数据传送指令数据传送指令3.3.2 算术运算指令算术运算指令3.3.3 逻辑
24、运算指令逻辑运算指令3.3.4 控制程序转移指令控制程序转移指令3.3.5 位操作指令位操作指令3.3 MCS-51单片机指令系统单片机指令系统 指令概述指令概述MCS-51单片机指令系统有单片机指令系统有111条指令,条指令,分类如下。分类如下。1、按字节分类、按字节分类单字节指令:单字节指令:49条;条; 双字节指令:双字节指令:45条条三字节指令:三字节指令:17条条2、按执行时间分类、按执行时间分类单周期指令:单周期指令:64条;条; 双周期指令:双周期指令:45条条四周期指令:四周期指令:2条(乘、除指令)条(乘、除指令)3.3 MCS-51单片机指令系统单片机指令系统 3、按功能分
25、类、按功能分类(分为(分为5大类)大类)数据传送指令:数据传送指令:29条条算术运算指令:算术运算指令:24条条逻辑运算指令:逻辑运算指令:24条条控制程序转移指令:控制程序转移指令:17条条位操作指令:位操作指令:17条条MCS-51指令没有复杂的寻址方式,并且指令没有复杂的寻址方式,并且助记符只有助记符只有42种,所以单片机指令容易理种,所以单片机指令容易理解、容易记忆、容易掌握解、容易记忆、容易掌握。 3.3.1 数据传送指令数据传送指令数据传送是使用最频繁的一类指令。数据传送是使用最频繁的一类指令。所谓传送,所谓传送,就是把源地址单元的内就是把源地址单元的内容传送到目的地址单元中去,而
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 单片机 原理 应用 语言版 PPT 课件
限制150内