单片机原理及其接口技术胡汉口第3版第3章-指令系统.ppt

上传人:小飞机 文档编号:5096464 上传时间:2023-06-03 格式:PPT 页数:135 大小:2.48MB
返回 下载 相关 举报
单片机原理及其接口技术胡汉口第3版第3章-指令系统.ppt_第1页
第1页 / 共135页
单片机原理及其接口技术胡汉口第3版第3章-指令系统.ppt_第2页
第2页 / 共135页
单片机原理及其接口技术胡汉口第3版第3章-指令系统.ppt_第3页
第3页 / 共135页
单片机原理及其接口技术胡汉口第3版第3章-指令系统.ppt_第4页
第4页 / 共135页
单片机原理及其接口技术胡汉口第3版第3章-指令系统.ppt_第5页
第5页 / 共135页
点击查看更多>>
资源描述

《单片机原理及其接口技术胡汉口第3版第3章-指令系统.ppt》由会员分享,可在线阅读,更多相关《单片机原理及其接口技术胡汉口第3版第3章-指令系统.ppt(135页珍藏版)》请在三一办公上搜索。

1、第3章:51单片机指令系统,本章基本要求:指令的概念 51-单片机的寻址方式*51-单片机指令系统*,(概念3-1)一台计算机所能执行的全部的指令集合成称指令系统,3.1 指令系统概述,(概念3-2)指令是一种可供计算机执行的控制代码(指令码),指令码分为操作码和操作数,(概念3-3)程序:采用指令系统中的指令根据题目要求排列起来的有序指令集和。(概念3-4)程序的编制称为程序设计,指令系统,设计一种CPU,一般从设计指令系统开始因而,一种机器的指令系统是机器本身固有的用户无法改变,必须继承、学习、掌握、应用,决定了机器的性能,机器语言,,二进制代码,是机器唯一能直接识别、执行的语言。,为了记

2、忆和阅读方便,制造商对指令系统每一条指令,都给出了指令助记符。(概念3-5)助记符:有英文单词或缩写字母形象表征指令功能(概念3-6)用助记符,操作数,标号编写的程序称为汇编语言源程序。,一、汇编语言,汇编语言必须翻译成机器语言才能被机器执行,程序设计语言,汇编语言;,高级语言,完成由汇编语言到机器代码的过程叫汇编,汇编的方法有两种:自动汇编、手工汇编,由机器代码到汇编语言的过程叫反汇编,汇编语言源程序,机器语言,汇编,反汇编,交叉汇编,二、汇编语言的格式,标号:操作码 操作数;注释START:MOV A,#00H;0-A,其中除操作码部分是必须的,括号内的区段是任选项。,1、标号,标号是该指

3、令的符号地址,可根据需要设定,必须以字母开始,以“:”结束,长度不超过8个字符,系统中的保留字符不能作标号,如:SFR名、ADD等,标号可被其他语句的操作数直接引用源程序中,一个标号只能定义一个语句,不能相重,保持一义性,一个汇编语句分为四个区段,2、操作码,由指令系统的助记符、伪指令助记符组成。,操作码是每一句汇编语言所必须的,操作码和操作数之间用空格分开,3、操作数,可为二进制数(B),十进制数(D),十六进制数(H),数字大于9,则数字应以“0”开头,可以是操作数地址、立即数、标号、表达式如 M+3,目的操作数和源操作数之间用“,”分开,可以是寄存器名如A、B、R、DPTR,M,标号,被

4、定义过的,Binary,Decimal,Hexadecimal,指出该语句的操作性质,4、注释,以“;”开头,是程序员对指令操作的解释,以帮助阅读、理解程序的意义,可有可无,汇编时对这部分不予处理,不译成任何机器代码,可用英语或某种简洁的方式解释指令,或打印 程序清单,3.1概述,3.1.1 指令格式指令由操作码和操作数两部分组成。操作码:描述指令的功能。操作数:描述指令操作的对象,这个对象有时用直接数据,有时用操作数的地址来给出。有些指令是单操作数。有些指令是双操作数,取名为源操作数和目的操作数。,3.1概述,3.1.2 指令的三种表示形式 三种形式为:二进制形式、十六进制形式、助记符形式。

