【大学课件】MCS51指令系统_第1页
【大学课件】MCS51指令系统_第2页
【大学课件】MCS51指令系统_第3页
【大学课件】MCS51指令系统_第4页
【大学课件】MCS51指令系统_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第 章章 MCSMCS 5151 指指 令令 系系 统统 本章内容本章内容 Single Chip Microcomputer 4 概概 述述 vMCS-51MCS-51系列单片机的指令系统系列单片机的指令系统专用于51系列单片 机,共有111条指令,具有丰富灵活的寻址方式,其 指令格式与8086的指令系统相同,甚至某些指令还 完全相同。使用时应注意区别。 v 在111条指令中,从存储空间的占用上看,单字节单字节 指令占指令占49条,双字节指令占条,双字节指令占45条,三字节指令占条,三字节指令占17 条条;从执行时间上看,在111条指令中,单机器周期 指令占64条,双机器周期指令占45条,

2、仅乘法和除仅乘法和除 法两条指令为四机器周期指令法两条指令为四机器周期指令。因而无论是存储空 间的利用率,还是时间的执行效率都是较高的,再 加上灵活的寻址方式,特别适合于实时测量和控制 场合。 【例例4-1】 汇编语言程序汇编语言程序 机器语言程序机器语言程序 MOV A,#0AH 74 0AH ADD A,#14H 24 14H 指令的格式及标识 操作码助记符、目的操作数、源操作数是指令的核心局部操作码助记符、目的操作数、源操作数是指令的核心局部 一、指令的格式一、指令的格式 二、关于标号 标号不允许只用数字,而应以字母打头,后 面跟数字,不可使用运算符号,不能同十六 进制数发生混淆,较好的

3、取名原那么是见名 知义。便于程序员在调试程序时更加顺利, 往往一个标号就是一个功能入口,因而在使 用标号时应特别小心,并非每句指令都需要 标号。 三、关于指令中的符号标识 符符 号号含含 义义 RnRn表示当前选定寄存器组的工作寄存器表示当前选定寄存器组的工作寄存器R0R0R7R7 RiRi表示作为间接寻址的地址指针表示作为间接寻址的地址指针R0R0R1R1 #data#data表示表示8 8位立即数,即位立即数,即00H00HFFHFFH #data16#data16 表示表示1616位立即数,即位立即数,即0000H0000HFFFFHFFFFH addr16addr16表示表示1616位

