版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3.1 指令格式及常用符号指令格式及常用符号本章内容:本章内容:3.2 80C51的寻址方式的寻址方式 3.3 数据传送类指令(数据传送类指令(29条)条)3.4 算术运算类指令(算术运算类指令(24条)条)3.5 逻辑运算与循环类指令(逻辑运算与循环类指令(24条)条)3.6 控制转移类指令(控制转移类指令(17条)条)3.7 位操作类指令(位操作类指令(17条)条)第第3 3章章 80C5180C51的指令系统的指令系统 3.1 3.1 指令格式及常用符号指令格式及常用符号3.1.1 3.1.1 机器指令的编码格式机器指令的编码格式 单字节指令单字节指令 8 8位编码仅为操作码位编码仅为操
2、作码:指令指令 INC A,编码为,编码为04H。A隐含在操作码中。隐含在操作码中。 0000 0100INC A高高5位为操作码,低位为操作码,低3位为存放操作数的寄存器位为存放操作数的寄存器编码。如:编码。如:MOV A,R0 8 8位编码含有操作码和寄存器编码位编码含有操作码和寄存器编码编码为编码为1110 1000B,可表示为,可表示为E8H(低(低3位位000为寄存器为寄存器R0的编码)。的编码)。1110 1000MOV A,R0寄存器号寄存器号 双字节指令双字节指令 第一字节表示操作码,第二个字节表示参与操作第一字节表示操作码,第二个字节表示参与操作的数据或数据存放的地址。的数据
3、或数据存放的地址。如:如:MOV A,#50H 编码为编码为0111 0100B,0101 0000B。其十六进制。其十六进制表示为表示为74H,50H。操作数操作数0101 0000MOV A,#50H操作码操作码0111 0100 三字节指令三字节指令 指令的第一字节表示该指令的操作码,后两个字指令的第一字节表示该指令的操作码,后两个字节表示参与操作的数据或数据存放的地址。节表示参与操作的数据或数据存放的地址。如:如:MOV 20HMOV 20H,#50H#50H 编码为编码为0111 0101B0111 0101B,0010 0000B0010 0000B,0101 0000B0101
4、0000B。可表示为可表示为75H75H,20H20H,50H50H。操作数操作数0010 0000MOV 20H,#50H操作码操作码0111 01010101 00003.1.2 3.1.2 符号指令的格式符号指令的格式一般格式:操作助记符操作助记符 目的操作数目的操作数,源操作数,源操作数;注释;注释 操作数个数操作数个数无操作数无操作数单操作数单操作数两操作数两操作数三操作数三操作数 如:如:ANL A,40H ANL为为“与与”操作的助记符,立即数操作的助记符,立即数“40H”为为源操作数,累加器源操作数,累加器A为目的操作数。为目的操作数。 MOV A,30H;机器码为;机器码为7
5、4H、30H; MOV ACC,30H;机器码为;机器码为75H、E0H、30H。3.1.3 3.1.3 符号指令及其注释中常用的符号符号指令及其注释中常用的符号Rn(n=07)-当前工作寄存器组中的寄存器之一;当前工作寄存器组中的寄存器之一;Ri(i=0,1)-当前工作寄存器组中的当前工作寄存器组中的R0或或R1; -间址寄存器前缀;间址寄存器前缀;#data -8位立即数;位立即数;#data16-16位立即数;位立即数;direct-片内低片内低128个个RAM单元地址及单元地址及SFR地地址(可用符号名称表示);址(可用符号名称表示);addr11-11位目的地址;位目的地址;addr
6、16-16位目的地址;位目的地址;rel-补码形式表示的补码形式表示的8位地址偏移量,值在位地址偏移量,值在128127范围内;范围内;bit-片内片内RAM位地址、位地址、SFR的位地址(可用的位地址(可用符号名称表示);符号名称表示);/-位操作数的取反操作前缀;位操作数的取反操作前缀;()- 表示表示 地址单元或寄存器中的内容;地址单元或寄存器中的内容; -箭头右边的内容送入箭头左边的单元中。箭头右边的内容送入箭头左边的单元中。3.2 80C51的寻址方式的寻址方式 寻找寻找操作数操作数或或指令的地址指令的地址的方式。的方式。 寻址方式有七种寻址方式有七种,即:寄存器寻址、,即:寄存器寻
7、址、直接寻址、寄存器间接寻址、立即寻址、直接寻址、寄存器间接寻址、立即寻址、基址寄存器加变址寄存器变址寻址、相基址寄存器加变址寄存器变址寻址、相对寻址和位寻址。对寻址和位寻址。寻址方式及对应的存储器空间寻址方式及对应的存储器空间寻址方式寻址方式寻址空间寻址空间立即寻址立即寻址程序存储器程序存储器直接寻址直接寻址片内片内RAMRAM低低128128字节、字节、SFRSFR寄存器寻址寄存器寻址工作寄存器工作寄存器R0R0R7,A,B,DPTRR7,A,B,DPTR寄存器间址寄存器间址片内片内RAM:R0,R1,SPRAM:R0,R1,SP片外片外RAM:R0,R1,DPTRRAM:R0,R1,DP
8、TR变址寻址变址寻址程序存储器程序存储器:A+PC,A+DPTR:A+PC,A+DPTR相对寻址相对寻址程序存储器程序存储器256256字节范围内字节范围内:PC+:PC+偏移量偏移量位寻址位寻址片内片内RAMRAM的位寻址区的位寻址区(20H(20H2FH2FH字节地址字节地址) )可位寻址的可位寻址的SFRSFR 操作数在寄存器操作数在寄存器中,指令中直接给出该寄中,指令中直接给出该寄存器名称。具有较高的传送和运算速度。存器名称。具有较高的传送和运算速度。3.2.1 3.2.1 寄存器寻址寄存器寻址例:MOV A,R0 寻址空间寻址空间R0R7AB(AB)DPTR例:MOV A,R0 ;设
9、(R0)=30H,0工作寄存器组00H00H7FH7FH30H30H80H80HFFHFFHA AE8HFFFFHFFFFHMOV A,R00000H0000HROMSFRRAM结果:(A)=30H 操作码操作码后的字节是后的字节是操作数的地址操作数的地址,操作数,操作数本身放在该地址指示的存储单元中。本身放在该地址指示的存储单元中。3.2.2 3.2.2 直接寻址直接寻址寻址空间寻址空间片内片内RAM( 128字节)字节)SFR(常采用符号形式)(常采用符号形式)如:MOV A,50H 例:MOV A,50H ;设(50H)=3AH50H50H7FH7FH3AH3AH80H80HFFHFFH
10、A AFFFFHFFFFHMOV A,50H0000H0000HROMSFRRAM结果:(A)=3AHE5H50H 寄存器中内容为地址,从该地址取操作数。寄存器中内容为地址,从该地址取操作数。3.2.3 3.2.3 寄存器间接寻址寄存器间接寻址寻址空间寻址空间片内片内RAM片外片外RAM间址寄存器间址寄存器R0或或R1DPTR片内片内RAM片外片外RAM(256字节)字节)P2口线,页面方式口线,页面方式MOVMOVX例:MOV A, R0 ;设(R0)=30HE6HFFFFHFFFFHMOV A, R00000H0000HROM结果:(A)=5AH30H30H7FH7FH5AH5AH80H8
11、0HFFHFFHA ASFRRAM30HR0R0 编码中直接给出操作数。操作码之后的操编码中直接给出操作数。操作码之后的操作数称为立即数。作数称为立即数。3.2.4 3.2.4 立即寻址立即寻址 寻址空间:寻址空间:ROM 立即数立即数 单字节、双字节单字节、双字节 标识:标识: 源操作数源操作数例:MOV A, #50H ;7FH7FH50H80H80HFFHFFHA AFFFFHFFFFHMOV A,#50H0000H0000HROMSFRRAM结果:(A)=50H74H50H 以一个基地址加上一个偏移量地址形成操以一个基地址加上一个偏移量地址形成操作数地址。作数地址。 3.2.5 3.2
12、.5 变址寻址变址寻址 寻址空间:寻址空间:ROM基址寄存器:基址寄存器:DPTRPC偏移量寄存器:偏移量寄存器:A操作数地址:操作数地址:例:MOVC A, A+DPTR ;7FH7FH0FH80H80HFFHFFHA AFFFFHFFFFHMOVC A, A+DPTR 0000H0000HROMSFRRAM结果:(A)=88H93H88H00H24H2400H+0FH= 240FH 240FHDPLDPLDPHDPH88H 以以PC当前值为基准,加上指令中相对偏移当前值为基准,加上指令中相对偏移量量 rel 形成目标地址。形成目标地址。 3.2.6 3.2.6 相对寻址相对寻址PC 目标地
13、址:目标地址:+rel PC的当前值:读出该的当前值:读出该2字节或字节或3字节的跳转指字节的跳转指令后,令后,PC指向的下条指令的地址。指向的下条指令的地址。 rel 取值范围是取值范围是:128127。(补码)。(补码) 例:JC rel ;设 rel75H,PSW.7为 “1”7FH7FH1000 000080H80HFFHFFHPSWPSW1002H1002HJC rel1000H1000HROMSFRRAM结果:程序转向1077H单元40H75H1001H1001H10771077H H1000H+02H= 1002H PC值值字节数字节数1002H+75H= 1077H 当前当前P
14、C值值新新PC值值 对位地址中内容进行操作。操作的是对位地址中内容进行操作。操作的是8位位二进制数中的某一位。二进制数中的某一位。 3.2.7 3.2.7 位寻址位寻址SFR的寻址位常用符号位地址表示,如:的寻址位常用符号位地址表示,如: CLR ACC.0 MOV 30H,C 寻址空间寻址空间片内片内RAM中位寻址区中位寻址区SFR中的可寻址位中的可寻址位3.3 数据传送类指令(数据传送类指令(29条)条)传送类指令分成两大类传送类指令分成两大类 MOV,一般传送,一般传送 非非MOV,特殊传送,特殊传送, 如:如:MOVC、MOVX、PUSH、POP、XCH、XCHD及及SWAP。 16位
15、传送位传送 将源操作数将源操作数data16(通常是地址常数)送(通常是地址常数)送入目的操作数入目的操作数DPTR中。中。例如:例如: MOV DPTR,#1234H 3.3.1 3.3.1 一般传送指令一般传送指令结果为结果为: (DPH)=12H,(,(DPL)=34H。 8位传送位传送 data不能用作目的字节;不能用作目的字节; 源字节与目的字节不相同(除源字节与目的字节不相同(除direct外);外); 寄存器寻址与寄存器及其间址间不相互传送。寄存器寻址与寄存器及其间址间不相互传送。传送关系传送关系目的目的源操作数源操作数AARnRndirectdirectRiRi#data 以以
16、A为目的为目的 例:若(例:若(R1)= 20H,(,(20H)= 55H 执行执行 MOV A,R1MOV A,RndirectRi#data结果:(结果:(A)= 55H。 以以Rn 为目的为目的 例:若(例:若(50H)= 40H 执行执行 MOV R6,50H MOV Rn,Adirect#data结果:(结果:(R6)= 40H。 以以direct 为目的为目的 例:若(例:若(R1)=50H,(50H)=18H 执行执行MOV 40H,R1 结果:(结果:(40H)=18H。 MOV direct,Rndirect1Ri#dataA 以以Ri为目的为目的 例:若(例:若(R1)=3
17、0H,(,(A)=20H 执行执行 MOV R1,A结果:(结果:(30H)=20HMOV Ri,Adirect#data ROM查表查表 MOVC A,A+PC 以以PC的当前值的当前值与与偏移量之和偏移量之和作为作为程序存储器地址程序存储器地址,将该地址单元的内容传送到将该地址单元的内容传送到A。指令执行后。指令执行后PC的内的内容不变。容不变。3.3.2 3.3.2 特殊传送指令特殊传送指令 MOVC A,A+DPTR 以以DPTR与与偏移量之和偏移量之和作为作为程序存储器地址程序存储器地址,将,将该地址单元的内容传送到该地址单元的内容传送到A。指令执行后。指令执行后DPTR的的内容不变
18、。内容不变。 读写片外读写片外RAM 读片外读片外RAM MOVX A,DPTR MOVX A,Ri 写片外写片外RAM MOVX DPTR,A MOVX Ri,A 堆栈操作堆栈操作 操作操作 PUSH direct POP direct 原则:向地址高端生长,后进先出原则:向地址高端生长,后进先出 SP :指向栈顶(活动端),复位值:指向栈顶(活动端),复位值07H例:若(例:若(SP)=07H,(,(40H)=88H 执行执行 PUSH 40H 结果:(结果:(SP)=08H,(,(08H)=88H。 数据交换数据交换例:若(例:若(R0)=80H,(,(A)=20H。 执行执行 XCH
19、A,R0交换类交换类指令,指令, 传送是传送是双向双向的的 字节交换字节交换XCH A,RndirectRi结果:(结果:(A)=80H,(,(R0)=20H。 半字节交换半字节交换 例:若(例:若(R0)30H,(,(30H)67H, (A)20H。执行执行 XCHD A,R0 后,(后,(A)27H,(,(30H)60H。 XCHD A,Ri SWAP A例:若(例:若(A)30H,执行,执行SWAP A后,(后,(A)03H。3.4 算术运算类指令(算术运算类指令(24条)条) 加、减、乘、除及加加、减、乘、除及加1和减和减1等等 多数以多数以A为源操作数,同时又使为源操作数,同时又使A
20、为目的操作为目的操作数。数。 PSW中的中的OV、CY、AC CY,无符号整数多字节加、减法、移位等,无符号整数多字节加、减法、移位等 OV,可方便的控制补码运算,可方便的控制补码运算 AC,用于,用于BCD码运算。码运算。3.4.1 3.4.1 加法加法 不带进位加不带进位加影响:影响:CY、AC、OV和和PADD A,RndirectRi#data例例 若(若(A)=84H,(,(30H)=8DH,执行指令,执行指令 ADD A,30H 之后,由于:之后,由于: 结果:(结果:(A)=11H,(,(CY)=1,(,(AC)=1,(OV)=1(D7有进位,有进位,D6无进位),(无进位),(
21、P)=0。 (A) 1000 0100(A) 1000 0100 + (30H) 1000 1101+ (30H) 1000 1101 进位进位 1 1 11 1 1 结果结果 0001 00010001 0001 CYAC 带进位加带进位加 源操作数源操作数与与A的内容的内容相加相加再再与与CY相加相加,结果送入,结果送入目的操作数目的操作数A中。中。ADDC A,RndirectRi#data CY是在该指令执行之前已存在的值是在该指令执行之前已存在的值。 增增1 1源操作数的内容加源操作数的内容加 1 ,结果再送回原单元。这,结果再送回原单元。这些指令中些指令中仅仅 INC A 影响影响
22、P标志。标志。INC RndirectRiDPTRA 十进制调整十进制调整 对对A中刚进行的中刚进行的2个个BCD码加法的结果调整。码加法的结果调整。 DA A 当当A中中低低4位数出现了非位数出现了非BCD码或码或低低4位位产生进位(产生进位(AC=1),则在),则在低低4位加位加6。 当当A中中高高4位数出现了非位数出现了非BCD码或码或高高4位产位产生进位(生进位(CY=1),则在),则在高高4位加位加6。 调整后,调整后,CY表示结果的百位值表示结果的百位值例:若(例:若(CY)0,A和和R2内容见下式。执行指令:内容见下式。执行指令: ADD A,R2 DA A 结果:结果:1 23
23、( BCD数)数) (A) 0101 0110(A) 0101 0110 + (R2) 0110 0111+ (R2) 0110 0111 1011 1101 1011 1101 调整 0110 01100110 0110 结果 1 0010 0011 0010 0011 3.4.2 3.4.2 减法减法 带借位减带借位减SUBB A,RndirectRi#data影响:影响:CY、AC、OV和和P例例 若(若(A)=C9H,(,(R2)=54H,(,(CY)=1,执行指令执行指令 SUBB A,R2 之后,由于:之后,由于: 即:(即:(A)=74H,(,(CY)=0,(,(AC)=1,(O
24、V)=1(位(位6有借位,位有借位,位7无借位),(无借位),(P)=0。 (A) 1100 1001(A) 1100 1001 - (CY) 1- (CY) 1 1100 1000 1100 1000 - (R2) 0101 0100- (R2) 0101 0100 结果结果 0111 01000111 0100 减减1 操作数内容减操作数内容减 1 ,结果再送回原单元。,结果再送回原单元。 仅仅 DEC A 影响影响P标志。其余指令都不影响标标志。其余指令都不影响标志位的状态。志位的状态。DEC RndirectRiA3.4.3 3.4.3 乘法乘法MUL AB 例:例: 若(若(A)=5
25、0H,(,(B)=A0H,执行指令,执行指令 MUL AB 之后,(之后,(A)=00H,(,(B)=32H,(,(OV)=1,(,(CY)=0。 当乘积大于当乘积大于FFH时,溢出标志位(时,溢出标志位(OV)=1。 标志标志CY总是被清总是被清0。X X ABAB乘数乘数被乘数被乘数积积3.4.4 3.4.4 除法除法例:例: 若(若(A)=FBH(251),(),(B)=12H(18),执行指令),执行指令 DIV AB 之后,(之后,(A)=0DH,(B)=11H,(,(OV)=0,(,(CY)=0。DIV AB 除数为除数为0,商的,商的A和和B内容不确定,且(内容不确定,且(OV)
26、=1 。 标志标志CY总是被清总是被清0。X X ABAB除数除数被除数被除数整数部分整数部分商商 余数部分余数部分3.5 逻辑运算与循环类指令(逻辑运算与循环类指令(24条)条) 逻辑运算逻辑运算:与、或、异或、清与、或、异或、清0和取反和取反 A清清0操作对操作对P标志有影响。标志有影响。 对对A循环移位循环移位 方向:左、右方向:左、右 CY:带、不带:带、不带 3.5.1 3.5.1 逻辑与逻辑与 源操作数与直接地址单元内容相源操作数与直接地址单元内容相与与 例例: 若(若(A)=C3H,(,(R0)=AAH,执行指令,执行指令 ANL A,R0 之后,(之后,(A)=82H。ANL
27、direct,A#dataANL A,RndirectRi#data 源操作数与累加器源操作数与累加器A的内容相的内容相与与3.5.2 3.5.2 逻辑或逻辑或例例: 若(若(A)=C3H,(,(R0)=55H,执行指令,执行指令ORL A,R0 之后,(之后,(A)=D7H。 源操作数与直接地址单元内容相源操作数与直接地址单元内容相或或ORL direct,A#dataORL A,RndirectRi#data 源操作数与累加器源操作数与累加器A的内容相的内容相或或3.5.3 3.5.3 逻辑异或逻辑异或 例例 若(若(A)=C3H,(,(R0)=AAH,执行指令,执行指令 XRL A,R0
28、 之后,(之后,(A)=69H。 源操作数与直接地址单元内容相源操作数与直接地址单元内容相异或异或XRL direct,A#dataXRL A,RndirectRi#data 源操作数与累加器源操作数与累加器A的内容相的内容相异或异或3.5.4 3.5.4 累加器清累加器清0 0和取反和取反 把把A的内容取反,结果仍在的内容取反,结果仍在A中。中。CPL ACLR A例例 若(若(A)=A5H,执行指令,执行指令 CLR A 之之后,(后,(A)=00H。 把把A的内容清的内容清 0 ,结果仍在,结果仍在A中。中。3.5.5 3.5.5 累加器循环移位累加器循环移位 RR A A的内容的内容循
29、环循环右右移移1位。位。RRC A A的内容的内容连同连同CY位循环右移位循环右移1位。位。RL A A的内容的内容循环循环左左移移1位。位。RLC A A的内容连的内容连同同CY位位循环左移循环左移1位。位。 “累加器累加器A内容乘内容乘2”的任务可以利用指令的任务可以利用指令RLC A方便地完成。方便地完成。 例:若(例:若(A)= BDH = 1011 1101B,(,(CY)0。执行指令。执行指令RLC A APSW01011 11013.6 控制转移类指令(控制转移类指令(17条)条) 程序执行是顺序的,改变程序执行顺程序执行是顺序的,改变程序执行顺序,称作序,称作程序转移程序转移。
30、 控制程序转移采用转移指令控制程序转移采用转移指令无条件转移无条件转移条件转移条件转移子程序调用与返回子程序调用与返回 短跳转短跳转3.6.1 3.6.1 无条件转移无条件转移 AJMP addr11 PC先指向先指向AJMP的下一条指令,再把的下一条指令,再把11位位地址码传送到地址码传送到PC100,PC1511不变。不变。 当前当前PC值(下条指令地址)高值(下条指令地址)高5位,可确定位,可确定32个个2KB段之一。因此,段之一。因此,AJMP转移范围为包转移范围为包含含AJMP下条指令在内的下条指令在内的2KB区间。区间。 长跳转长跳转 LJMP addr16 指令第二、三字节地址码
31、分别装入指令第二、三字节地址码分别装入PC的高的高8位和低位和低8位中。位中。 可转到可转到64KB的的ROM空间的任何单元。空间的任何单元。 例:若例:若“NEWADD”表示转移目标地址表示转移目标地址1234H。执行执行 LJMP NEWADD 时,目标地址将装入时,目标地址将装入PC中,中,程序转向地址程序转向地址 1234H 处运行。处运行。 相对转移相对转移 SJMP rel 第二字节为第二字节为 rel,(补码),(补码),00H7FH为正为正向转移,向转移,80HFFH(1281)反向转移。反向转移。 rel 是目标地址的标号,由汇编程序自动计算,是目标地址的标号,由汇编程序自动
32、计算,并填入指令代码中。并填入指令代码中。 例:若例:若“NEWADD”表示地址表示地址0123H,PC当前当前值为值为0100H。执行。执行 SJMP NEWADD 后,程序转后,程序转向向 0123H 执行(此时执行(此时re l= 0123H(01002)= 21H)。)。 散转移散转移 JMP A+DPTR转移地址由转移地址由DPTR和和A相加相加形成。例:形成。例: MOV DPTR,#TABLE JMP A+DPTRTABLE:AJMP ROUT0; (A)=00H 时时 AJMP ROUT1; (A)=02H 时时 AJMP ROUT2; (A)=04H 时时 AJMP ROUT
33、3; (A)=06H 时时3.6.2 3.6.2 条件转移条件转移 累加器判累加器判0转移转移 例:若例:若A原来为原来为00H,则:,则: JNZ L1 ;程序往下执行;程序往下执行 INC A ; JNZ L2 ;程序转向;程序转向L2 处执行处执行 JZ rel A的内容为的内容为 0转移转移JNZ rel A的内容的内容不不为为 0转移转移 比较不相等转移比较不相等转移 对目的字节与源字节比较,不等则转移对目的字节与源字节比较,不等则转移 比较时影响进位标志比较时影响进位标志 若目的字节等于源字节,程序将继续往下执行。若目的字节等于源字节,程序将继续往下执行。CJNE A,direct
34、,rel CJNE ARnRi,data,rel 减减1不为不为0转移转移 每执行一次,循环控制单元减每执行一次,循环控制单元减1,并判其是否为,并判其是否为 0 不为不为0,则转移到目标地址继续循环;,则转移到目标地址继续循环; 为为0,则结束循环,程序往下执行。,则结束循环,程序往下执行。DJNZ Rn,rel DJNZ direct ,rel 例例 有一段程序如下:有一段程序如下: MOV 23H,#0AH CLR ALOOPX:ADD A,23H DJNZ 23H,LOOPX SJMP $ 结果结果: (A)=10+9+8+7+6+5+4+3+2+1=37H3.6.3 3.6.3 调用
35、与转移调用与转移 子程序的子程序的短短调用和调用和长长调用调用 目标地址形成方式与目标地址形成方式与AJMP和和LJMP相似相似 不影响任何标志不影响任何标志 调用调用 ACALL addr11 LCALL addr16 对于对于ACALL,子程序首址在包含当前指令(即调,子程序首址在包含当前指令(即调用指令的下一条指令)的第一个字节在内的用指令的下一条指令)的第一个字节在内的2K字字节范围内。节范围内。 对于对于LCALL,子程序的首址可在,子程序的首址可在64K字节范围内的字节范围内的任何位置。任何位置。 例:若(例:若(SP)=07H,标号,标号“XADD”表示的实际地表示的实际地址为址
36、为0345H,PC的当前值为的当前值为0123H。执行指令。执行指令 ACALL XADD 后,(后,(PC)+2=0125H,其低,其低8位的位的25H压入堆栈的压入堆栈的08H单元,其高单元,其高8位的位的01H压入堆栈的压入堆栈的09H单元。(单元。(PC)=0345H,程序转向目标地址,程序转向目标地址0345H 处执行。处执行。 RET从堆栈中弹出压入堆栈保护的断点地址,并从堆栈中弹出压入堆栈保护的断点地址,并送入指令计数器送入指令计数器PC,返回到断点处继续执行。,返回到断点处继续执行。 返回返回 RETI专用于中断服务程序返回,除返回中断断点专用于中断服务程序返回,除返回中断断点
37、处执行主程序以外,处执行主程序以外,并有清除内部相应的中断状态并有清除内部相应的中断状态寄存器(以保证正确的中断逻辑)的功能寄存器(以保证正确的中断逻辑)的功能。RET RETI 3.6.4 3.6.4 空操作空操作 NOP 不产生任何控制操作,但:不产生任何控制操作,但: PC的内容加的内容加1 消耗消耗1个机器周期个机器周期 空间上占用一个字节。因此,常用来实现空间上占用一个字节。因此,常用来实现较短时间的延时。较短时间的延时。 。3.7 位操作类指令(位操作类指令(17条)条) 以位为单位进行的各种操作。以位为单位进行的各种操作。位地址形式位地址形式 直接地址(如,直接地址(如,0D5H
38、) 点操作符(如,点操作符(如,0D0H.5、PSW.5等)等) 位名称(如,位名称(如,F0) 伪指令定义(如,伪指令定义(如,MYFLAG BIT F0)。)。几种形式表示的都是几种形式表示的都是PSW中的位中的位5。 MOV bit,C MOV C ,bit 指定位地址中内容与指定位地址中内容与CY的内容的相互传送。的内容的相互传送。3.7.1 3.7.1 位传送位传送 例:若(例:若(CY)=1,(,(P3)=1100 0101B,(,(P1)=0011 0101B。执行以下指令:。执行以下指令: MOV P1.3,C MOV C,P3.3 MOV P1.2,C 结果结果:(:(CY)
39、=0,P3的内容未变,的内容未变,P1的内容变为的内容变为 0011 1001B。 位清位清03.7.2 3.7.2 位状态设置位状态设置 位累加器位累加器CY清清0 例:例: 若(若(P1)=1001 1101B。执行指令。执行指令CLR P1.3 后,结果为:后,结果为:( P1 )=1001 0101B。CLR C CLR bit 位地址内容清位地址内容清0 位置位位置位 例例 若(若(P1)=1001 1100B。执行指令。执行指令SETB P1.0 后,(后,(P1)1001 1101B。 位累加器位累加器CY置置1SETB C SETB bit 位地址内容置位地址内容置1 位逻辑位
40、逻辑“与与”3.7.3 3.7.3 位逻辑运算位逻辑运算 例:例: 若(若(P1)=1001 1100B,(,(CY)1。执行。执行指令指令ANL C, P1.0 后,结果为:后,结果为:P1 内容不变,而内容不变,而(CY)0。 位地址单元内容取反后的值与位累加器内容位地址单元内容取反后的值与位累加器内容“与与”位地址单元内容与位累加器内容位地址单元内容与位累加器内容“与与”ANL C,bit ANL C,/bit 位逻辑位逻辑“或或” 位地址单元内容取反后的值与位累加器内容位地址单元内容取反后的值与位累加器内容“或或” 位地址单元内容与位累加器内容位地址单元内容与位累加器内容“或或”ORL
41、 C,bit ORL C,/bit 位取反位取反CPL C CPL bit 判判CY转移转移3.7.4 3.7.4 位判跳(条件转移)位判跳(条件转移) 当(当(CY)=1,转向,转向PC当前值与当前值与rel之和的目之和的目标地址执行,否则程序顺序执行。标地址执行,否则程序顺序执行。 JC rel JNC rel 当(当(CY)=0,转向,转向PC当前值与当前值与rel之和的目之和的目标地址去执行,否则程序顺序执行。标地址去执行,否则程序顺序执行。 判判bit转移转移JB bit,rel JBC bit,rel JNB bit,rel 当(当( bit )=1,转向,转向PC当前值与当前值与
42、rel之和的目标地之和的目标地址执行,否则程序顺序执行。址执行,否则程序顺序执行。 当(当( bit )=0,转向,转向PC当前值与当前值与rel之和的目标地之和的目标地址执行,否则程序顺序执行。址执行,否则程序顺序执行。 与上面指令相同,但还有将该位清与上面指令相同,但还有将该位清0功能。功能。 1、80C51系列单片机的指令系统有何特点?系列单片机的指令系统有何特点?2、80C51单片机有哪几种寻址方式?各寻址方式所对单片机有哪几种寻址方式?各寻址方式所对应的寄存器或存储器空间如何?应的寄存器或存储器空间如何?3、访问特殊功能寄存器、访问特殊功能寄存器SFR可以采用哪些寻址方式?可以采用哪
43、些寻址方式?4、访问内部、访问内部RAM单元可以采用哪些寻址方式?单元可以采用哪些寻址方式?5、访问外部、访问外部RAM单元可以采用哪些寻址方式?单元可以采用哪些寻址方式?6、访问外部程序存储器可以采用哪些寻址方式?、访问外部程序存储器可以采用哪些寻址方式?7、为什么说布尔处理功能是、为什么说布尔处理功能是80C51单片机的重要特点?单片机的重要特点?8、对于、对于80C52单片机内部单片机内部RAM还存在高还存在高128字节,应字节,应采用何种方式访问?采用何种方式访问?思考题与习题思考题与习题9、试根据指令编码表写出下列指令的机器码。、试根据指令编码表写出下列指令的机器码。 (1)MOV A,#88H (2)MOV R3,50H (3)MOV P1.1,#55H (4)ADD A,R1 (5)SETB 12H10、完成某种操作可以采用几条指令构成的指令序列实现,试、完成某种操作可以采用几条指令构成的指令序列实现,试写出完成以下每种操作的指令序列。写出完成以下每种操作的指令序列。 (1)将)将R0的内容传送到的内容传送到R1; (2)内部)内部RAM单元单元60H的内容传送到寄存器的内容传送到寄存器R2; (3)外部)外部RAM单元单元1000H的内容传送到内部
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教部编版二年级语文上册第15课《八角楼上》精美课件
- 吉首大学《会展策划与管理》2021-2022学年第一学期期末试卷
- 《机械设计基础》-试卷17
- 吉林艺术学院《现代教育研究方法》2021-2022学年第一学期期末试卷
- 2024年共建单位挂牌合同范本
- 吉林师范大学《篆书理论与技法II》2021-2022学年第一学期期末试卷
- 2024年大亚湾旅游合作协议书模板范本
- 2022年公务员多省联考《申论》真题(山西省市卷)及答案解析
- 面粉厂小型设备转让协议书范文
- 钢结构建筑顶升复位专项方案
- 初中校本课程教材《心理健康教育》
- 高中生物人教版必修一动画大全课件
- 部编版五年级道德与法治上册第8课《美丽文字 民族瑰宝》优质课件+说课稿
- 仓储物流安全隐患排查表-附带法规依据
- 新概念英语第二册课文(全中文)
- DB32T 4031-2021 建筑垃圾填筑路基设计与施工技术规范
- 湖南省药品零售企业药店药房名单目录
- DB4401-T 10.5-2019 +反恐怖防范管理++第5部分:教育机构-(高清现行)
- 尿毒症脑病课件
- 小学体育与健康人教二年级全一册第一部分课程目标与教学内容设计构想体育教学设计武术
- 广告制作技术方案
评论
0/150
提交评论