5、二进制形式:可以直接为CPU识别和执行的形式。十六进制形式:为二进制形式的压缩形式。助记符形式:也叫汇编语句形式,是用英文缩写描述指令功能的形式。其特点是:便于记忆和使用,在执行时必须翻译成二进制形式。,3.1概述,3.1.3 指令的长度51单片机的指令(111条)分为单字节、双字节、三字节三种长度。1、单字节指令:有49条,可进一步分为无操作数、有操作数两种。2、双字节指令:有46条,前一字节存放操作码,后一字节存放操作数。3、三字节指令:有16条,前一字节存放操作码,后两字节存放操作数。一般讲,指令长度越短,执行速度越快。,3.1.4通常指令是按照功能来分类的:51单片机指令分5类,1、数

6、据传送指令:28条,用于片内RAM间、片内RAM与片外RAM数据传送。2、算术运算指令:24条,用于对两个操作数进行加、减、乘、除运算3、逻辑操作和移位指令:25条,对指定操作数进行逻辑运算和移位运算。4、控制转移指令:17条,用于控制程序的流程和执行的方向。其操作是以改变PC的值来实现。5、位操作指令:17条,也叫布尔操作指令。分为位传送、位置位、位复位、位运算、位控制转移等等。这类指令的操作数是以位为对象。,3.1概述,3.1.5 指令系统综述指令系统:某种CPU的指令的集合。他与CPU的硬件电路密切相关,学习指令时必须注意到这一背景。不同的CPU具有不同的指令系统。掌握指令的三要素:指令

7、功能、指令状态、指令长度。1、指令系统中常用符号(附录C)(基础知识)Rn:工作寄存器,可以是R0R7之一。#data:8位立即数,是00HFFH之一。,3.1概述,#data16:16位立即数,是0000HFFFFH之一。direct:8位直接地址,是00HFFH之一,也可以是SFR中的一个,对于SFR可直接用其名称来代替其直接地址。Ri:表示寄存器间接寻址。DPTR:使用16位DPTR间接寻址,用于对外部RAM/ROM寻址。bit:位地址 addr11/16:11/16位目标地址。rel:8位带符号地址偏移量。$:当前指令地址。,3.1概述,2、指令对标志位的影响:指令系统中的算术类指令,

8、位移类指令、逻辑运算类指令等的运算会对标志寄存器PSW中的某些位有影响。这些对标志位的影响是这类指令的重要特征,也是使用条件转移指令的依据。需要仔细掌握应用。3.2寻址方式(概念3-7)所谓寻址方式:是指指令寻找操作数的方法。51单片机有7种寻址方式:寄存器寻址、直接寻址、立即寻址、寄存器间接寻址、(寄存器)变址寻址、相对寻址、位寻址。,3.2 MCS-51指令的寻址方式,用何种方式寻找指令的操作数或指令的执行地址,1、立即寻址,寻址空间:,指令形式:,程序存储器,指令的操作数存放在程序存储器中,操作数紧跟操作码后面,立即寻址:,在 哪 里?,用何种方式寻找,OP#data,指令的寻址方式:,

9、指令的寻址方式:,MOV A,#30H,例1:,30H,MOV DPTR,#8000H,例2:,80H,00H,2、直接寻址,寻址空间:,指令的三种形式:,直接寻址,直接寻址是访问 SFR 的唯一方法,00H7FH80HFFH,CPU内部,直接间接,注意事项:累加器A,ACC,0E0H,直接寻址,当直接寻址的地址是SFR中的一个时,直接地址可使用SPR物理地址也可以是名称MOV A,SPMOV A,81HINC A;寄存器寻址INC ACCINC 0E0HMOV A,20HMOVC,20H;位寻址,“与”,MOV A,30H,例1:,ANL 30H,#30H,例2:,“结果”,3、寄存器寻址:

