版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章第三章MCS-51MCS-51单片机指令系统单片机指令系统 基本要求:基本要求: 熟记熟记MCS-51MCS-51的主要指令及简单程序的编程的主要指令及简单程序的编程方法。方法。 难点及处理:难点及处理: MCS-51MCS-51的的111111条指令比较枯燥条指令比较枯燥 ,需要记,需要记忆,可多读一些例题并动手编一编。忆,可多读一些例题并动手编一编。 第一节第一节 指令及其表示方式指令及其表示方式一、指令的基本概念一、指令的基本概念指令让计算机做某操作所发命令指令让计算机做某操作所发命令指令系统指令系统一台计算机所有指令的集合。一台计算机所有指令的集合。MCS-51单片机共单片机共1
2、11条指令条指令,分为五大类分为五大类二、指令格式二、指令格式 1. 汇编语言指令格式汇编语言指令格式: 标号字母打头的字母、数字、下划线串;一般不超过标号字母打头的字母、数字、下划线串;一般不超过8个;个; 不与指令助记符相同;可有可无。不与指令助记符相同;可有可无。操作码必不可少操作码必不可少,不可更改不可更改.操作数可有、可无,可一可二,可是寄存器、地址、数据操作数可有、可无,可一可二,可是寄存器、地址、数据 可用十、二、十六、可用十、二、十六、BCD、ASCII表示。表示。注释可有、可无,分号打头,注释可有、可无,分号打头, 可用汉字、英文及简单的符号表示。可用汉字、英文及简单的符号表
3、示。标号标号: 操作码操作码 操作数操作数 ;注释注释;B00HLOOP: MOV B, #00H2.机器语言格式机器语言格式:单字节:单字节:双字节:双字节:NOP;空操作;空操作操作码操作码 操作数INC 00H;00H单元内容加单元内容加1三字节:三字节:操作码 操作数 操作数MOV DPTR,#2233HMOV 20H,#30H;30H送送20H单元单元每条指令字节数可从附表中查出,每条指令字节数可从附表中查出, 操作码可从附录中查出。操作码可从附录中查出。单字节、单字节、 双字节、双字节、 三字节指令三字节指令76H05H 00H75H 20H 30H90H 22H 33H第二节第二
4、节 寻址方式寻址方式 ( 后移)后移)建议学完本章后再来学本节建议学完本章后再来学本节#立即数标志立即数标志#data8、#data168位、位、16位立即数位立即数 间接寻址符号间接寻址符号几个符号说明几个符号说明AACCDirect8位片内位片内RAM地址地址addr11、addr1611位、位、16位地址位地址Rel8位,补码位,补码-128+127Bit8位片内位片内RAM位地址位地址Rn工作寄存器工作寄存器 n=0,7Ri可间接寻址的工作寄存器可间接寻址的工作寄存器 i=0、1传送类指令分:传送类指令分: 内部传送内部传送 外部传送外部传送 堆栈操作堆栈操作 数据交换数据交换将源操作
5、数所指定的内容传送至目的将源操作数所指定的内容传送至目的操作数指定的单元去,源字节内容保操作数指定的单元去,源字节内容保持不变持不变.一、内部数据传送指令一、内部数据传送指令格式格式: MOV , 功能功能第三节第三节 数据传送指令数据传送指令1 以累加器以累加器A为为 目的操作数目的操作数 MOV A, #data MOV A, direct MOV A, Rn MOV A, Ri2 以以direct为目的操作数为目的操作数 MOV direct, A MOV direct, #data MOV direct1 , direct2 MOV direct, Rn MOV direct , Ri
6、MOV A, #33HMOV A,#4050HMOV A,60HMOV A,R0MOV A,R0MOV 20H, AMOV 20H,#10HMOV 20H,10HMOV 7FH, R7MOV 00H, R13 以以Rn为目的操作数为目的操作数 MOV Rn, A MOV Rn, #data MOV Rn, direct4 以以Ri为目的操作数为目的操作数 MOV Ri, A MOV Ri, #data MOV Ri, direct注:(注:(1MOV后,源内容不变。后,源内容不变。(2Ri寻址范围寻址范围0127因此,上例中因此,上例中30H如换成如换成80H就错了就错了例:例:MOV R0,
7、 A该类指令之前要给该类指令之前要给R0送一地址送一地址MOV R0, #30HMOV R0, #80H5 MOV DPTR, #data16例例1.下列指令是否正确下列指令是否正确. MOV A,00H MOV B,#0F0H MOV R4,#0AAH MOV R4,#0AAH MOV 80H, #80H MOV P0, #80H MOV R2, 77H MOV 0C3H, #00H MOV R9, #7FH MOV R0, R1 MOV #30H,80H MOV DPH,#30H MOV DPL,#20H例例2.将数将数3AH送内部送内部 RAM20H单元单元, 试编程试编程MOV 20H
8、, # 3AH或或MOV R1,#20HMOV R1, #3AH4,7,8,9,10,11,行错,行错MOV 0F0H, #0F0HMOV DPTR, #3020H MOV A, 30H MOV 30H, 20H MOV 20H, A例例3 将将30H与与20H内容互换内容互换例例4 分别将分别将100H单元单元 (230H单元单元 (380H单元单元置全置全“1”,分别编程。,分别编程。 (1MOV 00H,#0FFH或或1MOV R0,#00H MOV R0, #0FFH或或1MOV PSW, #00H MOV R0, #0FFH(2)MOV 30H, #0FFH或或(2) MOV R0,
9、 #30H MOV R0, #0FFH(3) MOV 80H, #0FFH例例5 设设70H)=60H,(,(60H)=30H,P1口为口为 输入口,其值为输入口,其值为7BH, 下列程序后:下列程序后:MOV R0,#70HMOV A,R0MOV R1,AMOV A,R1MOV R0, P1MOV 60H,#40H(70H)= H,(60H)= H,A= H,R0= H,R1= H7B40307060例例6 将内部将内部RAM 30H开始的开始的20 个数送至个数送至50H开始的区域去。开始的区域去。 MOV R7,#14H MOV R0,#30H MOV R1,#50HLOOP:MOV A
10、,R0 MOV R1, A INC R0 INC R1 DJNZ R7,LOOP RET编程三步骤:编程三步骤:1、初始化、初始化2、数据处理、数据处理3、修改地址指针,控制程序是否结束。、修改地址指针,控制程序是否结束。二、外部数据传送指令二、外部数据传送指令1 外部外部RAM与与A的传送的传送 MOVX A,DPTR MOVX A, Ri MOVX DPTR, A MOVX Ri, A 例例7 将内部将内部RAM30H的内容传送到的内容传送到 外部外部RAM3000H单元。单元。 MOV A,30H MOV DPTR,#3000H MOVX DPTR, A例例8 将外部将外部RAM 30H
11、内容传送内容传送 到外部到外部RAM 2000H单元单元 MOV R0,#30H MOV DPTR, #3000HMOVX A,DPTRMOV DPTR, #2000HMOVX DPTR,A 或或MOV P2, #30HMOV R0,#00H MOVX A,R0 MOV DPTR,#2000H MOVX DPTR, AMOVX A,R0MOV DPTR,#2000HMOVX DPTR, A例例9 将外部将外部RAM 3000H内容传送内容传送 到外部到外部RAM 2000H单元单元 2 ROM与与A的传送的传送MOVC MOVC A,A+PC MOVC A, A+DPTR 例例10 已知数已知
12、数0-9的平方表如下的平方表如下 8000H:0 8001H:1 8002H:4 8009H:81 试根据试根据A的内容查其平方值。的内容查其平方值。 MOV DPTR, #8000H MOVC A,A+DPTR RET8000H DB 00H,01H,04H,09H,10H, 19H,24H,31H,40H,51H三、数据交换指令三、数据交换指令 1 字节交换字节交换 XCH A, Rn XCH A, Ri XCH A, direct 2 半字节交换半字节交换XCHD A, RiSWAP A例例11 将内部将内部RAM单元单元30H的低的低 4位与高位与高4位互换,并保持位互换,并保持 A的
13、内容不变。的内容不变。MOV 30H, #29HXCH A, 30HSWAP AXCH A, 30H四、堆栈操作指令 入栈:PUSH direct ;sp sp+1 (sp) (direct)出栈:POP direct ;(direct) (sp) ,sp sp-1例例13 已知已知SP=39H, DPTR=0123H PUSH DPL PUSH DPH 后后 SP=-H , (3AH)=-H, (3BH)=-H例例12 设设SP=30H,内部,内部RAM中中 (50H)=ABH,要求将此,要求将此 数压入堆栈,然后再弹到数压入堆栈,然后再弹到 A中。中。 3B2301如:如:PUSH 30H
14、如:如:POP BMOV SP,#30HPUSH 50HPOP ACC例例14 SP=32H, 30H、31H、32H内容分别为内容分别为20H、23、01 POP DPH DPH=_H POP DPL DPL=_H POP SP 后后 SP=_H(2) PUSH ACC PUSH PSW POP PSW POP ACC(1) PUSH P0 PUSH P2 POP P0 POP P201231F例例15 堆栈的两个典型应用:堆栈的两个典型应用:将将P0与与P2内容互换内容互换子程序中用于保护现场、恢复现场子程序中用于保护现场、恢复现场2 带进位加法带进位加法 ADDC A, #data AD
15、DC A, direct ADDC A, Rn ADDC A, Ri 第四节第四节 算术运算指令算术运算指令一、加法指令一、加法指令1 加法加法 ADD A, #data ADD A, direct ADD A, Rn ADD A, Ri 注:该类指令影响注:该类指令影响CY、AC、P、OV标志标志例例16 设内部设内部RAM 30H低位)、低位)、31H和和40H、41分别存放一分别存放一 16位数,试将其相加,结果存入位数,试将其相加,结果存入50H、51H单元。单元。 MOV A,30H ADD A,40H MOV 50H,A MOV A,31H ADDC A,41H MOV 51H,A
16、3 加加1指令指令 INC A INC Rn INC direct INC Ri INC DPTR 例例17 编程将存放在编程将存放在31H33H中的数相加,其和放入中的数相加,其和放入30H单元单元 (设和不超过设和不超过8位)。位)。MOV R0,#31HMOV A, R0INC R0ADD A, R0INC R0ADD A, R0MOV 30H, A MOV R0, #31H MOV R7, #03H MOV A, #00HLOOP:ADD A, R0 INC R0 DJNZ R7, LOOP MOV 30H, A设设31H)=38H,(,(32H)=2BH,( 33H)=8EH,PSW
17、=90H程序执行后,程序执行后, A=? PSW=(CY AC F0 RS1 RS0 OV - P)=?F1H51H 01100011(38H+2BH) 10001110 11110001例例18设设R0=7EH, (7EH)=FFH, (7FH)=40H 执行下列程序后:执行下列程序后: INC R0 INC R0 INC R0 R0=_H, (7EH)=_H, (7FH)=_H7F0041二、减法指令二、减法指令 1 带借位的减法带借位的减法SUBB A,#data SUBB A, direct SUBB A, RnSUBB A, Ri 7BH-20H=?2 减减1指令指令 DEC A D
18、EC Rn DEC direct DEC Ri MOV A, #7BHSUBB A, #20HCLR C ;将;将CY清清0例例19 试编写计算试编写计算1234H-0FE7H的程序,将差存入的程序,将差存入40H开始的单元。程序执行后,开始的单元。程序执行后, CY=_,AC=_, P=_,OV=_。CLR CMOV A,#34HSUBB A,#0E7HMOV 40H,AMOV A,#12HSUBB A,#0FHMOV 41H,A0110三、三、BCD调整指令调整指令 DA A例:例:39+47=?39BCD=0011 100147BCD=0100 0111 1000 000080应该=86
19、调整规则:调整规则:1、若、若A的低的低4位大于位大于9或或AC=1,则低,则低4位加位加6。2、若、若A的高的高4位大于位大于9或或CY=1,则高,则高4位加位加6如:已知如:已知A和和B的值为十的值为十 进制数,求其和。进制数,求其和。 ADD A,B DA A注:注:DA A只调整组合型、加法只调整组合型、加法 如遇减法,则稍加处理。如遇减法,则稍加处理。0011 10010000 00110000 100139BCD组合型39BCD非组合型2 除法指令:除法指令:DIV AB (3) A、B为为8位无符号数。位无符号数。 如果如果B不等于不等于0,则则OV标志为标志为1,否则否则OV为
20、为0.注注: (1) 该指令执行时该指令执行时,使使CY请请O四、乘除运算指令四、乘除运算指令 1 乘法指令乘法指令 MUL AB ;BA A*B (2) 乘积的低乘积的低8位在位在A中中,高高8位在位在B中中注:注: (1) A、B为无符号数为无符号数 (2) 商在商在A中中,余数在余数在B中中(3) 该指令使该指令使CY、OV清清0。 如除数为如除数为0,则,则A为不定值,为不定值,OV=1一、对一、对A的操作的操作 CLR A;A清清0 CPL A;A取反取反 第五节第五节 逻辑运算指令逻辑运算指令移位指令移位指令RL A RLC A RR ARRC A AD7 D0RL AAD7 D0
21、CYRLC A注:注:A的内容左移一次等于乘以的内容左移一次等于乘以2; 右移一次等于除以右移一次等于除以2例例20 指令组指令组RLC AJC NEXT 的作用是?的作用是?例例21 编程将编程将A的内容乘以的内容乘以10。或或MOV B,#0AHMUL ABRL AMOV B,ARL ARL AADD A,B如果A中为负数,则程序转NEXT。ANL A, #dataANL A,directANL A, RnANL A, RiANL direct, AANL direct, #data二、逻辑运算二、逻辑运算ORL A, #dataORL A,directORL A, RnORL A, Ri
22、ORL direct, AORL direct, #dataXRL A, #dataXRL A,directXRL A, RnXRL A, RiXRL direct, AXRL direct, #data注:常用该类指令对数据加工处理注:常用该类指令对数据加工处理如使如使A高高4位清位清0,低低4位不变位不变:使使A按位求反:按位求反:使内部使内部RAM30H单元低单元低4位置位置1,高,高4位不变:位不变:ANL A, #0FHORL 30H,#0FHXRL A,#0FFH例例22 设外外部数据存储器设外外部数据存储器3000H)=B5H,编程编程 使其符号位使其符号位 变反、变反、D0位置
23、位置1、D1和和D2位清位清0 MOV DPTR, #3000H MOV A, DPTR XRL A, #80HORL A, #01HANL A, #0F9HMOVX DPTR, A例例23 设设-32原原=10100000B=A0H, 试编程求试编程求-32补。补。 MOV A, #0A0HANL A, #7FHCPL AINC AXRL A, #7FH例例24 已知已知A=8AH,R1=73H,试编程将,试编程将A的高的高4位与位与 R1的低的低4位合并成一个字节放在位合并成一个字节放在R0中。中。ANL A,#0F0HMOV R0,AMOV A,R1ANL A,#0FHORL A,R0M
24、OV R0,A例例25 已知数字已知数字6和和7的的ASCII码码00110110B和和00110111B) 分别存于分别存于40H和和41H单元,将其转换相应的单元,将其转换相应的BCD数数 (0110B和和0111B以压缩形式存于以压缩形式存于40H单元中,试单元中,试 编程。编程。 ANL 40H,#0FH MOV A, 41H ANL A, #0FH SWAP A ORL 40H,A 第六节第六节 控制转移和位操作指令控制转移和位操作指令 一、控制转移一、控制转移 LJMP addr16 ; PC PC+3 PC addr16 AJMP addr11 ; PC PC+2 PC 010
25、addr11 PC 1115不变 SJMP rel ; PC PC+2 PC PC+rel JMP A+DPTR; PC DPTR+A LJMP 0F0F0H3000H:AJMP 30F0H6080H:AJMP 6900H是错指令是错指令等价于等价于 0100H:LJMP 0123H0100H:SJMP 21H多分支转移指令多分支转移指令 PC=0100H+2+21H=0123H0100H:SJMP 81H向上转,向上转, 即目标地址小于即目标地址小于0100H1 无条件转移无条件转移注:注:SJMP rel 指令为指令为2字节指令,字节指令,80 rel如如: 1000H : SJMP LO
26、OP1 LOOP1为为1054H52LOOP:SJMP LOOP即:即:SJMP $80 FE80rel=1054H-1000H-2=52Hrel为为8位有符号数位有符号数-相对偏移量相对偏移量向上移向上移(小地址小地址): rel=FE-(源、目的地址差的绝对值源、目的地址差的绝对值)向下移向下移(大地址大地址): rel=(源、目的地址差的绝对值源、目的地址差的绝对值)-22 条件转移指令条件转移指令(1JZ rel JNZ rel(2CJNE A, direct, rel CJNE A, #data , rel CJNE Ri, #data, rel CJNE Rn, #data, re
27、l(3DJNZ direct, rel DJNZ Rn , rel例例26 将内部将内部RAM31H开始的开始的 10个无符号数相加结果存入个无符号数相加结果存入 30H单元,设和不超过单元,设和不超过8位。位。 MOV R7,#09H MOV R0,#31H MOV A,R0LOOP:INC R0 ADD A,R0 DJNZ R7,LOOP MOV 30H,A SJMP $ MOV DPTR, #5500H MOV R0, #40H LOOP:MOVX A, DPTR MOV R0, A INC DPTR INC R0 CJNE R0,#50H, LOOP SJMP $例例27 将外部将外部
28、RAM5500H开始内容送至内部开始内容送至内部RAM 40H4FH3 子程序调用及返回 LCALL addr16 ;PC PC+3 SP SP+1 (SP) PC07 SP SP+1 (SP) PC815 PC addr015 ACALL addr11 ;PC PC+2 SP SP+1 (SP) PC07 SP SP+1 (SP) PC815 PC 010 addr11 PC1115不变 RET ;PC 8 15 (SP) SP SP-1 PC 07 (SP) SP SP-1 RETI ;中断返回2000H: LCALL 1000HSP33H32H31H4 空操作指令空操作指令NOP20H0
29、3H二、二、 位操作指令位操作指令4 位条件转移位条件转移 JC rel JNC rel JB bit, rel JNB bit, rel JBC bit, rel注注:3、5条区别条区别 3 位逻辑运算位逻辑运算: ANL C, bit ANL C, /bit ORL C, bit ORL C, /bit CPL C CPL bit 2 位控制:位控制: CLR C CLR bit SETB C SETB bitMOV C,20HMOV C,PSW.5SETB 0A0HSETB P2.0ANL C, /80HJC 70HJNB 99H, 99H1 位传送:位传送: MOV C,bit MOV
30、 bit, CC又叫位累加器又叫位累加器例例28 按图示编程按图示编程D7 D0D7 D031H30HMOV A,31HMOV C,ACC.7MOV A,30HRLC AMOV 30H,AMOV A,31HRLC AMOV 31H,A例例29 内部内部RAM 40H单元中有单元中有ASCII码码(b7=0),编程,编程,给该数的最给该数的最 高位加上奇校验,送回原单元高位加上奇校验,送回原单元. 例例30 编程序实现以下逻辑操作编程序实现以下逻辑操作 如果如果P1.1=1,ACC.0=1且且OV=0则将则将CY置置1 MOV A, 40H JB P, K SETB ACC.7 k: MOV 4
31、0H, AMOV C, P1.1ANL C, ACC.0ANL C, /OV+P1.7P2.0P2.1P2.7P2.3例例31 编程:编程: 根据下列逻辑电路图求根据下列逻辑电路图求P1.7。MOV C, P2.1ORL C, /P2.0CPL CMOV F0, CMOV C, P2.7ANL C, P2.3ORL C, F0MOV P1.7, C例例32 判断判断A与与30H单元的内容,若单元的内容,若A=(30H),转向),转向LOOP1; 若若A(30H),转向转向LOOP2;否则,转向;否则,转向LOOP3。 CJNE A,30H,NEXT SJMP LOOP1NEXT:JNC LOOOP2 JC LOOP3 (本章第二节(本章第二节 寻址方式寻址方式 一、立即寻址一、立即寻址MOV A, #06H二、直接寻址二、直接寻址 MOV A, 06H三、寄存器寻址三、寄存器寻址INC R0注:下列两条指令等价,写法不同注:下列两条指令等价,写法不同 寻址方式不同寻址方式不同MOV A,B;寄存器寻址方式;寄存器寻址方式MOV A,0F0H;直接寻址方式;直接寻址方式寄存器包括:寄存器包括:R
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年提升中欧中亚班列发展水平建立运行风险监测预警体系
- 2026年低空目标探测概率与虚警率测试评估报告
- 狗咬伤后伤口护理的清洁用品
- 2026年食疗按摩结合调理脾胃虚弱养生讲座课件
- 2026年社区紧急避险培训
- 白内障术后眼部滴药护理查房
- 新生儿黄疸的护理与管理
- 某纺织厂产品质量检测制度
- 2026年高考化学二轮复习(全国)重难20 限定条件的有机物同分异构体的数目判断与书写(重难专练)(解析版)
- 2026年秋季养生秘诀课件
- 2026年陕西航空职业技术学院单招职业技能考试题库附答案详解(完整版)
- 中级消防设施操作员(监控方向)理论考试题库资料(含答案)
- 2026年中考语文常考考点专题之古诗词赏析(选择题)
- 2025肿瘤科护理指南
- 2025年广州市公安局越秀区分局辅警招聘考试笔试试题(附答案)
- 2025-2026学年岭南版小学美术六年级第二学期教学计划及教学进度表
- 雨课堂学堂在线学堂云安全科学原理(中南大学)单元测试考核答案
- 三年级数学下册计算题大全(每日一练共18份)
- 《创新创业基础》课件-模块四 创新成果保护与转化
- 燃料检修潜在风险与预控措施
- 中学生防震减灾知识
评论
0/150
提交评论