4、地址,用于位地址,用于64K64K范围内寻址范围内寻址 addr11addr11表示表示1111位地址,用于位地址,用于2K2K范围内寻址范围内寻址 directdirect8 8位直接地址,可以是内部位直接地址,可以是内部RAMRAM区的某一单元或某一专用功能寄存器的地址区的某一单元或某一专用功能寄存器的地址 RelRel带符号的带符号的8 8位偏移量(位偏移量(-128-128+127+127) BitBit位寻址区的直接寻址位位寻址区的直接寻址位 (X X)X X地址单元中的内容,或地址单元中的内容,或X X作为间接寻址寄存器时所指单元的内容作为间接寻址寄存器时所指单元的内容 将将 后面

5、的内容传送到前面去后面的内容传送到前面去 四、关于注释 为了增强程序的可读性,使别人易读,或 防止日久遗忘,可适当加些注释。注释由“; 开始。 4-24-2寻址方式寻址方式 在程序行中,操作码操作码代表了该句指令的功 能,而功能的对象却由操作数决定,由操作 数指出参与运算的数或该数所在的地址。取 得操作数的地址的方法叫做寻址方式寻址方式。寻址 方式与计算机的存储空间结构是密切相关的。 灵活运用各种寻址方式,可以大大的提高程 序的运行效率。 MCS-51根本七种寻址方式 存放器寻址 直接寻址 立即数寻址 存放器间接寻址 变址寻址 相对寻址 位寻址 存放器寻址 直接寻址 立即数寻址 存放器间接寻址

6、 变址寻址 相对寻址 位寻址 存放器寻址 直接寻址 立即数寻址 存放器间接寻址 变址寻址 相对寻址 位寻址 R0-R7 A B DPTR 存放器寻址 直接寻址 立即数寻址 存放器间接寻址 变址寻址 相对寻址 位寻址 R0 R1 DPTR 存放器寻址 直接寻址 立即数寻址 存放器间接寻址 变址寻址 相对寻址 位寻址 A DPTR PC 存放器寻址 直接寻址 立即数寻址 存放器间接寻址 变址寻址 相对寻址 位寻址 存放器寻址 直接寻址 立即数寻址 存放器间接寻址 变址寻址 相对寻址 位寻址 10 0 0 0 0 0 0 0 7F7F 7777 6F6F 6767 5F5F 5757 4F4F 47

7、47 3737 2F2F 2727 1F1F 1717 0F0F 0707 7E7E 7676 6E6E 6666 5E5E 5656 4E4E 4646 3636 2E2E 2626 1E1E 1616 0E0E 0606 7D7D 7575 6D6D 6565 5D5D 5555 4D4D 4545 3535 2D2D 2525 1D1D 1515 0D0D 0505 7C7C 7474 6C6C 6464 5C5C 5454 4C4C 4444 3434 2C2C 2424 1C1C 1414 0C0C 0404 7B7B 7373 6B6B 6363 5B5B 5353 4B4B 43

8、43 3333 2B2B 2323 1B1B 1313 0B0B 0303 7A7A 7272 6A6A 6262 5A5A 5252 4A4A 4242 3232 2A2A 2222 1A1A 1212 0A0A 0202 7979 7171 6969 6161 5959 5151 4949 4141 3131 2929 2121 1919 1111 0909 0101 7878 7070 6868 6060 5858 5050 4848 4040 3030 2828 2020 1818 1010 0808 0000 例: 3D3D 3C3C 3B3B3F3F 3E3E3A3A 393938

9、3827H27H 存放器寻址 直接寻址 立即数寻址 存放器间接寻址 变址寻址 相对寻址 位寻址 0 0 0 0 0 0 01 0 4-3 MCS51指令系统的分类 MOV , MOV A,#20H MOV DPTR,#data16 MOVX , 举例举例 例例: : 将片内RAM30H单元的内容送到片外60H;将 片外4312H单元的内容送到片内31H单元: MOVMOV A A,30H30H MOV R0MOV R0,#60H#60H MOVXMOVX R0 R0,A A MOV DPTRMOV DPTR,#4312H#4312H MOVXMOVX A, DPTR A, DPTR MOVMO

10、V 31H 31H,A A 0000H FFFFH (64K) 内部 外部 数据数据存储器存储器 00H FFH 7FH 80H (高128B) (低128B) RAM 专用 存放器 00H00H 07H07H 08H08H 0FH0FH 10H10H 17H17H 18H18H 1FH1FH 0区区 R0R0 R7R7 R0R0 R7R7 R0R0 R7R7 R0R0 R7R7 1区区 2区区 3区区 工作寄存器区工作寄存器区 可作一般可作一般RAM 读写读写也可位寻也可位寻 址区址区 20H 2FH7F 78 07 00 30H 7FH 数据缓冲区数据缓冲区/堆栈区堆栈区 内部内部RAMR

11、AM存储器存储器 工作存放器区选择位工作存放器区选择位RS0RS0、RS1RS1 ADDA,Rn ADDA,direct ADDA, Ri ADDA,#data 注意:注意:1.本指令影响本指令影响Cy,AC,Ov,P等标志。等标志。 2.求和操作既可看成是有符号数运算,求和操作既可看成是有符号数运算, 也可看成是无符号数运算,完全由程序员编也可看成是无符号数运算,完全由程序员编 程时自行设定。程时自行设定。 ADDCA,Rn ADDCA,direct ADDCA, Ri ADDCA,#data 除相加时要考虑进位外,其余操作与前 面相同。 SUBBA,Rn SUBBA,direct SUBB

12、A,Ri SUBBA,#data 减法指令是带借位的,假设不需要带借位减,那么在作减法指令前 去除借位位,即CLRC 减法指令影响OV、CY、AC标志位 助记符格式助记符格式 机器码机器码(B)相应操作相应操作指令说明指令说明机器机器 周期周期 INC A00000100AA+1 影响影响PSW的的P标志标志 1 INC Rn00001rrrRnRn+1n=07, rrr=000111 1 INC direct 0101 direct (direct)(direct)+1 1 INC Ri0000011i(Ri)(Ri)+1i=0,11 INC DPTR 10100011 DPTRDPTR+1

13、 2 DEC A 00010100AA-1 影响影响PSW的的P标志标志 1 DEC Rn 00011rrrRnRn-1n=07, rrr=000111 1 DEC direct 000101 0 1 direct (direct)(direct)-1 1 DEC Ri0001011i(Ri)(Ri)-1i=0,11 两个两个8位操作数相位操作数相 乘,形成乘,形成16位的积,位的积, 其中其中A为积的低位为积的低位 而而B为积的高位。为积的高位。 需要进行更多位的需要进行更多位的 乘法运算,需另外乘法运算,需另外 编程方能实现。编程方能实现。 两个两个8位操作数相除,位操作数相除, 其中其中

14、A为被除数而为被除数而B为为 除数;运算后,结果仍除数;运算后,结果仍 然在然在AB中,其中中,其中A为商为商 而而B为余数。为余数。 同乘法指令相同,同乘法指令相同, 需要进行更多位的除法需要进行更多位的除法 运算,需另外编程方能运算,需另外编程方能 实现。实现。 十进制调整指令十进制调整指令 DAA ;实现BCD码加法 BCD码相加后,根据Ac和Cy的状态对A中的数作 适当调整,使运算结果为BCD码。 这条指令对加法结果的调整规那么是: (1)假设累加器A低4位大于9或辅助进位标志AC1 那么 低4位加6; (2)假设累加器A高4位大于9或CY1,那么高4位加6; (3)假设1、2条件都满

15、足时,那么A加66H; (4)假设1、2条件都不满足时,那么A加00H; (5)假设累加器A的最高位因调整而产生进位时,将 CY 置1,假设不产生进位为调整前的状态而并不清零。 DA指令只影响进位标志CY。 例:例:设设ACCACC中为压缩中为压缩BCDBCD码码56H56H,R3R3中为压缩中为压缩BCDBCD码码 67H67H,求,求ACCACC与与R3R3的压缩的压缩BCDBCD码之和码之和 MOV A,#56H MOV R3,#67H ADDA,R3 DAA;A=? (A) =01010110 +) (R3)=01100111 和 =10111101 调整 +) 01100110 1

16、00100011 BCD码为123 助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器机器 周期周期 ANL A,direct0 1 0 1 0 1 0 1 direct AAdirect按位相与按位相与1 ANL A,Rn01011rrrAARnn=07, rrr=000111 1 ANL A,Ri0101011iAA(Ri)i=0,11 ANL A,#data01010100 dataAA#data 1 ANL direct,A01010010direct(direct)(direct)A不影响不影响PSW的的P标志标志1 ANL direct,#data 0101

17、0011 direct data (direct) (direct)#data 不影响不影响PSW的的P标志标志2 01000011 direct data 助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器机器 周期周期 ORL A,direct01000101 direct AAdirect按位相或按位相或1 ORL A,Rn01001rrrAARnn=07, rrr=0001111 ORL A,Ri0100011iAA(Ri)i=0,11 ORL A,#data01000100dataAA#data 1 ORL direct,A01000010 direct (d

18、irect)(direct) A 不影响不影响PSW的的P标志标志1 ORL direct,#data (direct) (direct)#data 不影响不影响PSW的的P标志标志 2 助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器机器 周期周期 XRL A,direct0 1 1 0 0 1 0 1 direct AA (direct)按位相异或按位相异或1 XRL A,Rn01101rrrAA Rnn=07, rrr=0001111 XRL A,Ri0110011iAA (Ri)i=0,11 XRL A,#data01100100 dataAA #data 1