10、指令码中含有该操作数的寄存器号,寻址空间:,指令的三种形式:,当前选定的寄存器内容就是实际操作数,MOV A,R311101XXX,例1:,ADD A,R3,例2:,寄存器寻址:,操作数隐含,操作数显然,4、寄存器间接寻址,寻址空间:,指令的三种形式:,寄存器间接寻址:,MOV R0,A,例1:,;累加器传送指令,MOVX A,DPTR,例2:,“读”,“读”,5、基址寄存器加变址寄存器间接寻址,基址寄存器加变址寄存器间接寻址:,以DPTR或PC作基址寄存器,A作变址寄存器两者相加形成操作数地址。,寻址空间:,程序存储器(A+DPTR、A+PC),指令形式:,MOVC A,A+DPTR,例:,

11、设(A)=0FH(DPTR)=2400H,“读”,“读”,MOVC A,A+DPTR,6、相对寻址,程序存储器,寻址空间:,指令的三种形式:,相对寻址,以当前PC值为基准地址,加上指令的偏移量“rel”,结果为目标地址。rel为有符号补码数,范围:-128+127,一般为双字节或三字节指令,寻址指令执行地址目标地址,JNZ rel,例:,;累加器A不等零则转移 设:rel=23H,(PC)=2002H,rel=23H,修正后转移目标地址D(PC)=2025H,(PC)=2 0 0 2 H,Rel=2 3 H,),0,0,5,2,0,2,H,D=,(PC)=2112H,rel=F2H,修正后转移

12、目标地址 D(PC)=2104H,例:DJNZ R7,rel;(R7)1不为“0”则转,(PC)=2 1 1 2 H,Rel=F 2 H,),F,F,4,0,1,2,H,D=,7、位寻址,寻址空间:,片内RAM的20H2FH字节地址位地址:00H7FH 共128位,SFR中12个能被8整除的字节地址位地址 共93位MOV C,7FHMOV C,2FH.7,以访问触发器的方式,对内部RAM、SFR的位地址空间进行访问,称为位寻址。位地址用于布尔指令。,寻址方式与相应的寻址空间,小结:,3.3数据传送指令,数据传送类指令共29条,它是指令系统中最活跃、使用最多的一类指令。这类指令的操作是把源操作数

13、传送到目的操作数,即指令执行后目的操作数改为源操作数,而源操作数保持不变。若要求在进行数据传送时,不丢失目的操作数,则可以用交换型传送指令。数据传送类指令不影响进位标志CY、半进位标志AC和溢出标志OV,但当传送或交换数据后影响累加器A的值时,奇偶标志P的值则按A的值重新设定。,数据传送类(29条),用到的指令助记符有5种:,片内传送 MOV,片外传送 MOVX,查表传送 MOVC,累加器交换 XCH、XCHD、SWAP,堆栈操作 PUSH、POP,1、MOV类传送指令源操作数目的操作数都在单片机内部,MCS-51内部RAM只有128B,内部RAM区分为三部分,地址:00H7FH,7FH00H

14、,80个字节为真正的 RAM,16个字节分为128个RAM位,32个字节分为四个工作寄存器区每个区8个工作寄存器,1、MOV类传送指令源操作数目的操作数都在单片机内部,格式:MOV 目的字节,源字节,功能:把源字节内容送目的字节,源字节内容不变,以累加器A为目的字节的传送:,立即数送累加器,MOV A,#data,;立即数#data送累加器A,寄存器内容送累加器,MOV A,Rn(n=07),内RAM或SFR内容送累加器,MOV A,direct,;Rn的内容送累加器A,;以direct为地址的单元的内容送累加器A,内RAM内容送累加器,MOV A,Ri(i=0、1),单字节指令,机器码相应为

15、E6H、E7H,;以Ri内容为地址单元中的数送累加器A,以Rn为目的字节的传送:,立即数送寄存器,MOV Rn,#data(n=07),;立即数#data送累加器 Rn,累加器内容送寄存器Rn,MOV Rn,A(n=07),;累加器A的内容送Rn,单字节指令,机器码相应为F8HFFH,内RAM或SFR内容送寄存器Rn,MOV Rn,direct(n=07),注意:不允许MOV Rn,Rn,;以direct为地址的单元的内容送寄存器Rn,立即数送内RAM或SFR,MOV direct,#data,;立即数#data送以direct为地址的单元,三字节指令,累加器内容送内RAM或SFR,MOV d

