《单片机:第3章 MCS-51单片机指令系统》由会员分享,可在线阅读,更多相关《单片机:第3章 MCS-51单片机指令系统(111页珍藏版)》请在金锄头文库上搜索。
1、第3章 MCS-51MCS-51单片机指令系统单片机指令系统本章内容本章内容MCS-51指令系统的分类、格式及一般说明 寻址方式 分类指令 掌握MCS-51指令系统的各种寻址方式掌握每条指令的格式、功能及用法掌握指令的操作过程中操作数的变化情况以及对标志位的影响。学会正确选用指令完成简单的任务学习目的学习目的MCS-51指令系统指令系统3.1 概概 述述 一、指令系统概述:一、指令系统概述:一、指令系统概述:一、指令系统概述: 指令:CPU根据人们的意图来执行某种操作的命令。指令系统:是计算机所能够执行的全部指令的集合。程序:是按人们的要求所编制的指令操作序列。程序设计语言:是编写程序的某种规
2、则。三类编程语言:机器语言、汇编语言、高级语言MCS-51指令系统指令系统二、二、二、二、MCS-51MCS-51指令系统特点:指令系统特点:指令系统特点:指令系统特点: 1. 1. MCS-51MCS-51系系列列单单片片机机的的指指令令系系统统共共有有111111条条指指令令,按按功功能能可可分分为为数数据据传传送送、算算术术操操作作、逻逻辑辑操操作作、程程序序转转移移、位位操操作作等等5 5大大类。类。2. 2. 指令长度较短:单字节指令指令长度较短:单字节指令4949条,条, 双字节指令双字节指令4646条,三字节指令条,三字节指令1616条。条。 MCS-51指令系统指令系统3. 指
3、令执行时间快:单机器周期指令64条,双机器周期指令45条,四机器周期指令2条。 4. 有丰富的位操作指令。 MCS-51指令系统指令系统三、指令包含的基本内容三、指令包含的基本内容 每一条指令通常由操作码和操每一条指令通常由操作码和操作数两部分组成。作数两部分组成。 1.操作码:表示执行什么性质和类型的操作。 2.操作数:表示参加操作的数的本身或操作数所在的地址。 3.操作结果的去向:指定操作结果存放的地址。 MCS-51指令系统指令系统四、指令的表示方法四、指令的表示方法 1.二进制代码表示机器语言指令 例:例:0111 0100 0011 0000 2.助记符表示汇编语言指令 例:例:MO
4、V A, #30H MCS-51指令系统指令系统MOVMOV表示表示“传送传送”助记符。助记符是指助记符。助记符是指令操作码的表现形式,用指令功能的令操作码的表现形式,用指令功能的英文缩写字母表示。助记符指令英文缩写字母表示。助记符指令“翻翻译译”成机器指令才能被识别和执行,成机器指令才能被识别和执行,这个过程叫这个过程叫“汇编汇编”。 助记符指令机器指令通过汇编 MCS-51指令系统指令系统五、指令的格式五、指令的格式操作码操作码+ +操作数操作数 ( (操作码操作码 D D ,S)S) 标号标号:操作码操作码 目的操作数目的操作数D,D,源操作数源操作数S;S;注注释释 1.操作码:是用与
5、指令功能一致的25个英文缩写表示。2.操作数:是参与操作的数据来源和操作结果存放的目的单元。无操作数指令其操作数隐含在操作码中。 MCS-51指令系统指令系统4.双字节指令:是指令长度为2个字节, 操作码和操作数各占1个字节,共有45条; 例: MOV A,#0AH (机器码: 01110100 0001010), 代码740AH;作用是将立即数10送入累加器A中。 3.单字节指令:指令长度为1个字节,包含有操作码和操作数,共有49条;例: INC DPTR (机器码: 10100011), 代码A3H, 功能是将数据指针内容加1。 MCS-51指令系统指令系统5.三字节指令:指令长度为3个字
6、节, 操作码占1个字节,操作数各占2个字节,共有17条。例: MOV 20H,40H ;(机器码: 10000101 01000000 00100000), 代码854020H(注意,机器码中S、D与汇编指令的位置相反);功能是将40H中的内容送到20H单元中。 MCS-51指令系统指令系统六、操作数的类型六、操作数的类型1.1.一位数(位型):一位数(位型):是用于内部是用于内部RAMRAM,查查询某一位的状态(询某一位的状态(0/10/1),用来控制程序),用来控制程序跳转等。跳转等。2.2.8 8位无符号数(字节型):位无符号数(字节型):是用于内外是用于内外存储单元的算术存储单元的算术
7、/ /逻辑运算(逻辑运算(02550255)。)。 操作数类型可以按立即数,位操作数,寄存器操作操作数类型可以按立即数,位操作数,寄存器操作数以及存储器操作数来分。其中立即数,寄存器操数以及存储器操作数来分。其中立即数,寄存器操作数以及存储器操作数都可以是作数以及存储器操作数都可以是8 8位或者位或者1616位。位。MCS-51指令系统指令系统3.3.8 8位带符号数(短整型)位带符号数(短整型) :是用于内外是用于内外存储单元的算术存储单元的算术/ /逻辑运算(逻辑运算(-128127-128127)。)。5.5.1616位带符号数(整型):位带符号数(整型):是用于内外存是用于内外存储单元
8、的算术储单元的算术/ /逻辑运算:奇数高字节,逻辑运算:奇数高字节,偶数低字节(偶数低字节(-3276832767-3276832767)。)。 4.4.1616位无符号数(字型):位无符号数(字型):是用于内外存是用于内外存储单元的算术储单元的算术/ /逻辑运算:奇数高字节,逻辑运算:奇数高字节,偶数低字节(偶数低字节(065535065535)。)。 MCS-51指令系统指令系统七、堆栈操作七、堆栈操作堆栈:片内堆栈:片内RAMRAM中一个特殊空间,中一个特殊空间,称为称为SPSP寄存器寄存器( (堆栈指针堆栈指针),),用来用来存放一些临时性的重要数据和存放一些临时性的重要数据和信息。好
9、比仓库一样。信息。好比仓库一样。操作:送一个地址信号到操作:送一个地址信号到SPSP寄存器,就完寄存器,就完成堆栈的建立成堆栈的建立。这个地址就是这个地址就是“栈底栈底”。后面的数据按后面的数据按后进先出后进先出的原则的原则“进栈进栈”和和“出栈出栈”。进栈一次,。进栈一次,SPSP自动加自动加1 1。出栈一。出栈一次,次,SPSP自动减少自动减少1 1。所以,。所以,SPSP始终指向栈顶。始终指向栈顶。堆栈概念MCS-51指令系统指令系统表示工作寄存器中表示工作寄存器中8 8个个工作寄存器工作寄存器R0R0R7R7之一。之一。 表示工作寄存器中可作地表示工作寄存器中可作地址寄存器的址寄存器的
10、R0R0或或R1R1。作为作为间址寄存器间址寄存器RjRj只能使用只能使用R0R0、R1R1寄存器。寄存器。Ri(i07):Rj(j01):3.2 3.2 指令符号说明指令符号说明MCS-51指令系统指令系统代表8位内部数据存储器单元的地址或特殊功能寄存器地址。 代表16位目的地址。表示8位常数。 代表16位常数。 direct:#data:#data16:addr16:MCS-51指令系统指令系统rel:表示表示8位带符号的偏移字节。 addr11:表示表示11位目的地址。 bit:代表代表内部RAM或特殊功能寄存器中的直接寻址位。 :是:是间址寄存器前缀。 MCS-51指令系统指令系统3.
11、3 3.3 寻址方式寻址方式 一、一、立即寻址:立即寻址:直接给出操作数而不是地址直接给出操作数而不是地址的寻址方式。的寻址方式。 该该操操作作数数称称为为立立即即数数,跟跟在在操操作作码码后后,在数前加在数前加“# #”符号为前缀。符号为前缀。共有七种寻址方式,一条指令可能含多种寻共有七种寻址方式,一条指令可能含多种寻址方式:址方式:立即寻址立即寻址、直接寻址直接寻址、寄存器寻址寄存器寻址、寄存器间接寻址寄存器间接寻址、变址寻址变址寻址( (基址寄存器基址寄存器+ +变变址寄存器间接寻址址寄存器间接寻址) )、相对寻址相对寻址、位寻址位寻址。MCS-51指令系统指令系统例:例:MOV AMO
12、V A,#30H#30H 机器码:机器码:74 3074 30功能:功能:将立即数将立即数30H送到累加送到累加器器A中,操作数中,操作数A A的地址隐含在的地址隐含在操作码中。操作码中。 MCS-51指令系统指令系统二、直接寻址:直直接接给给出出操操作作数数地地址址的的寻寻址址方方式式。操操作作数数为为内内部部128128个个单单元元的的RAMRAM(数数据据存存储储器器)中中的的数数据据,或或特特殊殊功功能能寄寄存存器器SFRSFR中中的的数数据据,并并直接用对应的地址表示。直接用对应的地址表示。寻址范围:可用于访问寻址范围:可用于访问程序存储器程序存储器,也可,也可用于访问用于访问数据存
13、储器数据存储器。 MCS-51指令系统指令系统1.1.访问程序存储器访问程序存储器 直接给出程序存储器的直接给出程序存储器的1616位地址或位地址或1111位地位地址。址。 有长转移有长转移LJMP addr16LJMP addr16、绝对转移绝对转移LJMP LJMP addr11addr11,长调子长调子LCALL addr16 LCALL addr16 与与 绝对调绝对调子子ACALL addr11ACALL addr11等指令。等指令。 MCS-51指令系统指令系统2.2.访问数据存储器访问数据存储器 直直接接寻寻址址地地址址(directdirect)为为8 8位位,可可访访问问三三
14、种种存存储储空空间间:特特殊殊功功能能寄寄存存器器、片片内内RAMRAM的的低低128128单单元元及及位位地址空间。地址空间。MCS-51指令系统指令系统例:例:MOV ACC,#30H机器码:机器码:75 E0 30功能:功能:将立即数将立即数30H送到累加器送到累加器A中。注意,中。注意,这里的这里的ACCACC就是累加器就是累加器A A。其地址是其地址是E0HE0H。与与前一个例子比较,前者前一个例子比较,前者A A是是立即寻址立即寻址方式,方式,后者后者ACCACC是是直接寻址直接寻址方式。二者指令形式上方式。二者指令形式上相同,但二者相同,但二者机器码不同机器码不同,功能相同。,功
15、能相同。 MCS-51指令系统指令系统例:例:MOV A,30H机器码:机器码:E5 30功能:功能:将将片内片内RAM 30H单元中单元中的内容送到累加器的内容送到累加器A中。中。 MCS-51指令系统指令系统MOV A, #30H7430程序存储器操作码操作数A80指令执行后,指令执行后,A=30H30来看具体数字变化来看具体数字变化MCS-51指令系统指令系统E530程序存储器操作码操作数MOV A, 30HA407F片内RAM30指令执行后,指令执行后,A=7FH7F比较后面的例子比较后面的例子MCS-51指令系统指令系统注意:直接寻址注意:直接寻址是访问特殊功能是访问特殊功能寄存器的
16、寄存器的唯一唯一方式。方式。 例例: MOV PSW,#20H功功能能:将将立立即即数数20H送送到到PSW中中,PSW可可以以作作为为直直接接寻寻址址寄寄存存器器的的符符号地址号地址。 MCS-51指令系统指令系统例例: ORL C, 32H 功功能能:进进位位位位C与与位位地地址址32H的的内内容相或后结果送至进位位。容相或后结果送至进位位。 直接寻址访问位地址直接寻址访问位地址MCS-51指令系统指令系统三、寄存器寻址三、寄存器寻址以寄存器的内容为操作数的寻址方式。以寄存器的内容为操作数的寻址方式。可进行寄存器寻址的寄存器有:工作寄存可进行寄存器寻址的寄存器有:工作寄存器组器组R0R7R
17、0R7、累加器累加器A A、寄存器寄存器B B、数据指数据指针针DPTRDPTR、C C。MCS-51指令系统指令系统例: ADD A, R2 ; A A+R2 MOV R3, A ; R3 A INC R0 ; R0 R0+1 MCS-51指令系统指令系统四、寄存器间接寻址四、寄存器间接寻址以寄存器的内容为地址,以该地址中的内以寄存器的内容为地址,以该地址中的内容为操作数的寻址方式。容为操作数的寻址方式。工作寄存器工作寄存器R0R0、R1R1和专用寄存器和专用寄存器数据指针数据指针DPTRDPTR可用于间接寻址,在寄存器前加可用于间接寻址,在寄存器前加“ ”符号作前缀。符号作前缀。MCS-5
18、1指令系统指令系统用用R0、R1作地址指针,作地址指针,MOV指令访问指令访问片内片内RAM。用用R0、R1、DPTR作地址指针,作地址指针,MOVX指令访问片外指令访问片外RAM。规则规则MCS-51指令系统指令系统A3050例:例:MOV A,R1间址寻址间址寻址:指令执行后,:指令执行后,片内片内RAM50H单元中的内单元中的内容容4EH送至累加器送至累加器A。寄存器寻址寄存器寻址:指令执:指令执行后,行后,R1中的内容中的内容50H送至累加器送至累加器A。例:例: MOV A,R1R1504E片内RAMR1A503050504E比较比较寄存器寻址寄存器寻址和和寄存器间接寻址寄存器间接寻
19、址MCS-51指令系统指令系统例:例:MOVX DPTR, A指令执行后,累加器指令执行后,累加器A的内容送至片外的内容送至片外RAM2000H单元。单元。50片外RAMDPTRA2000302000H30MCS-51指令系统指令系统五、变址寻址方式五、变址寻址方式真正操作数地址是以某个寄存器(程序真正操作数地址是以某个寄存器(程序计数器计数器PC或数据指针或数据指针DPTR)为基地址,为基地址,再加上一个地址偏移量再加上一个地址偏移量(A中的内容中的内容)来构来构成,寻址该地址单元,读取数据。成,寻址该地址单元,读取数据。用于访问程序存储器,只用于读取,不用于访问程序存储器,只用于读取,不能
20、存放。主要用于查表性质的访问。能存放。主要用于查表性质的访问。MCS-51指令系统指令系统例:例:MOVC A,A+DPTR基址为基址为2000H,加,加30H后,读后,读2030H内容,指令执行后,内容,指令执行后,A=1AHDPTRA2000301A程序存储器程序存储器2030H+20002030301A基址寄存器:基址寄存器: PC (程序计数器)程序计数器) 或或 DPTR (数据指针)数据指针)变址寄存器:变址寄存器: A格式格式:MCS-51指令系统指令系统六、相对寻址六、相对寻址以当前以当前程序计数器程序计数器PCPC内容与给定的偏移量内容与给定的偏移量相对地址相对地址relre
21、l之和作为新的之和作为新的PCPC值值( (转移地址转移地址) )的寻址方式。的寻址方式。用于访问程序存储器,应用于程序转移类指用于访问程序存储器,应用于程序转移类指令。令。偏移量:以补码表示,偏移量:以补码表示,-128+127。目的地址源地址指令字节数目的地址源地址指令字节数(2或或3)rel下一条指令第一字节地址下一条指令第一字节地址MCS-51指令系统指令系统例:例:SJMP 08H 机器码:机器码:80 08当前当前PC=2000H,SJMP指令是双字节,偏移量是指令是双字节,偏移量是08H,指令执行后,指令执行后,PC200AH:跳转到跳转到200AH。8008程序存储器程序存储器
22、操作码操作码操作数操作数2000双字节指令双字节指令PC2000200A200A022000+08200AMCS-51指令系统指令系统七、位寻址方式七、位寻址方式操作数是某个单元操作数是某个单元(8(8位位) )中中的某的某1 1位的寻址方式。位的寻址方式。寻址范围寻址范围: (1)片内片内RAM 20H2FH (16个单元个单元),共共128位位; (2)单元地址单元地址能被能被8整除整除的特殊功能的特殊功能寄存器寄存器SFR (共共92个个)。00H00H20H20H2FH2FH7FH7FH1FH1FH30H30H80H80HFFHFFH特殊功能寄特殊功能寄存器存器SFR RAM区区普通普
23、通RAM区区位寻址区位寻址区工作寄存器区工作寄存器区27H22H21H20H26H24H25H23H28H2FH总共总共128个可个可按位按位寻址寻址的位的位单元地址单元地址07 06 05 04 03 02 01 000F 0E 0D 0C 0B 0A 09 0817 16 15 14 13 12 11 101F 1E 1D 1C 1B 1A 19 1827 26 25 24 23 22 21 202F 2E 2D 2C 2B 2A 29 2837 36 35 34 33 32 31 303F 3E 3D 3C 3B 3A 39 3847 46 45 44 43 42 41 407F 7E
24、7D 7C 7B 7A 79 78位位地址地址17D7 D6 D5 D4 D3 D2 D1 D0MCS-51指令系统指令系统操作数表示方法操作数表示方法: (1)直接用位地址表示。直接用位地址表示。(2)直接用名加位数表示。直接用名加位数表示。例例: 20H单元第单元第07位对应的位地址是位对应的位地址是00H07H;21H单元第单元第07位对应的位地址是位对应的位地址是08H0FH;22H单元第单元第07位对应的位地址是位对应的位地址是10H17H 。 PSW的第的第3位用位用PSW.3表示表示; P1.0表示表示P1的第的第0位。位。 MCS-51指令系统指令系统例例1:CLR P1.0
25、;(P1.0) 0注意:注意: 1)位地址里的数据只可能是一个)位地址里的数据只可能是一个 0 或或 1 ; 2)有的位地址十分明确)有的位地址十分明确, 如如 P1.0, ACC.7等等, 有的有的位地址则位地址则“不太明确不太明确”,如:,如: MOV A,17H ; (A)(17H), 17H是字节地址是字节地址 MOV ACC.0,17H ;(ACC.0)(17H), 这里这里ACC.0 是位地址所以该指令中的是位地址所以该指令中的17H是是22H单元的第单元的第7位位例例2:SETB ACC.7 ;(ACC.7) 1MCS-51指令系统指令系统3.4 数据传送类指令数据传送类指令数据
26、传送类指令共共2929条,是将源操作数条,是将源操作数送到目的操作数。指令执行后,源操作送到目的操作数。指令执行后,源操作数不变,目的操作数被源操作数取代。数不变,目的操作数被源操作数取代。按指令的按指令的功能功能分类,可分为分类,可分为5 5大类:大类:数数据传送类据传送类(2929条);条);算术运算类算术运算类(2424条)条);逻辑运算及移位类逻辑运算及移位类(2424););控制转移控制转移类类(1717条);条);位操作类位操作类(1717条)。条)。MCS-51指令系统指令系统一、片内数据传送指令一、片内数据传送指令片内数据传送指令能完成累加器、直接地址、片内数据传送指令能完成累
27、加器、直接地址、间接地址、寄存器、立即数之间的数据传送。间接地址、寄存器、立即数之间的数据传送。ARidataRjdirect directMCS-51指令系统指令系统1. 1. 以累加器以累加器A A为一方的传送指令为一方的传送指令可实现以累加器可实现以累加器A A为一方,以某工作寄存器、为一方,以某工作寄存器、某片内某片内RAMRAM单元、某专用寄存器为另一方的单元、某专用寄存器为另一方的数据传送。数据传送。MOV A, Ri ; A Ri(i=07)MOV A, Rj ; A (Rj)(j=0,1)MOV A, direct ; A (direct)MOV Ri, A ; Ri A MO
28、V Rj, A ; (Rj) A MOV direct, A ; (direct) AMCS-51指令系统指令系统2. 2. 不以累加器不以累加器A A为一方的传送指令为一方的传送指令MOV direct, Ri ; (direct) Ri (i=07) MOV direct, Rj ; (direct) (Rj) (j=01) MOV Ri, direct ; Ri (direct) MOV Rj, direct ; (Rj) (direct) MOV direct, direct ; (direct) (direct)MCS-51指令系统指令系统MOV A, #data ; A #data
29、MOV Ri, #data ; Ri #dataMOV Rj, #data ; (Rj) #dataMOV direct, #data ; (direct) #dataMOV DPTR, #data16; DPTR #data16 3. 3. 用立即数置数的指令用立即数置数的指令MCS-51指令系统指令系统例:已知内部例:已知内部RAMRAM中中(70(70H)=60HH)=60H,(60H)=20H(60H)=20H,P1P1作为输入口,数据为作为输入口,数据为#0#0B7HB7H,执行下列程序:执行下列程序:MOV R0, #70H MOV A, R0 MOV R1, 0E0HMOV B,
30、 R1 MOV R0, P1 MOV P2, P1 ;R0 70H;A(70H)=60H;R1(E0H)=ACC=60H;B(R1)=(60H)=20H;(70H)P1=0B7H;P2 P1=0B7H执行程序后执行程序后 P2=0B7H, (寄存器寄存器) B=20H, (累加器累加器)A=60H, R0=70H, R1=60HMCS-51指令系统指令系统二、访问片外二、访问片外RAMRAM的传送指令的传送指令MOVX A, Ri; A (Ri)MOVX Ri, A; (Ri) ARiRi指定的是指定的是8 8位地址,可访问位地址,可访问256256个片外个片外RAMRAM单元单元。MOVX
31、A, DPTR; A (DPTR)MOVX DPTR, A; (DPTR) ADPTR包含包含16位地址,由位地址,由P0口决定低口决定低8位地址,位地址,P2口决定高口决定高8位地址,可访问位地址,可访问64K片外片外RAM单元。单元。MCS-51指令系统指令系统例:一系统有例:一系统有2 2K K外部外部RAMRAM,请设计程序请设计程序将内存将内存250250单元单元( (地址为地址为FAH)FAH)的内容送至的内容送至外存外存06500650H H单元中。单元中。MOV DPTR, #0650H ;0650H送送DPTRMOV R0, #0FAH ;0FAH送送R0MOVX A, R0
32、 ;0FAH里的内容送里的内容送AMOVX DPTR, A ;A内容送内容送0650H地址地址MCS-51指令系统指令系统三、读程序存储器指令(基址寄存器加变三、读程序存储器指令(基址寄存器加变址寄存器间址指令)址寄存器间址指令)这两条指令多用于查表程序。这两条指令多用于查表程序。MOVC A,A+DPTR; A (A+DPTR)MOVC A,A+PC ; PC PC+1 ; A (A+PC)MCS-51指令系统指令系统例:例:累加器累加器A的内容为一的内容为一BCD数(数(09),求用查),求用查表法获得相应的表法获得相应的ASCII码数。码数。表格:表格: ASCII BCD 39 . .
33、 . 31 30TABTAB+1TAB+9019.MCS-51指令系统指令系统近程查表近程查表子程序子程序 INC A2100: MOVC A, A+PC2101: RETTAB: DB 30H DB 31H DB 39H (若初始若初始A=0) ; AA+1(则则A=1); A(PC+1+A) (则则A(2102); 返回返回(一字节指令,一字节指令,PC+1)(读读;表格后,表格后,A=30H);表格表格 DB 30H, 地址地址2102H DB 31H DB 39HMCS-51指令系统指令系统 ;DPTR#TAB(标号为常数标号为常数);A(TAB+A);返回返回 ;表格表格 DB 30
34、H DB 31H DB 39H远程查表远程查表(用用DPTR) MOV DPTR, #TAB MOVC A,A+DPTR RET TAB: DB 30H DB 31H DB 39HMCS-51指令系统指令系统DPTR作基址寄存器时,表格可放在作基址寄存器时,表格可放在64K存贮空存贮空间的任何地址,称为间的任何地址,称为远程查表远程查表。PC作为基址寄存器时,表格只能放在该条指令下作为基址寄存器时,表格只能放在该条指令下的的255单元中,表格大小与位置受一定限制,称为单元中,表格大小与位置受一定限制,称为近程查表近程查表。MCS-51指令系统指令系统四、交换指令四、交换指令XCH A, Ri
35、;XCH A,Rj ;XCH A,direct;XCHD A, Rj ;SWAP A ;A Ri (i=07) A (Rj) (j=0,1)A (direct)A03 (Rj)03(低低4位位)A03 A47(高低两半高低两半字字节数据内容交数据内容交换)MCS-51指令系统指令系统五、进栈出栈指令堆栈是在片内堆栈是在片内RAM中按照中按照“先进后出,后进先出先进后出,后进先出”原则设置的专用存储区。数据的进栈出栈由栈指原则设置的专用存储区。数据的进栈出栈由栈指针寄存器针寄存器SP(栈底地址栈底地址)统一管理。统一管理。进栈指令:进栈指令:PUSH directPUSH direct; SP
36、SP SP SP1 1 (SP) (direct) (SP) (direct)出栈指令:出栈指令:POP directPOP direct;(direct) (SP)(direct) (SP) SP SP-1 SP SP-1MCS-51指令系统指令系统SPSP60H例:已知例:已知SP=60H, A=30H, B=70H, 执行下列指令执行下列指令626160SP30H61HPUSH A PUSH BPOP ASP= A= B= 30H70H62H70H61HSP70H指令执行过程:指令执行过程:先将先将30H压入堆栈压入堆栈,再将再将70H压入压入堆栈堆栈,再将再将70H弹出堆栈到累加器弹出
37、堆栈到累加器A中。中。MCS-51指令系统指令系统3.5 算术操作类指令共共24条指令,分为加法、减法、加一、减一与其他条指令,分为加法、减法、加一、减一与其他算术操作指令算术操作指令5个小类。对标志位个小类。对标志位C(进位标志进位标志)、AC(辅助进位标志辅助进位标志)、OV(溢出标志溢出标志)有影响。有影响。MCS-51指令系统指令系统一、加法指令一、加法指令1 1、不带进位位加法、不带进位位加法ADD A, Ri ;AA+Ri (i=07)ADD A, Rj ;AA+(Rj) (j=01)ADD A, direct ;AA+directADD A, #data ;AA+#data MC
38、S-51指令系统指令系统2.2.带进位位加法带进位位加法ADDC A, Ri ; AA+Ri+CADDC A, Rj ; AA+(Rj)+CADDC A, direct ; AA+direct+CADDC A, #data ; AA+#data+CMCS-51指令系统指令系统影响标志位:影响标志位:无符号数相加后整个字节无符号数相加后整个字节有溢出有溢出 C1相加后低半个字节有溢出相加后低半个字节有溢出AC1最高位和次高位有变化时,最高位和次高位有变化时,表示进位表示进位(有符号数有符号数)OV1MCS-51指令系统指令系统二、减法指令二、减法指令带借位位减法指令带借位位减法指令SUBB A,
39、 Ri ;AA-C-Ri (i=07)SUBB A,Rj ;AA-C-(Rj)(j=01)SUBB A, direct ;AA-C-directSUBB A, #data ;AA-C- #data MCS-51指令系统指令系统影响标志位影响标志位不够减不够减C1低半字节不够减低半字节不够减AC1 相减时最高位和次高位不同时借位相减时最高位和次高位不同时借位OV1MCS-51指令系统指令系统1. 1. 乘法指令乘法指令( (无符号数无符号数) )MUL AB ; AB B70A70影响标志位:影响标志位:总有:总有: C0若积若积255: OV1功能:将累加器功能:将累加器A A中的数据与寄存器
40、中的数据与寄存器B B中的数据相乘中的数据相乘, , 并将积的并将积的低低8 8位位存放在存放在A A中,中,高高8 8位位存放在存放在B B中。中。三、乘除法指令三、乘除法指令MCS-51指令系统指令系统2. 除法指令除法指令(无符号数无符号数)DIV AB影响标志位:影响标志位:总有:总有: C0若除数若除数0: OV1 除数除数0: OV0功能:将累加器功能:将累加器A A中的数据除以寄中的数据除以寄存器存器B B中的数据中的数据, , 并将并将商商存放在存放在A A中,中,余数余数存放在存放在B B中。中。A A/ /B A(B A(商商) ),B(B(余数余数) )MCS-51指令系
41、统指令系统四、十进制调整指令四、十进制调整指令DA A把把A中两个中两个BCD数相加之和作数相加之和作加加6进行修正,进行修正,调整为调整为2位位BCD码数。因为,码数。因为,BCD码中码中10101111在十进制中没有在十进制中没有对应项,当运算结果大于对应项,当运算结果大于9时,就会产生错误。时,就会产生错误。DA指令指令就是对就是对BCD码十进制数加法运算结果作码十进制数加法运算结果作加加6进行修正进行修正。特点特点: (1 1)只能用在对)只能用在对BCDBCD码数进行码数进行ADDADD或或ADDC ADDC 操作后使用。减法不能用此指令。操作后使用。减法不能用此指令。 (2 2)影
42、响标志位:有进位时)影响标志位:有进位时 C C1 1。MCS-51指令系统指令系统五、加一指令五、加一指令INC A ;AA+1INC Ri ;RiRi+1(i=07)INC Rj ;(Rj)(Rj)+1(j=01)INC direct ;directdirect+1INC DPTR ;(DPTR) (DPTR)+1不影响标志位不影响标志位MCS-51指令系统指令系统六、减一指令六、减一指令DEC A ;AA-1DEC Ri ;RiRi-1(i=07)DEC Rj ;(Rj)(Rj)-1(j=01)DEC direct ;directdirect-1不影响标志位。不影响标志位。MCS-51指
43、令系统指令系统例:编写例:编写4 4位压缩位压缩BCDBCD码数相加程序:被码数相加程序:被加数放在加数放在3030H H、31H31H单元,加数放在单元,加数放在3232H H、33H33H单元;要求和放在单元;要求和放在3030H H、31H31H单元中。单元中。MCS-51指令系统指令系统MOV R0,#30H;MOV R1,#32H;MOV A, R0 ;ADD A,R1 ;DA A ;MOV R0, A;INC R0 ;INC R1;MOV A,R0 ;ADDC A,R1 ;DA A ;MOV R0, A;地址指针指向被加数地址指针指向被加数(个位个位,十位十位)地址指针指向加数地址
44、指针指向加数(个位个位,十位十位)将被加数送到将被加数送到A中中AA(被加数被加数)+加数加数(32H单元中单元中)作十进制调整作十进制调整(加加6修正修正)调整后的个、十位数送回调整后的个、十位数送回30H单元单元调整地址指针调整地址指针,30H+1H=31H调整地址指针,指向百位、千位调整地址指针,指向百位、千位地址指针指向被加数地址指针指向被加数(百位百位,千位千位)地址指针指向加数地址指针指向加数(百位百位,千位千位)作十进制调整作十进制调整百、千位相加调整后结果送百、千位相加调整后结果送31HMCS-51指令系统指令系统3.6 逻辑操作类指令共共24条,分为与、或、异或、条,分为与、
45、或、异或、A操作指令。操作指令。一、一、与与指令指令ANL A,RiANL A,RjANL A,directANL A,#dataANL direct, AANL direct, #data; A A Ri(i=07); A A (Rj) (j=01); A A direct; A A #data; direct direct A; direct direct #dataMCS-51指令系统指令系统二、二、或或指令指令ORL A, Ri ;A ARi(i=07) ORL A, Rj ;A ARj(j=01) ORL A, direct ;AAdirectORL A, #data ;AA #da
46、ta ORL direct, A ;directAdirect ORL direct, #data;directA#data MCS-51指令系统指令系统三、三、异或异或指令指令XRL A, Ri ;AA Ri(i=07) XRL A, Rj ;AA Rj(j=01) XRL A,direct ;AA directXRL A,#data ;AA #data XRL direct, A ;directA direct XRL direct, #data ;directA #data MCS-51指令系统指令系统四、四、A 操作指令操作指令CPL ACLR ARL ARR ARLC A ;RRC
47、A ;CACA; A A (A取反取反); A 0 (A清零清零); An+1 An, A0 A7 (A循环左移循环左移1次次); An An+1, A7 A0 (A循环右移循环右移1次次)累加器累加器A带进位标志带进位标志C循环左移循环左移1次次累加器累加器A带进位标志带进位标志C循环右移循环右移1次次注:左移注:左移1相当于乘相当于乘2,右移相当于除,右移相当于除2MCS-51指令系统指令系统3.7 位操作类指令1.位寻址区位寻址区内部内部RAM中中20H2FH单元是位寻址区,该区的每一单元是位寻址区,该区的每一位都赋予了一个位地址,位地址为:位都赋予了一个位地址,位地址为:00H7FH。
48、2.特殊功能寄存器:特殊功能寄存器:P0、P1、P2、P3、TCON、SCON、IE、IP、PSW、A、B的每一位都有一个位地址。的每一位都有一个位地址。一、位地址空间MCS-51指令系统指令系统1. 直接地址方式:直接指明地址。直接地址方式:直接指明地址。如:如: 50H, 07H, 等等位地址位地址00H7FH在内部在内部RAM中,地址连续。中,地址连续。位地址位地址80HFFH在特殊功能寄存器中,地址不连续。在特殊功能寄存器中,地址不连续。二、位地址的表示方式二、位地址的表示方式MCS-51指令系统指令系统2.点操作符方式点操作符方式如:如:PSW.5 表示表示PSW寄存器中的第五位,寄
49、存器中的第五位,其位地址为其位地址为D5H。3.位名称方式位名称方式如:如: RS0,RS1,TR0,TR1 等等CACF0RS1 RS0 OV-PPSWD7D6D5D4D3D2 D1D0D0HMCS-51指令系统指令系统4.用户定义名方式用户定义名方式伪指令伪指令 bit ,定义某个定义某个位地址位地址的标号。的标号。格式:格式: 符号符号 bit 位地址位地址作用:作用: 符号符号代表代表位地址位地址,表明在程序中,表明在程序中, 符号符号跟跟位地址位地址相同。且定义后,程序相同。且定义后,程序 中不能改变。中不能改变。如:如: FLG bit F0; 经定义,指令中用经定义,指令中用FL
50、G代替代替F0。 AL bit P0.0; P0.0的位地址赋予给的位地址赋予给AL。MCS-51指令系统指令系统1. 1.1.位传送指令位传送指令位传送指令位传送指令位传送指令位传送指令MOV C, bit ; C bitMOV bit, C ; bit C 三、位操作类指令作用作用:将某个位数据将某个位数据bit(或或C)值送给值送给 C (或或bit) 。且不。且不影响其他标志位。影响其他标志位。bit为某个位数据,用位地址表示:为某个位数据,用位地址表示:如如10H。00H7FH在片内在片内RAM(20H2FH单元单元)中。中。80HFFH对应于对应于11个特殊功能寄存器。个特殊功能寄
51、存器。注意注意:要想传:要想传送位数据,只能通过送位数据,只能通过C来完成。来完成。MCS-51指令系统指令系统2. 2. 2. 位逻辑操作指令位逻辑操作指令位逻辑操作指令位逻辑操作指令位逻辑操作指令位逻辑操作指令CPL CCLR CSETB CCPL bitCLR bitSETB bitANL C,bitANL C, /bitORL C, /bitORL C,bit; C C(取反取反); C 0(清零清零); C 1 (置置1); bit取反取反; bit 0(清零清零); bit 1(置置1); C C bit(C和和bit相与相与); C C bit,“/”表示取反,但表示取反,但;
52、不改变原来不改变原来bit中的值中的值; C C bit (位相或位相或,bit值不值不变变); C C bit (C和和bit相或相或)MCS-51指令系统指令系统3. 3. 3. 位条件转移指令位条件转移指令位条件转移指令位条件转移指令位条件转移指令位条件转移指令若条件满足则若条件满足则PC值改变,实现程序的转移。否则值改变,实现程序的转移。否则,顺序执行后面程序顺序执行后面程序JC rel ;当当C=1时时, 转移到目标地址转移到目标地址: PC+2+relPCJNC rel ;当当C=0时时, 转移到目标地址转移到目标地址: PC+2+relPCJB bit, rel ;当当bit=1
53、时时, 转移到目标地址转移到目标地址: PC+3+relPCJNB bit, rel ;当当bit=0时时, 转移到目标地址转移到目标地址: PC+3+relPCJBC bit, rel ;若若bit1 则则清清bit=0,并转移到目标地址并转移到目标地址: ; PC+3+relPCMCS-51指令系统指令系统3.8 程序转移指令一、无条件转移指令一、无条件转移指令一、无条件转移指令一、无条件转移指令1. 1. 绝对转移指令(短跳转)绝对转移指令(短跳转)AJMP addr11 ; PC PC+2 PC100 addr11(目标地址目标地址:是高:是高5位不变,低位不变,低11位发生变化位发生
54、变化)机器码:机器码: a10 a9 a8 0 0 0 0 1 a7 a6 a5 a4 a3 a2 a1 a0由由11位直接地址位直接地址addr11和指令操作码和指令操作码00001组成组成, 为什为什么是么是11位地址?这由位地址?这由64KB地址寻址范围来决定:地址寻址范围来决定:MCS-51指令系统指令系统MCS-51系列单片机可以在系列单片机可以在64KB地址范围内寻址,地址范围内寻址,绝对转移指令绝对转移指令(短跳转短跳转)的转移范围只在的转移范围只在PC当前值所当前值所指的指的2KB地址范围内。地址范围内。例例:当前当前PC=1402H, addr11=200H, 转移转移PC=
55、1200HPC= 0001 0100 0000 0010(1402H)addr11= 0000 0010 0000 0000 (200H) (11位位)转移转移PC=0001 0010 0000 0000 (后后11位发生变化位发生变化)一页:一页: 256个地址单元(个地址单元(00HFFH) 一区:一区: 8页,共页,共2KB地址单元;地址高地址单元;地址高5位决定区。位决定区。 64K: 32区,区,256页。页。MCS-51指令系统指令系统F800HFFFFHF000HF7FFHE800HEFFFHE000HE7FFHD800HDFFFHD000HD7FFHC800HCFFFHC000
56、HC7FFHB800HBFFFHB000HB7FFHA800HAFFFHA000HA7FFH9800H9FFFH9000H97FFH8800H8FFFH8000H87FFH7800H7FFFH7000H77FFH6800H6FFFH6000H67FFH5800H5FFFH5000H57FFH4800H4FFFH4000H47FFH3800H3FFFH3000H37FFH2800H2FFFH2000H27FFH1800H1FFFH1000H17FFH0800H0FFFH0000H07FFH程序存储器程序存储器64K地址空间地址空间一区一区一区一区MCS-51指令系统指令系统2. 长转移指令长转移
57、指令三字节指令,不影响标志位,可在三字节指令,不影响标志位,可在64KB地地址范围内无条件转移。址范围内无条件转移。LJMP addr16 ; PC addr16MCS-51指令系统指令系统3. 相对短转移相对短转移机器码:机器码: 40H rel本指令在本指令在PC内容加内容加2所指地址上所指地址上,以以rel:-128 +127 为偏移量,在一页地址范围(为偏移量,在一页地址范围( 256个个地址单元)内实现相对短转移。地址单元)内实现相对短转移。SJMP rel ; PC PC+2+relMCS-51指令系统指令系统4. 间接长转移指令间接长转移指令JMP A+DPTR; PC A+DP
58、TR机器码:机器码: 73H在在64KB地址范围内无条件转移。地址范围内无条件转移。例:例:A=01H,DPTR=3000H,转移地址为转移地址为PC=3000+1=3001HMCS-51指令系统指令系统例:例: 已知已知A的内容为的内容为0,2,4,6,8五个偶五个偶数中的一个,又标号数中的一个,又标号TAB的真实地址为的真实地址为1800H,试分析下列程序段的执行结果。试分析下列程序段的执行结果。 MOV DPTR, #TAB JMP A+DPTR 1800 TAB: AJMP 100H1802: AJMP 200H1804: AJMP 300H1806: AJMP 400H1808: A
59、JMP 500H;TAB送送DPTR;跳到跳到A+DPTR中中;短跳转,低短跳转,低11位变位变100H;高高5位不变,低位不变,低11位变位变200HMCS-51指令系统指令系统分析:分析: 若若A0 执行执行 TAB:AJMP 100HPC+2: 1802H: 0001 1000 0000 0010Adde11: 100H: 001 0000 0000 1900H: 0001 1001 0000 0000高高5位地址不变,低位地址不变,低11位改变位改变所以:所以: A0 程序转移到程序转移到1900H继续执行;继续执行; A2 程序转移到程序转移到1A00H继续执行;继续执行; A4 程
60、序转移到程序转移到1B00H继续执行;继续执行; A6 程序转移到程序转移到1C00H继续执行;继续执行; A8 程序转移到程序转移到1D00H继续执行;继续执行;MCS-51指令系统指令系统二、条件转移指令二、条件转移指令JZ rel; A=0 PC PC+2+rel A 0 PC PC+2(继续继续)1.判别累加器判别累加器A为零转移为零转移2.判别累加器判别累加器A非零转移非零转移JNZ rel; A0 PC PC+2+rel A = 0 PC PC+2(继续继续)MCS-51指令系统指令系统3.比较转移指令比较转移指令(不相等则转移不相等则转移)(影响标志位影响标志位)CJNE A,
61、#data, rel; #data=A, PC PC+3, C 0 ; A #data, PC PC+3+rel, C 0 ; Adirect, C0CJNE Ri, #data, rel ; Ri#data, C0CJNE Rj,#data, rel;(Rj)#data, C0比较两操作数比较两操作数, , 若不相等若不相等, , 则转移。转向目则转移。转向目标地址是将标地址是将PCPC加加3 3,再加相对地址,再加相对地址relrel构成。构成。若前操作数若前操作数 后者后者, 0C; , 0C; 否则否则, 1, 1C C。通过通过查询查询C,C,可以判断大小。可以判断大小。MCS-51
62、指令系统指令系统4.循环转移指令循环转移指令(减一不为零则转移减一不为零则转移,继续循环继续循环)DJNZ direct, rel; 功能与上面相同功能与上面相同DJNZ Ri, rel; Ri Ri1 ; 若若Ri=0 则则 PC PC+2 ; 若若Ri0 则则PC PC+2+rel作用作用: :将将Ri(directRi(direct) )中中8 8位无符号数中的内容减位无符号数中的内容减1 1并并送回送回Ri(directRi(direct) )。若若Ri(directRi(direct) )不为不为0 0,则,则PC+2+relPC+2+rel形成新地址,送给形成新地址,送给PCPC,
63、程序便转向指定程序便转向指定的目标地址去执行。否则,结束循环,顺序执行的目标地址去执行。否则,结束循环,顺序执行程序。程序。MCS-51指令系统指令系统三、调子指令三、调子指令1. 绝对调子指令绝对调子指令ACALL addr11; ; ; ; ; ; ; PC PC+2SP SP+1, 堆栈地址加堆栈地址加1(SP) PC70 ,PC低位数据送低位数据送SPSP SP+1,堆栈地址加堆栈地址加1(SP) PC158 保护返回地址保护返回地址PC100 addr11,转移地址送移地址送PCMCS-51指令系统指令系统机器码:机器码: a10 a9 a8 1 0 0 0 1 a7 a6 a5 a
64、4 a3 a2 a1 a0双字节指令,不影响标志位,在双字节指令,不影响标志位,在2KB地址范围地址范围内寻址,以调用子程序。页数决定于内寻址,以调用子程序。页数决定于addr11的的高高3位,页内地址决定于位,页内地址决定于addr11的低的低8位。高位。高5位地址不变。位地址不变。MCS-51指令系统指令系统2.长调子指令长调子指令LCALL addr16执行操作:执行操作: PC PC+3SP SP+1(SP) PC70SP SP1(SP) PC158PC addr16三字节指令,在三字节指令,在64KB地址范围内调用子程序。地址范围内调用子程序。MCS-51指令系统指令系统3.3.返主
65、指令返主指令RETPC158 (SP)SP SP-1PC70 (SP)SP SP-1执行操作:执行操作:调用子程序后必须返回主程序,因此,每种调用子程序后必须返回主程序,因此,每种子程序的最后一条指令必须是返回指令子程序的最后一条指令必须是返回指令RET。返回时完成将调子程序时压入堆栈的返回时完成将调子程序时压入堆栈的断点地断点地址送回址送回PC以恢复断点功能。堆栈遵循以恢复断点功能。堆栈遵循“后进后进先出先出”原则。原则。MCS-51指令系统指令系统4.中断返主指令中断返主指令RETI中断服务程序的最后一条指令后是中断返主指令。中断服务程序的最后一条指令后是中断返主指令。其恢复断点的操作与返
66、回指令其恢复断点的操作与返回指令RET相同。此条指相同。此条指令前必须将相应的优先级状态令前必须将相应的优先级状态触发器清触发器清0。作用作用:先将堆栈先将堆栈SP栈顶值送到栈顶值送到PC(高高8位断点地址位断点地址)(同时同时SP-1SP), 再将再将SP送到送到PC(低低8位断点地位断点地址址) (同时同时SP-1SP)。程序便返回断点地址去执程序便返回断点地址去执行。且不影响标志位。即,具备行。且不影响标志位。即,具备RET功能的同时功能的同时还打开中断。还打开中断。MCS-51指令系统指令系统5.空操作空操作NOP机器码:机器码:00;作用作用: 仅产生仅产生1个机器周期的延个机器周期
67、的延迟,并将迟,并将PC值加值加1 。MCS-51指令系统指令系统3.9 伪指令一、伪指令概述一、伪指令概述一、伪指令概述一、伪指令概述 标准的MCS-51汇编程序还定义了许多伪指令供用户使用,它是注释性的,多数伪指令汇编时不产生机器语言指令,没有对应的机器码,不令计算机做任何操作,不产生目标程序,不影响程序的执行。仅提供汇编控制信息。但伪指令对汇编程序将汇编语言源程序汇编成目标程序有用。 MCS-51指令系统指令系统二、定位伪指令二、定位伪指令二、定位伪指令二、定位伪指令 ORG mORG m 用在一段源程序或数据块的前面,说明紧随在后面的程序段或数据块的起始地址。m为十进制或十六进制数。
68、m指出该伪指令后的指令的汇编地址。在一个汇编语言源程序中允许使用多条定位伪指令,但其值应和前面生成的机器指令存放地址不重叠。例如: ORG 1000H ;程序从1000H开始 START: MOVA,#20H ;把立即数20H送入累 加器A中; MOVB,#30H ;把立即数30H送入寄 存器B中;MCS-51指令系统指令系统三、赋值伪指令三、赋值伪指令 EQU 字符串字符串X EQU 赋值项赋值项N 用于定义数或汇编符号。使得在程序中,可以用符号来代表相应的数(符号,地址或数字)。即将赋值项N的值赋予字符串X。程序中凡出现该字符串X就等同于该赋值N,其值在整个程序中有效。赋值项N可以是常数、
69、地址、标号或表达式。在使用时,必须先赋值后使用。 “字符串X”与“标号”的区别是“字符串”后无冒号,而“标号”后面有冒号。例如: ASDF EQU 30H ;ASDF 等价于30H MCS-51指令系统指令系统四、定义字节伪指令四、定义字节伪指令 DB 标号标号: DB x1, x2, xn功能是将8位数据(或8位数据组)x1, x2, xn依次存放在从当前程序存储器地址开始的存储单元中。xi可以是8位数据、ASCII码、表达式,也可以是括在单引号内的字符串。两个数据之间用逗号“,”分隔。 xi为数值常数时,取值范围为00H-FFH。xi为ASCII码时,要使用单引号,以示区别。xi为字符串常
70、数时,其长度不应超过80个字符。该伪指令经常用于定义一个常数表。 例如: DATA: DB 2AH,30H,9DH;将2AH等3个数据 装入DATA开始的3 个单元中。 MCS-51指令系统指令系统五、定义字五、定义字(双字节双字节)伪指令伪指令 DW 标号标号: DW x1, x2, xn功能是将双字节数据或双字节数据组依次存放在从标号指定地址单元开始的存储单元中。其中,xi为16位数值常数,占两个存储单元,先存高8位(存入低位地址单元中),后存低8位(存入高位地址单元中)。该伪指令经常用于定义一个地址表。 例如: DATA: DW 2AB6H,1E02H;将2AB6H等2个数 据装入DAT
71、A开始 的4个单元中。 MCS-51指令系统指令系统六、六、定义位地址符号伪指令定义位地址符号伪指令BIT 字符名称字符名称x BIT 位地址位地址n功能是用于定义某特定位的标号,将位地址n的值赋予字符名称x。程序中凡出现该字符名称x就代表该位地址。即用指令中的标号来代替项所指出的位。位地址n可以是绝对地址,也可以是符号地址。例如: P11 BIT P1.1 ;P1口位1地址91H 赋给P11 MCS-51指令系统指令系统七、七、预留存储空间伪指令预留存储空间伪指令DS 标号标号: DS n功能是从标号指定地址单元开始,预留n个存储单元,汇编时不对这些存储单元赋值。标号可以用其他形式表示。n可
72、以是数据,也可以是表达式。例如: ORG 1000H DATA: DS O7H ;从地址1000H开始保留 7个单元,其中标号 DATA可以不要 MCS-51指令系统指令系统八、八、结束汇编伪指令结束汇编伪指令END 标号标号: END 表达式表达式功能是放在汇编语言源程序的末尾,表明源程序的汇编到此结束,其后的任何内容不予理睬。 MCS-51指令系统指令系统例:比较内部例:比较内部RAM中中M1与与M2二单二单元中两无符号数的大小,大数存元中两无符号数的大小,大数存M单单元,小数存元,小数存N单元,若两数相等则将单元,若两数相等则将内部内部RAM的位的位127置置1。MCS-51指令系统指令
73、系统程序流程:M1 AA=M2?AM2?A NM2 MA MM2 N结束1 127位NNYYMCS-51指令系统指令系统程序:程序: MOV A,M1 ;A M1 CJNE A,M2,BIG ;A M2,则转移则转移PC+3+BIG SETB 127 ;置置127位为位为1(十进制表示十进制表示) RET ;子程序返回子程序返回BIG: JC LESS ; C=1 即即M1M2, A M MOV N,M2 RET LESS: MOV N,A ; M1M2 MOV M,M2 RETMCS-51指令系统指令系统MCS-51指令系统的分类、格式及一般说明 寻址方式 分类指令注意对标志位的影响(参见教材指令表格)本章小结本章小结本章小结本章小结主要内容主要内容返回目录返回目录下一章下一章