19、 XRL direct,A0 1 1 0 0 0 1 0 direct (direct)(direct) A不影响不影响PSW的的P标志标志1 XRL direct,#data 01100011 direct data (direct) (direct) #data不影响不影响PSW的的P标志标志 2 助记符 格式 机器码(B)相应操作指令说明机器 周期 CLR A11100100A00HA中内容清0,影响P标志1 CPL A11110100A中内容按位取反,影响P标志1 AA CY CY v RL A v RR A v RLC A RRC A 例例: : 设(20H)=(X7X6X5X4X3

20、X2X1X0) (21H)=(Y7Y6Y5Y4Y3Y2Y1Y0) 试编程使(30H)=Y2Y1Y0X4X3X2X1X0 程序清单:MOV 30H,20H ANL30H,#00011111B; B:二进制 O:八进制 D:十进制 H:十六进制 MOV A,21H RLA SWAPA ANLA,#11100000H ORL30H,A 例:假设例:假设ACC=X7X6X5X4X3X2X1X0ACC=X7X6X5X4X3X2X1X0,试编程将,试编程将A A 中的低中的低5 5位送至位送至P1P1口,但不能影响口,但不能影响P1P1口的高口的高3 3位。位。 程序清单: MOV A,#0AAH ANL

21、P1,#11100000B ORLP1,A 假设执行该指假设执行该指 令前,令前,PCPC的值的值 为为0000H0000H。 PC高5位 (保持不变) PC低11位 A10A9A800 001A7A6A5A4A3A2A1A0 操作码(第一字节)操作数(第二字节) 程序计 数器PC 例: 助记符格式助记符格式机器码机器码(B)相应操作相应操作机器周期机器周期 DJNZ Rn,rel 11011rrr rel RnRn-1,若,若Rn0,则,则PCPC+rel, 否则顺序执行否则顺序执行 2 DJNZ direct,rel 11010101 direct rel (direct)(direct)