16、irect,A,;累加器送以direct为地址的单元,二字节指令,直接地址为目的字节的传送:,寄存器内容送内RAM或SFR,MOV direct,Rn(n=07),;寄存器Rn内容送以direct为地址的单元,二字节指令,内RAM或SFR之间直接传送,MOV direct1,direct2,;内RAM或SFR任意两个单元之间传送数据,三字节指令,内RAM数据送内RAM或SFR,MOV direct,Ri(i=0、1),二字节指令,;以Ri内容为地址单元中的数送内RAM或SFR,立即数送内RAM,MOV Ri,#data(i=0、1),;立即数#data送以Ri内容为地址的单元,二字节指令,累加

17、器内容送内RAM,MOV Ri,A(i=0、1),;累加器内容送以Ri内容为地址的单元,单字节指令,内RAM或SFR数据送内RAM,MOV Ri,direct(i=0、1),二字节指令,;以direct为地址的单元内容送Ri内容为地址的单元,16位立即数传送指令,MOV DPTR,#data16,;16位立即数送DPTR中,设置地址指针。,三字节指令,MOV类传送指令小结,MOV 片内传送指令,MOV类传送指令小结,MOV 片内传送指令,2、MOVX类传送指令,累加器A与外部RAM传送数据用 MOVX,外部RAM送累加器A,MOVX A,Ri(i=0、1),单字节指令,机器码相应为E2H、E3

18、H,;以Ri内容为外部RAM地址的单元中的数送A,累加器内容送外RAM,MOVX Ri,A(i=0、1),;累加器内容送以Ri内容为地址的外部RAM单元,单字节指令,外部RAM送累加器A,MOVX A,DPTR,单字节指令,机器码相应为E0H,;以DPTR内容为地址的外部RAM单元中的数送A,累加器内容送外RAM,MOVX DPTR,A,;累加器内容送以DPTR内容为地址的外部RAM单元,单字节指令,机器码相应为F0H,MOVX类传送指令小结,MOVX 片外传送指令,例:将片外RAM 120H单元的内容传送到片外RAM 地址为78H的单元。,MOV DPTR,#0120H,MOVX A,DPT

19、R,MOV R0,#78H,MOVX R0,A,例:将片内RAM 12H单元的内容传送到片内RAM 地址为78H的单元。,MOV 78H,12H,;外部RAM送累加器A,;累加器内容送外RAM,3、MOVC类传送指令,MOVC类传送指令,均为基址加变址寄存器寻址:,MOVC A,A+DPTR,单字节指令,机器码相应为93H,以DPTR作基址加变址寻址,长查表指令,16位,MOVC A,A+PC,单字节指令,机器码相应为83H,以PC作基址加变址寻址,短查表指令,MOVC类传送指令小结,例:在外部ROM中存放09的平方值。根据累加器 A中的数(09),查找对应的平方值。,用DPTR作基址寄存器指

20、向表格的首地址用A作变址寄存器实际上A中的值是表格中的第几项,09H,;设(A)=03H,查“3”的平方,用PC作基址寄存器,它并不指向表格首址(本章难点),;是PC当前值与所查表格首址之间的距离;即(PC)+#data TABBEL表格首址,设(A)=03H,是表格中的第3项,ADD A,#data,MOVC A,A+PC,;#data是变址调整值,用PC作基址寄存器,它并不指向表格首址(本章难点),;是PC当前值与所查表格首址之间的距离;即(PC)+#data TABBEL表格首址,设(A)=03H,是表格中的第3项,;单字节指令,设指令在ROM中的地址为1FF0H,ADD A,#data

21、,MOVC A,A+PC,000FH,;#data是变址调整值,TABBEL,MOVC A,A+PC,(PC)=1FF1H,09H,;查“3”的平方,在外部ROM中存放09的共阴字形码。根据累加器A中的数(09),查找对应的共阴字形码。,MOV DPTR,#DTABMOVC A,A+DPTRDTAB:DB 3FH,06H,5BH,4FH DB 66H,6DH,7DH,07H DB 7FH,6FH8段排列顺序hgfedcba,DTAB,4、XCH、XCHD、SWAP类传送指令,寄存器内容与累加器内容交换,XCH A,Rn(n=07),内RAM或SFR内容与累加器内容交换,XCH A,direct

