单片机胡汉才班第3章课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《单片机胡汉才班第3章课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 胡汉才班第 课件
- 资源描述:
-
1、第3章 MCS-51单片机指令系统和汇编语言程序示例第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统 和汇编语言程序示例和汇编语言程序示例3.1 MCS-51单片机指令系统概述单片机指令系统概述3.2 寻址方式寻址方式3.3 数据传送类指令数据传送类指令3.4 算术运算类指令算术运算类指令3.5 逻辑运算及移位指令逻辑运算及移位指令3.6 控制转移类指令控制转移类指令3.7 子程序调用与返回指令子程序调用与返回指令3.8 位操作类指令位操作类指令第3章 MCS-51单片机指令系统和汇编语言程序示例3.1 MCS-51单片机指令系统概述单片机指令系统概述3.1.1 指令、指令
2、系统的概念指令、指令系统的概念 指令指令-是是CPU按照人们的意图来完成某种操作的命令,它以按照人们的意图来完成某种操作的命令,它以英文名称或缩写形式作为英文名称或缩写形式作为助记符助记符。 汇编语言指令汇编语言指令-用助记符、符号地址、标号等表示的书写程用助记符、符号地址、标号等表示的书写程序的语言。序的语言。 掌握汇编语言指令是程序设计的掌握汇编语言指令是程序设计的基础基础。第3章 MCS-51单片机指令系统和汇编语言程序示例 指令系统概述指令系统概述简明、易掌握、效率较高的指令系统简明、易掌握、效率较高的指令系统,复杂指令集复杂指令集。按按所占字节分所占字节分,分,分三种三种:(1 1)
3、单字节指令)单字节指令4949条;条;(2 2)双字节指令)双字节指令4545条;条;(3 3)三字节指令)三字节指令1717条。条。按按执行时间来分执行时间来分,分三种:,分三种:(1 1)1 1个个机器周期(机器周期(1212个时钟振荡周期)的指令个时钟振荡周期)的指令6464条条;(2 2)2 2个个机器周期指令机器周期指令4545条条;(3 3)4 4个个机器周期机器周期乘、除指令乘、除指令。第3章 MCS-51单片机指令系统和汇编语言程序示例3.1.2 MCS-51单片机指令系统及其指令格式单片机指令系统及其指令格式 指令系统中的指令描述了不同的操作,不同操作对应不同指令系统中的指令
4、描述了不同的操作,不同操作对应不同的指令。的指令。 每条指令通常由每条指令通常由操作码操作码和和操作数操作数两部分组成。两部分组成。 操作码操作码表示计算机执行该指令将进行何种操作,表示计算机执行该指令将进行何种操作,操作数操作数表示表示参加操作的数的本身或操作数所在的地址。参加操作的数的本身或操作数所在的地址。MCS-51MCS-51单片机的指令有单片机的指令有无操作数、单操作数、双操作数无操作数、单操作数、双操作数三种情三种情况。汇编语言指令有如下的格式:况。汇编语言指令有如下的格式: 标号:标号: 操作码助记符操作码助记符 目的操作数目的操作数,源操作数,源操作数 ;注释;注释 第3章
5、MCS-51单片机指令系统和汇编语言程序示例一些符号的约定意义说明:一些符号的约定意义说明: (1) Ri和和Rn:表示当前工作寄存器区中的工作寄存器,:表示当前工作寄存器区中的工作寄存器,i取取0或或1,表示,表示R0或或R1。n取取07,表示,表示R0R7。 (2) #data:表示包含在指令中的:表示包含在指令中的8位立即数。位立即数。 (3) #data16:表示包含在指令中的:表示包含在指令中的16位立即数。位立即数。 (4) rel:以补码形式表示的:以补码形式表示的8位相对偏移量,范围为位相对偏移量,范围为-128127,主要用在相对寻址的指令中。,主要用在相对寻址的指令中。第3
6、章 MCS-51单片机指令系统和汇编语言程序示例 (5) addr16和和addr11:分别表示:分别表示16位直接地址和位直接地址和11位直接地位直接地址。址。 (6) direct:表示直接寻址的地址。:表示直接寻址的地址。 (7) bit:表示可位寻址的直接位地址。:表示可位寻址的直接位地址。 (8) (X):表示:表示X单元中的内容。单元中的内容。 (9) (X):表示以:表示以X单元的内容为地址的存储器单元内容,单元的内容为地址的存储器单元内容,即即(X)作地址,该地址单元的内容用作地址,该地址单元的内容用(X)表示。表示。 (10) / 和和符号:符号:“/”表示对该位操作数取反,
7、但不影响该表示对该位操作数取反,但不影响该位的原值。位的原值。“”表示操作流程,将箭尾一方的内容送入箭头所表示操作流程,将箭尾一方的内容送入箭头所指另一方的单元中去。指另一方的单元中去。 第3章 MCS-51单片机指令系统和汇编语言程序示例3.2.1 寄存器寻址寻址方式:寻找(源)操作数或指令转移地址的方式80C51单片机有7种寻址方式3.2 80C51的寻址方式操作数在寄存器中寻址空间:R0R7、A、B(AB形式)和DPTR特点:传送和执行速度快【例】若(例】若(R0)=30H, 执行MOV A,R0后,(A)=30H 第3章 MCS-51单片机指令系统和汇编语言程序示例3.2.2 直接寻址
8、操作码后字节存放的是操作数的地址寻址空间:片内RAM低128字节SFR(符号形式)另一类直接寻址是转移目标地址的寻址。如 : L J M P ADDR16【例】若(例】若(50H50H)=3AH =3AH , 执行MOV A,50H后,(A)=3AH 第3章 MCS-51单片机指令系统和汇编语言程序示例3.2.3 寄存器间接寻址寄存器中的内容是操作数的地址寻址空间:片内RAM(Ri、SP)片外RAM(Ri、DPTR)【例】若(例】若(R0)=30H,(30H)=5AH 执行MOV A,R0后,(A)=5AH 片内:MOV片外:MOVX第3章 MCS-51单片机指令系统和汇编语言程序示例3.2.
9、4 立即寻址操作数在指令编码中寻址空间:ROM对于MOV DPTR,#2100H指令,立即数高8位“21H”装入DPH 【例】执行例】执行MOV AMOV A,#50H #50H 结果:(结果:(A A)=50H =50H 第3章 MCS-51单片机指令系统和汇编语言程序示例3.2.5 变址寻址操作数地址:基地址+偏移量寻址空间:ROM变址寻址还用于跳转指令,如JMP A+DPTR 【例】(例】(A A)0FH 0FH (DPTRDPTR)=2400H =2400H 执行执行MOVC A,A+DPTR”MOVC A,A+DPTR”后后结果:(结果:(A A)=88H =88H 第3章 MCS-
10、51单片机指令系统和汇编语言程序示例3.2.6 相对寻址用于跳转指令,实现程序分支Rel常用符号地址表示,离源地址不要超过(128127 ) 【例】若例】若rel为75H,PSW.7为1,JC rel存于1000H开始的单元。 执行JC rel指令后,程序将跳转到1077H单元取指令并执行。 第3章 MCS-51单片机指令系统和汇编语言程序示例3.2.7 位寻址寻址位数据寻址空间片内RAM位空间SFR位空间【例】位地址【例】位地址00H00H内容为内容为1 1,MOV CMOV C,00H00H执行后,位地址执行后,位地址PSW.7PSW.7的内容为的内容为1 1。位寻址方式实位寻址方式实质属
11、于质属于位的直位的直接寻址接寻址。 第3章 MCS-51单片机指令系统和汇编语言程序示例7 7种寻址方式种寻址方式已介绍完毕。已介绍完毕。问题:问题:当一条指令给定后,如何来确定该指令的寻址方式?当一条指令给定后,如何来确定该指令的寻址方式?例如例如: : MOV AMOV A,#40H#40H,属于立即数寻址还是寄存器寻址?,属于立即数寻址还是寄存器寻址?要看以哪个操作数要看以哪个操作数作为参照系作为参照系。操作数分为操作数分为源操作数源操作数和和目的操作数目的操作数。对于。对于源操作数源操作数“#40H”#40H”来说,是来说,是“立即数寻址立即数寻址”方式,但对方式,但对目的操作数目的操
12、作数“A”A”来来说,是属于说,是属于“寄存器寻址寄存器寻址”方式。方式。一般而言,一般而言,寻址方式指的是寻址方式指的是源操作数源操作数,所以此例为立即数寻,所以此例为立即数寻址方式。址方式。对指令系统对指令系统7 7种寻址方式种寻址方式总结,概括总结,概括见见表表3-13-1。14第3章 MCS-51单片机指令系统和汇编语言程序示例15序号序号寻址方式寻址方式寻址空间寻址空间1 1寄存器寻址寄存器寻址R0R0R7R7、A A、B B、C(C(位位) )、DPTRDPTR等等2 2直接寻址直接寻址内部内部128128字节字节RAMRAM、特殊功能寄存器、特殊功能寄存器3 3寄存器间接寻址寄存
13、器间接寻址片内数据存储器、片外数据存储器片内数据存储器、片外数据存储器4 4立即数寻址立即数寻址程序存储器中的立即数程序存储器中的立即数5 5基址寄存器加变址寄存器间基址寄存器加变址寄存器间接寻址接寻址读程序存储器固定数据和程序散转读程序存储器固定数据和程序散转6 6相对寻址相对寻址程序存储器相对转移程序存储器相对转移7 7位寻址位寻址内部内部RAMRAM中的可寻址位、中的可寻址位、SFRSFR中的可中的可寻址位寻址位表表3-1 3-1 7 7种寻址方式及其寻址空间种寻址方式及其寻址空间第3章 MCS-51单片机指令系统和汇编语言程序示例3.3 数据传送类指令(29条)一般不影响标志寄存器PS
14、W的状态。 传送类指令有两大类 一般传送( MOV ) 特殊传送,如: MOVC MOVX PUSH、POP XCH、XCHD SWAP 第3章 MCS-51单片机指令系统和汇编语言程序示例3.3.1 一般传送指令16位传送(仅1条)MOV DPTR,#data16; DPTR data16例:执行指令 MOV DPTR,#1234H 后 (DPH)=12H,(DPL)=34H。8位传送通用格式:通用格式: MOV MOV , ; 第3章 MCS-51单片机指令系统和汇编语言程序示例 以A为目的dataA data#RiA RidirectA direct RnA Rn A MOV;)(;)(
15、;)(;,【例】若例】若(R1)= 20H,(20H)= 55H。执行指令 MOV A,R1 后,(A)= 55H。第3章 MCS-51单片机指令系统和汇编语言程序示例 以Rn为目的dataRn data#directRn direct A)Rn A Rn MOV;)(;(;,【例】执行指令 MOV R6,#50H 后,(R6)= 50H 第3章 MCS-51单片机指令系统和汇编语言程序示例 以direct为目的datadirect data# Ri direct Ridirect1direct direct1 )Rndirect Rn )Adirect A direct MOV;)(;)(;
16、(;(;,【例】若(R1)=50H,(50H)=18H,执行指令 MOV 40H,R1 后,(40H)=18H 第3章 MCS-51单片机指令系统和汇编语言程序示例 以Ri为目的dataRi data#directRi direct )ARi A Ri MOV);()();();(,【例】若(R1)=30H,(A)=20H,执行指令 MOV R1,A 后,(30H)=20H。 第3章 MCS-51单片机指令系统和汇编语言程序示例3.3.2 特殊传送指令 以DPTR内容为基址读ROM中常数表项指令MOVCROM中可以存放程序代码,还经常存放常数表 MOVC AMOVC A,A+DPTRA+DPT
17、R;A A (A A)+ +(DPTRDPTR) 以PC内容为基址MOVC AMOVC A,A+PC A+PC ;A A (A A)+ +(PCPC)常数表存放约束小,称为远程查表指令。占用DPTR 常数表存放约束大,称为近程查表指令。不占用DPTR 第3章 MCS-51单片机指令系统和汇编语言程序示例 读片外RAM读片外RAM及接口单元数据的指令MOVX片外RAM中经常存放数据采集与处理的中间数据 MOVX AMOVX A,DPTR DPTR ;A A (DPTRDPTR)MOVX AMOVX A,RiRi ;A A (RiRi) 写片外RAMMOVX DPTRMOVX DPTR,A A ;
18、(;(DPTRDPTR)AAMOVX RiMOVX Ri,A A ;(;(RiRi)AA注意:用Ri寻址时,高8位地址由P2口提供 第3章 MCS-51单片机指令系统和汇编语言程序示例 入栈指令PUSH堆栈操作指令PUSH和POP堆栈是一片存储区,遵循“后进先出”原则,栈顶由SP指示。80C51的堆栈设在片内RAM低端的128个单元,向上生长。 PUSH direct PUSH direct ;SPSP(SPSP)1 1,(,(SPSP)(directdirect) 出栈指令POPPOP direct POP direct ;(;(directdirect)(SPSP),),SP SP (SP
19、SP)1 1 注:堆栈用于子程序调用时保护返回地址,或者用于保护子程序调用之前的某些重要数据(即保护现场),还可以用于数据交换。 第3章 MCS-51单片机指令系统和汇编语言程序示例利用堆栈完成40H与50H单元内容的交换的示例 MOV SP,#6FH;将堆栈设在70H以上RAM空间PUSH 40H ;将40H单元的“23H”入栈,之后(SP)=70H PUSH 50H ;将50H单元的“45H”入栈,之后(SP)=71HPOP 40H ;将SP指向的71H单元的内容弹到40H单元,之后(SP)=70HPOP 50H ;将SP指向的70H单元的内容弹到50H单元,之后(SP)=6FH(a)初始
20、状态 (b)2条PUSH指令执行后 (c)2条POP指令执行后第3章 MCS-51单片机指令系统和汇编语言程序示例 字节交换指令XCH数据交换指令XCH、XCHD和SWAP数据交换属于同时进行的双向传送 )(;)(;)(;,RiA RidirectA direct RnA Rn A XCH【例】若(例】若(R0)=80H,(A)=20H。 执行指令 XCH A,R0 后,(A)=80H,(R0)=20H。 第3章 MCS-51单片机指令系统和汇编语言程序示例 半字节交换指令XCHD【例】若(例】若(R0R0)30H30H,(,(30H30H)67H67H, (A A)20H20H。执行指令。执
21、行指令 XCHD AXCHD A,R0 R0 指令后,(指令后,(A A)27H27H,(,(30H30H)60H60H。 )();()()();(,ACC.0ACC.3ACC.4ACC.7 A SWAPACC.0ACC.30 .Ri3 .Ri Ri A XCHDXCHDXCHD是间址操作数的低半字节与是间址操作数的低半字节与A A的低半字节互换。的低半字节互换。SWAPSWAP是累加器的高低是累加器的高低4 4位互换位互换【例】若(例】若(A A)30H30H,执行指令,执行指令SWAP ASWAP A后,(后,(A A)03H 03H 。 第3章 MCS-51单片机指令系统和汇编语言程序示
22、例3.4 算术运算类指令算术运算类指令3.4.1 加、减法指令加、减法指令图3.4 加减法指令形式结构图(a) 加减法指令关系图;(b) 加1、减1指令关系图 第3章 MCS-51单片机指令系统和汇编语言程序示例表表3.2 加减法指令表加减法指令表第3章 MCS-51单片机指令系统和汇编语言程序示例 例例6 设(A) = 49H,(R0)=6BH,分析执行指令ADD A,R0后的结果。 结果为:(A)=B4H,OV=1,CY=0,AC=1,P=0。 例例7 设(A)=C3H,数据指针低位(DPL)=ABH,CY=1,分析执行指令ADDC A,DPL后的结果。 结果为:(A)=6FH,CY=1,
23、AC=0,P=0。 例例8 设 (A) = 52H,(R0)=B4H,分析执行如下指令后的结果 CLR C ;是位操作指令,是进位位清零 SUBB A,R0 结果为:(A)=9EH,CY=1,AC=1,OV=1,P=1。第3章 MCS-51单片机指令系统和汇编语言程序示例 例例9 设 (R0) = 7EH,(7EH)=FFH,(7FH)=38H,(DPTR)=10FEH,分析逐条执行下列指令后各单元的内容。INC R0 ;使7EH单元内容由FFH变为00HINC R0 ;使R0的内容由7EH变为7FHINC R0 ;使7FH单元内容由38H变为39HINC DPTR ;使DPL为FFH,DPH
24、不变INC DPTR ;使DPL为00H,DPH为11HINC DPTR ;使DPL为01H,DPH不变第3章 MCS-51单片机指令系统和汇编语言程序示例3.4.2 十进制调整指令十进制调整指令若(A)309或(AC)=1,则(A)30(A)30+06H若(A)749或(CY)=1,则(A)74(A)74+06HDA A ; 若AC=1,CY=1同时发生,或者高4位虽等于9但低4位修正后有进位,则A应加66H修正。 十进制调整指令是一条对二-十进制的加法进行调整的指令。它是一条单字节指令,机器码为D4H。两个压缩BCD码按二进制相加,必须在加法指令ADD、ADDC后,经过本指令调整后才能得到
展开阅读全文