22、-1,若(,若(direct) 0,则,则PCPC+rel,否则顺序执行,否则顺序执行 2 助记符格式助记符格式机器码机器码(B)(B)相应操作相应操作 机器机器 周期周期 CJNE CJNE A,#data,relA,#data,rel 10110100 10110100 data reldata rel 若若A#data, A#data, 则则PCPCPC+relPC+rel,否则顺,否则顺 序执行;若序执行;若 A#dataA#data,则,则CY=1CY=1,否则,否则 CY=0CY=0 2 2 CJNE CJNE Rn,#data,relRn,#data,rel 10111rrr10

23、111rrr data reldata rel 若若 Rn#dataRn#data,则,则PCPCPC+relPC+rel,否则,否则 顺序执行;若顺序执行;若Rn#dataRn#data,则,则CY=1CY=1,否,否 则则CY=0CY=0 2 2 CJNE CJNE Ri,#data,relRi,#data,rel 1011011i1011011i data reldata rel 若若(Ri)#data(Ri)#data,则,则PCPCPC+relPC+rel,否,否 则顺序执行;若则顺序执行;若(Ri)#data,(Ri)#data,则则CY=1CY=1, 否则否则CY=0CY=0 2

24、 2 CJNE CJNE A,direct,relA,direct,rel 1011010110110101 d i r e c t d i r e c t relrel 若若A(direct)A(direct),则,则PCPCPC+relPC+rel,否,否 则顺序执行;若则顺序执行;若A(direct)A(direct),则,则CY=1CY=1, 否则否则CY=0CY=0 2 2 助记符格式助记符格式机器码机器码(B)相应操作相应操作机器周期机器周期 A C A L L addr11 a10a9a810001 addr70 PC PC+2 SP SP+1,(SP)PC0 7 SP SP+1

25、,(SP)PC815 PC010 addr11 2 助记符格式助记符格式机器码机器码(B)相应操作相应操作机器周期机器周期 L C A L L addr16 00010010 addr158 addr70 PCPC+3 SP SP+1,SPPC07 SP SP+1,SPPC815 PC addr16 2 助记符格式助记符格式机器码机器码(B)相应操作相应操作机器周期机器周期 RET00100010 PC815 (SP), SP SP-1 PC07 (SP), SP SP-1 子程序返回指令子程序返回指令 2 RETI00110010 PC815 SP, SP SP-1 PC07 SP, SP

26、SP-1 中断返回指令中断返回指令 2 助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明 NOP00000000空操作空操作消耗消耗1个机器周期个机器周期 举例举例 例例: : 根据累加器根据累加器A A命令键键值,设计命令键操作程序命令键键值,设计命令键操作程序 入口跳转表。程序如下:入口跳转表。程序如下: CLRCLRC C RLCRLCA A;乘;乘2 2,假设用,假设用LJMPLJMP指令那么指令那么 乘乘3 3 MOVMOVDPTRDPTR,#JPTAB#JPTAB JMPJMPA+DPTRA+DPTR JPTABJPTAB:AJMPAJMP CCS0CCS0

27、AJMPAJMP CCS1CCS1 AJMPAJMP CCS2CCS2 单元地址单元地址 2FH2FH 2EH2EH 2DH2DH 2CH2CH 2BH2BH 2AH2AH 29H29H 28H28H 27H27H 26H26H 25H25H 24H24H 23H23H 22H22H 21H21H 20H20H 7F7F 7777 6F6F 6767 5F5F 5757 4F4F 4747 3F3F 3737 2F2F 2727 1F1F 1717 0F0F 0707 MSBMSB 位地址位地址 LSBLSB 7E7E 7676 6E6E 6666 5E5E 5656 4E4E 4646 3E

28、3E 3636 2E2E 2626 1E1E 1616 0E0E 0606 7D7D 7575 6D6D 6565 5D5D 5555 4D4D 4545 3D3D 3535 2D2D 2525 1D1D 1515 0D0D 0505 7C7C 7474 6C6C 6464 5C5C 5454 4C4C 4444 3C3C 3434 2C2C 2424 1C1C 1414 0C0C 0404 7B7B 7373 6B6B 6363 5B5B 5353 4B4B 4343 3B3B 3333 2B2B 2323 1B1B 1313 0B0B 0303 7A7A 7272 6A6A 6262 5A

29、5A 5252 4A4A 4242 3A3A 3232 2A2A 2222 1A1A 1212 0A0A 0202 7979 7171 6969 6161 5959 5151 4949 4141 3939 3131 2929 2121 1919 1111 0909 0101 7878 7070 6868 6060 5858 5050 4848 4040 3838 3030 2828 2020 1818 1010 0808 0000 助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器周期机器周期 MOV C,bit10100010CY bit位传送指令,结果影响位传送指令

30、,结果影响CY标志标志2 MOV bit,C10010010bit CY位传送指令,结果不影响位传送指令,结果不影响PSW2 助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器周期机器周期 CLR C11000011CY 0位清位清0指令,结果影响指令,结果影响CY标志标志1 CLR bit11000010 bitbit 0位清位清0指令,结果不影响指令,结果不影响PSW1 SETB C11010011CY1位置位置1指令,结果影响指令,结果影响CY标志标志1 SETB bitbit 1位置位置1指令,结果不影响指令,结果不影响PSW111010010 bit 助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器周期机器周期 ANL C,bit10000010 bitCY CYbit位与指令位与指令2 ANL C/bit10110010 bit位与指令位与指令2 ORL ,bit01110010 bit CY CYbit 位或指令位或指令2 ORL C/bit10100010 bit位或指令位或指令2 CPL C101

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论