22、(n=07),内RAM内容与累加器内容交换,XCH A,Ri(i=0,1),内RAM内容低4位与累加器低4位内容交换,XCHD A,Ri(i=0,1),累加器A高4位与低4位交换,SWAP A,交换类传送指令小结,5、堆栈操作指令,进栈指令,PUSH direct,;direct地址单元的内容压入SP指向的单元,双字节指令,出栈指令,POP direct,;SP指向的单元内容弹出到以direct为地址的单元,双字节指令,例:堆栈操作 设(A)=55H,(B)=3FH,建立堆栈,压入操作,弹出操作,55H,3FH,MOV SP,#60H,PUSH A,PUSH B,POP PSW,结果:PSW的

23、内容3FH,SP的内容为61H,PSW,3FH,3.4算术、逻辑运算及移位指令,这类指令有49条。一个共同的特点:都要使用累加器A来存放操作数,其结果也是存放在A中。这类指令的运算结果对PSW的影响,尤其是Cy、OV(为最高位进位异或次高位进位)、AC以及P(与A中1的个数一起保证为偶数)的变化。,一、算术运算类(24条),用到的指令助记符有8种:,加法指令 ADD、ADDC、INC、DA,减法指令 SUBB,DEC,乘除指令 MUL,DIV,算术运算类指令执行结果影响标志位:CY、AC、OV,1、不带进位加ADD注意:四个指令被加数都在累加器中,累加器内容加立即数,ADD A,#data,双

24、字节指令,累加器内容加寄存器内容,ADD A,Rn(n=07),单字节指令,累加器内容加内RAM内容,ADD A,Ri(i=0,1),单字节指令,累加器内容加内RAM内容或SFR,ADD A,direct,双字节指令,ADD类指令小结,2、带进位加ADDC注意:CY在PSW里,累加器内容加立即数 加进位位,ADDC A,#data,双字节指令,累加器内容加寄存器内容加进位位,ADDC A,Rn(n=07),单字节指令,累加器内容加内RAM内容加进位位,ADDC A,Ri(i=0,1),单字节指令,累加器内容加内RAM内容或SFR加进位位,ADDC A,direct,双字节指令,ADDC类指令小

25、结,无符号数相加:,若和数大于255,则CY=1,否则CY=0,用于多字节无符号数相加,试分析执行下面的指令后,程序状态字PSW中 CY,AC,OV的内容是什么?,1,0,0,1,0,0,1,1,(C9H),3、增量INC,累加器内容加“1”,INC A,单字节指令,寄存器内容加“1”,INC Rn,内RAM或SFR内容加“1”,INC direct,单字节指令,内RAM内容加“1”,INC Ri,双字节指令,数据指针DPTR内容加“1”,INC DPTR,单字节指令,注意:INC 指令中除 INC A 指令影响 P 标志位,其余指令不影响任何标志位,INC类指令小结,4、十进制调整指令,DA

26、 A,;对累加器A,作BCD码加法后进行“过9补6”调整,注意:DA 指令不能对BCD码减法的结果进行调整,单字节指令,例 设(A)=37H;(R3)=36H,执行下面的程序:,0 0 1 1 0 1 1 1(37H),0 0 1 1 0 1 1 0(36H),(6DH),0 1 1 0 1 1 0 1,过“9”,0 0 0 0 0 1 1 0,0 1 1 1 0 0 1 1,补“6”,(73H),;(A)=6DH,;(A)=73H,0 1 1 1 0 0 1 1(73H),1 0 0 1 1 0 0 1(99H),1 0 0 0 0 1 1 0 0(0CH),CY,0 1 1 0 0 1 1

27、 0,0 1 1 1 0 0 1 0,(72H),;(A)=0CH CY=1,;(A)=72H,过“9”,补“6”,1 1 0 1,1,1 1 0 0,“+99”就等于减“-1”,互补,DA A 只能跟在加法指令之后,5、减法指令SUBB,累加器减立即数和借位标志,SUBB A,#data,双字节指令,累加器减寄存器内容和借位标志,SUBB A,Rn(n=07),单字节指令,累加器减RAM内容和借位标志,SUBB A,Ri(i=0,1),单字节指令,累加器内容减内RAM内容或SFR和借位标志,SUBB A,direct,双字节指令,SUBB类指令小结,6、减量 DEC,累加器内容减“1”,DE

28、C A,单字节指令,寄存器内容减“1,DEC Rn,单字节指令,内RAM或SFR内容减“1,DEC direct,单字节指令注意:DPTR没有减一指令,内RAM内容减“1,DEC Ri,双字节指令,DEC 类指令小结,7、MUL,MUL A B,DIV A B,单字节指令,8、DIV,单字节指令,CY=0,二、逻辑运算类(24条),用到的指令助记符有9种:,包括与、或、异或、清除、求反、移位等操作,ANL、ORL、XRL、CLR、CPL、RL、RLC、RR、RRC,1、逻辑与ANL(6条),累加器内容逻辑与立即数,ANL A,#data,双字节指令MOV A,#10101111BANL A,#

29、0FH,累加器内容逻辑与寄存器内容,ANL A,Rn(n=07),单字节指令,累加器内容逻辑与内RAM内容,ANL A,Ri(i=0,1),单字节指令,累加器内容逻辑与内RAM内容或SFR,ANL A,direct,双字节指令,累加器内容逻辑与内RAM或SFR,ANL direct,A,二字节指令,立即数逻辑与RAM或SFR,ANL direct,#data,三字节指令,ANL 类传送指令小结,读修改写,2、逻辑或 ORL(6条),累加器内容逻辑或立即数,ORL A,#data,双字节指令,累加器内容逻辑或寄存器内容,ORL A,Rn(n=07),单字节指令,累加器内容逻辑或内RAM内容,OR

30、L A,Ri(i=0,1),单字节指令,累加器内容逻辑或内RAM内容或SFR,ORL A,direct,双字节指令,累加器内容逻辑或内RAM或SFR,ORL direct,A,二字节指令,立即数逻辑或RAM或SFR,ORL direct,#data,三字节指令,ORL 类传送指令小结,读修改写,3、逻辑异或XRL(6条),累加器内容逻辑异或立即数,XRL A,#data,双字节指令,累加器内容逻辑异或寄存器内容,XRL A,Rn(n=07),单字节指令,累加器内容逻辑异或内RAM内容,XRL A,Ri(i=0,1),单字节指令,累加器内容逻辑异或内RAM内容或SFR,XRL A,direct,

31、双字节指令,累加器内容逻辑异或内RAM或SFR,XRL direct,A,二字节指令,立即数逻辑异或RAM或SFR,XRL direct,#data,三字节指令,XRL类传送指令小结,读修改写,例:根据累加器中40的状态修改P1端口位40的状态,ANL A,#00011111B,ANL P1,#11100000B,ORL P1,A,;A屏蔽前3位,保留后5位,;A的后5位是“1”,使P1口 相应位置“1”,P1前3位不变,;P1屏蔽后5位,保留前3位,仅修改了 P1 口的后 5 位,“读”“修改”“写”,4 累加器清除与求反指令(2条),累加器A清零,CLR A,单字节指令,累加器A按位取反,

32、CPL A,单字节指令,例:给出下面程序分析执行结果,CLR A,CPL A,;(A)=00H,;(A)=FFH,4 移位指令(4条),累加器内容循环左移一位,RL A,单字节指令,累加器内容连同进位标志循环左移一位,单字节指令,RLC A,CY,累加器内容循环右移一位,RR A,单字节指令,累加器内容连同进位标志循环右移一位,单字节指令,RRC A,CY,移位指令小结,累加器清除与求反指令小结,例:设(A)=5AH、CY=1,RL A,RLC A,RR A,RRC A,;(A)=B4H,;(A)=2DH,;(A)=B5H,;(A)=ADH,01011010,01011010,0,1,0,1,

33、0,0,3.5控制转移和位操作指令(本章难点),控制转移指令用来控制程序执行的流向,是程序设计中应用最为灵活的指令。控制转移指令的实质是:更改PC的值。,一、控制转移指令共有17条,无条件转移指令,条件转移指令,子程序的调用返回等,1、无条件转移指令,长转移,LJMP addr16,三字节指令,绝对转移,AJMP addr11,AJMP 将程序存储器分为32页,由PC1511(页面地址)决定,每页2KB,A10A0页内地址。双字节指令,转移范围 2KB,转移范围 64KB,在2区形成11位目标地址,.,1000H17FFH,保持高5位地址以确定某区,0 0 0 1 0,例如 AJMP add1

34、1 在2区的执行过程,2KB范围内,00001,短转移,SJMP rel,指令中的rel是8位带符号补码,范围-128+127。可由汇编自动计算并填入指令代码,也可手工计算。,双字节指令,计算式:rel=目标地址-(PC+2),例:分析指令 SJMP$,符号“$”指本指令执行前的PC值,指令SJMP$执行后,程序仍然转移回此指令继续执行,计算机于是不断的执行这一指令,进入等待状态。,原地踏步,rel=0FEH=(-2)补,间接长转移,JMP A+DPTR,单字节指令,无条件转移指令小结,(散转指令),可以有n个目标地址,则顺序执行,2、条件转移指令,累加器为零则转移,JZ rel,双字节指令,

35、JNZ rel,双字节指令,累加器不为零则转移,则转移,则顺序执行,则转移,累加器与立即数不等则转移,CJNE A,#data,rel,三字节指令,寄存器与立即数不等则转移,CJNE Rn,#data,rel,三字节指令,顺序,转移,转移,顺序,累加器与内RAM或SFR不等则转移,CJNE A,direct,rel,三字节指令,内RAM与立即数不等则转移,CJNE Ri,#data,rel,三字节指令,顺序,转移,转移,顺序,寄存器减“1”不等零则转移,DJNZ Rn,rel(n=07),双字节指令,DJNZ direct,rel,三字节指令,内RAM或SFR减“1”不为零则转移,顺序,转移,

36、转移,顺序,条件转移类指令小结,3、子程序调用及返回指令,长调用,LCALL addr16,三字节指令,;在调用子程序之前,保护断点地址,绝对调用,ACALL addr11,双字节指令,;在调用子程序之前,保护断点地址,子程序返回,RET,单字节指令,中断返回,RETI,单字节指令,“0”触发器,优先级状态,4、空操作,NOP,单字节指令,子程序调用及返回指令小结,二、布尔处理类指令(17条),指令中位地址的助记符有多种表达方式:,直接地址方式:如 0D5H,点操作符方式:如 PSW.5,位名称方式:如 F0,1、布尔传送类,直接寻址位送进位标志,MOV C,bit,双字节指令,进位标志送直接

37、寻址位,MOV bit,C,双字节指令,2、布尔状态控制指令,清进位标志,CLR C,单字节指令,清直接寻址位,CLR bit,双字节指令,置进位标志,SETB C,单字节指令,置直接寻址位,SETB bit,双字节指令,进位标志求反,CPL C,单字节指令,直接寻址位求反,CPL bit,双字节指令,3、布尔逻辑运算指令,进位标志逻辑与直接寻址位,ANL C,bit,双字节指令,进位标志逻辑与直接寻址位的反码,ANL C,/bit,双字节指令,进位标志逻辑或直接寻址位,ORL C,bit,双字节指令,进位标志逻辑或直接寻址位的反码,ORL C,/bit,双字节指令,4、布尔条件转移指令,进位

38、标志为“1”则转移,JC rel,双字节指令,JNC rel,双字节指令,进位标志为“0”则转移,直接寻址位为“1”则转移,JB bit,rel,三字节指令,直接寻址位为“0”则转移,JNB bit,rel,三字节指令,直接寻址位为“1”则转移并将该位复位,JBC bit,rel,三字节指令,布尔处理指令小结,布尔处理指令小结,;(R0)=200,;P1.7变反(1 s),;P1.7为低电平,;(1 s),;(1 s),;(R0)0 则转(2s),1s,1s,1s,2s,10s,例:分析下面程序,P1.7,100个脉冲,作业,3.43.93.103.11-13-12-13-13-13-14-1、23-153-19-13-21-13-24,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号