三章节8051单片机指令系统

上传人:痛*** 文档编号:168124560 上传时间:2022-11-07 格式:PPT 页数:77 大小:276.52KB
收藏 版权申诉 举报 下载
三章节8051单片机指令系统_第1页
第1页 / 共77页
三章节8051单片机指令系统_第2页
第2页 / 共77页
三章节8051单片机指令系统_第3页
第3页 / 共77页
资源描述:

《三章节8051单片机指令系统》由会员分享,可在线阅读,更多相关《三章节8051单片机指令系统(77页珍藏版)》请在装配图网上搜索。

1、第第三三章章 8051单片机指令系统单片机指令系统 3.1 MCS-51指令系统的分类、指令系统的分类、格式及一般说明格式及一般说明 3.2 寻址方式寻址方式学习目的及要求学习目的及要求 熟悉指令、指令系统、机器语言、及汇编语熟悉指令、指令系统、机器语言、及汇编语言的概念;言的概念;熟悉熟悉8051汇编语言指令的格式;汇编语言指令的格式;掌握掌握8051的七种寻址方式,并能实际应用;的七种寻址方式,并能实际应用;MCS-51单片机指令系统有如下特点:单片机指令系统有如下特点:(1)指令执行时间快。)指令执行时间快。(2)指令短,约有一半的指令为单字节指令。)指令短,约有一半的指令为单字节指令。

2、(3)用一条指令即可实现)用一条指令即可实现2个一字节的相乘或个一字节的相乘或相除。相除。(4)具有丰富的位操作指令。)具有丰富的位操作指令。(5)可直接用传送指令实现端口的输入输出操)可直接用传送指令实现端口的输入输出操作。作。3.1 MCS-51指令系统的分类、格式及一般说明指令系统的分类、格式及一般说明 3.1.1 指令分类指令分类 3.1.2 指令格式指令格式返回本章首页3.1.1 指令分类指令分类 按指令功能,按指令功能,MCS-51指令系统分为数据传递指令系统分为数据传递与交换、算术运算、逻辑运算、程序转移、与交换、算术运算、逻辑运算、程序转移、布尔处理操作、布尔处理操作、CPU控

3、制等控制等6类。类。布尔处理操作类指令又称位操作指令。布尔处理操作类指令又称位操作指令。返回本节3.1.2 指令格式指令格式 在在MCS-51指令中,一般指令主要由操作码、操作数指令中,一般指令主要由操作码、操作数组成。组成。指令格式为:指令格式为:操作码操作码 目的操作数目的操作数,源操作数,源操作数 指令应具有以下功能:指令应具有以下功能:(1)操作码指明执行什么性质和类型的操作。例如,)操作码指明执行什么性质和类型的操作。例如,数的传送、加法、减法等。数的传送、加法、减法等。(2)操作数指明操作的数本身或者是操作数所在的地)操作数指明操作的数本身或者是操作数所在的地址。址。(3)指定操作

4、结果存放的地址。)指定操作结果存放的地址。返回本节8051指令系统中,有单字节、双字节或三字节指令指令系统中,有单字节、双字节或三字节指令1.单字节指令单字节指令:单字节指令中的单字节指令中的8位二进制代码既包含操位二进制代码既包含操作码的信息作码的信息,又包含操作数的信息。共又包含操作数的信息。共49条。条。2.双字节指令:双字节指令:用一个字节表示操作码,另一个字节表用一个字节表示操作码,另一个字节表示操作数或操作数所在的地址。共有条。示操作数或操作数所在的地址。共有条。3.三字节指令:三字节指令:一个字节操作码,两个字节操作数。共一个字节操作码,两个字节操作数。共有条。有条。单片机共有条

5、指令。单片机共有条指令。3.2 寻址方式寻址方式寻址方式:就是寻找指令中操作数或操作数所在地址的方法。寻址方式:就是寻找指令中操作数或操作数所在地址的方法。8051共有七中寻址方式。共有七中寻址方式。3.2.1 立即寻址立即寻址3.2.2 直接寻址直接寻址3.2.3 寄存器寻址寄存器寻址3.2.4 寄存器间接寻址寄存器间接寻址3.2.5 变址寻址变址寻址3.2.6 相对寻址相对寻址3.2.7 位寻址位寻址3.2.8 寻址空间及符号注释寻址空间及符号注释返回本章首页3.2.1 立即数寻址立即数寻址 指令中直接给出操作数的寻址方式指令中直接给出操作数的寻址方式。立即操作数用。立即操作数用前面加有前

6、面加有#号的号的8位或位或16位数来表示。位数来表示。例如:例如:MOV A,#60H;A60H MOV DPTR,#3400H;DPTR3400H MOV 30H,#40H;30H单元单元40H 上述三条指令执行完后,累加器上述三条指令执行完后,累加器A中数据为立即数据中数据为立即数据60H,DPTR寄存器中数据为寄存器中数据为3400H,30H单元中数单元中数据为立即数据为立即数40H。返回本节3.2.2 直接寻址直接寻址 指令中直接给出操作数地址的寻址方式指令中直接给出操作数地址的寻址方式,能,能进行直接寻址的存储空间有进行直接寻址的存储空间有SFR寄存器和片寄存器和片内内RAM的的12

7、8个单元。个单元。例如:例如:MOV A,P1;A(P1)把把SFR中中P1口的内容送口的内容送A。MOV A,30H;A(30H)注意解释字段中加括号和不加括号的区别!注意解释字段中加括号和不加括号的区别!30H为直接给出的内部为直接给出的内部RAM的地址。的地址。返回本节3.2.3 寄存器寻址寄存器寻址 以通用寄存器的内容为操作数的寻址方式。以通用寄存器的内容为操作数的寻址方式。通用寄存器指通用寄存器指A、B、DPTR以及以及R0R7。例如:例如:MOV A,R0;A(R0)CLR A;A0 INC DPTR;DPTRDPTR+1 ADD A,R5;A(A)+(R5)返回本节3.2.4 寄

8、存器间接寻址寄存器间接寻址 以寄存器中内容为地址以寄存器中内容为地址,以该地址中内容为以该地址中内容为操作数的寻址方式操作数的寻址方式。间接寻址的存储器空间。间接寻址的存储器空间包括内部数据包括内部数据RAM和外部数据和外部数据RAM。能用于寄存器间接寻址的寄存器有能用于寄存器间接寻址的寄存器有R0,R1,DPTR,SP。其中。其中R0、R1必须是工作寄存器必须是工作寄存器组中的寄存器。组中的寄存器。SP仅用于堆栈操作。仅用于堆栈操作。例如:例如:MOV R0,A ;内部;内部RAM(R0)A 其指令操作过程示意图如图其指令操作过程示意图如图3-1所示。所示。又如:又如:MOVX DPTR,A

9、;外部外部RAM(DPTR)A 其指令操作过程示意图如图其指令操作过程示意图如图3-所示。所示。片内RAM30HR034HA30H34H图3-1 MOV R0,A间接寻址示意图片外RAM2000HDPTR30HA2000H30H图图-MOVX DPTR,A间接寻址示意图间接寻址示意图返回本节3.2.5 变址寻址变址寻址 是基址寄存器(是基址寄存器(A)+变址寄存器(变址寄存器(PC或或DPTR)的间接寻址的间接寻址。变址寻址只能对程序存储器中数据进。变址寻址只能对程序存储器中数据进行操作。由于程序存储器是只读的,因此变址寻址行操作。由于程序存储器是只读的,因此变址寻址只有读操作而无写操作,在指

10、令符号上采用只有读操作而无写操作,在指令符号上采用MOVC的形式(如图的形式(如图3-4所示)。所示)。例如:例如:MOVC A,A+DPTR;A(A+DPTR)又又 如:如:MOVC A,A+PC ;A(A+PC)这种寻址方式多用于查表操作这种寻址方式多用于查表操作。图3-4 变址寻址示意图程序存储器2000HDPTR64H(10H)A2010H64H10H2000H返回本节3.2.6 相对寻址相对寻址 以当前程序计数器以当前程序计数器PC的内容为基础,加上指的内容为基础,加上指令给出的一字节补码数(偏移量)形成新的令给出的一字节补码数(偏移量)形成新的PC值的寻址方式。值的寻址方式。相对寻

11、址用于修改相对寻址用于修改PC值,主要用于实现程序值,主要用于实现程序的分支转移。的分支转移。例如,例如,SJMP 08H ;PCPC+2+08H 指令操作示意图如图指令操作示意图如图3-5所示。所示。程序存储器(2000H)200AHSJMP200AH08H2000H+208HPC2000H图3-5 相对寻址示意图返回本节3.2.7 位寻址位寻址 位寻址只能对有位地址的单元作位寻址操作。位寻址只能对有位地址的单元作位寻址操作。位寻址其实是一种直接寻址方式,不过其地位寻址其实是一种直接寻址方式,不过其地址是位地址。址是位地址。例如:例如:SETB 10H ;将;将10H位置位置1。若若22H单

12、元中存放着数据单元中存放着数据40H,22H单元的单元的 D0位的位地址为位的位地址为10H,执行上述指令后,执行上述指令后 (22H)=41H。又如:又如:MOV 32H,C ;32H进位位进位位C ORL C,32H ;CC32H返回本节3.2.8 寻址空间及符号注释寻址空间及符号注释1.1.寻址空间寻址空间:每种寻址方式可涉及的存储器空间每种寻址方式可涉及的存储器空间寻址方式寻址方式源操作数寻址空间源操作数寻址空间立即数寻址立即数寻址程序存储器程序存储器ROM直接寻址直接寻址片内片内RAM低低128B、SFR寄存器寻址寄存器寻址工作寄存器工作寄存器R0-R7、A、B、C、DPTR寄存器间

13、接寻址寄存器间接寻址片内片内RAM低低128BR0、R1片外片外RAM R0、R1、DPTR变址寻址变址寻址程序存储器程序存储器A+PC、A+DPTR相对寻址相对寻址程序存储器程序存储器256B范围(范围(PC+偏移量)偏移量)位寻址位寻址片内片内RAM的的20H2FH字节地址、部分字节地址、部分SFR例如:例如:MOV A,#55H;究竟属于立即寻址还是寄存器寻址呢?究竟属于立即寻址还是寄存器寻址呢?这要看以哪个操作数为参照系了。我们一般这要看以哪个操作数为参照系了。我们一般所说的寻址方式是指源操作数,所以此例为所说的寻址方式是指源操作数,所以此例为立即数寻址。立即数寻址。2.寻址方式中常用

14、符号注释寻址方式中常用符号注释 Rn当前选中的寄存器区中的当前选中的寄存器区中的8个工作寄存器个工作寄存器R0R7(n=07)。)。Ri当前选中的寄存器区中的当前选中的寄存器区中的2个工作寄存器(间个工作寄存器(间接寻址寄存器)接寻址寄存器)R0、R1(i=0,1)。)。direct8位的内部数据存储器单元中的地址。位的内部数据存储器单元中的地址。#data包含在指令中的包含在指令中的8位常数。位常数。#data16包含在指令中的包含在指令中的16位常数。位常数。addr1616位目的地址。位目的地址。addr1111位目的地址。位目的地址。rel8位带符号的偏移字节,简称偏移量。位带符号的偏

15、移字节,简称偏移量。DPTR数据指针,可用作数据指针,可用作16位地址寄存器。位地址寄存器。bit内部内部RAM或专用寄存器中的直接寻址位。或专用寄存器中的直接寻址位。A累加器。累加器。B专用寄存器,用于乘法和除法指令中。专用寄存器,用于乘法和除法指令中。C进位标志或进位位,或布尔处理机中的累加器。进位标志或进位位,或布尔处理机中的累加器。$用于表示程序计数器的当前值。常出现在转移指用于表示程序计数器的当前值。常出现在转移指令中,例如:令中,例如:SJMP$表示循环等待。表示循环等待。间址寄存器或基址寄存器的前缀,如间址寄存器或基址寄存器的前缀,如Ri,DPTR。/位操作数的前缀,表示对该位操

16、作数取反,位操作数的前缀,表示对该位操作数取反,如如/bit。片内片内RAM的直接地址或寄存器。的直接地址或寄存器。()由由寻址的单元中的内容。寻址的单元中的内容。箭头左边的内容被箭头右边的内容所箭头左边的内容被箭头右边的内容所代替。代替。返回本节课堂作业课堂作业:P67:1、4、7课后作业课后作业:P67:2、3、5 谢谢 谢谢 大大 家家 再再 见!见!3.3 MCS-51单片机的指令系统单片机的指令系统学习目的及要求学习目的及要求 熟悉各类指令的功能、操作的对象和结果及熟悉各类指令的功能、操作的对象和结果及指令执行后对指令执行后对PSW各个位的影响。各个位的影响。8051指令系统的特点:

17、不同的存储空间寻址指令系统的特点:不同的存储空间寻址方式不同,适用的指令不同。方式不同,适用的指令不同。3.3.1 数据传送类指令数据传送类指令 3.3.2 算术运算类指令算术运算类指令 3.3.3 逻辑运算类指令逻辑运算类指令 3.3.4 控制程序转移类指令控制程序转移类指令 3.3.5 调用子程序及返回指令调用子程序及返回指令 3.3.6 位操作指令位操作指令 3.3.7 空操作指令空操作指令返回本章首页3.3.1 数据传送类指令数据传送类指令 数据传送类指令共数据传送类指令共28条,是将源操作数送到条,是将源操作数送到目的操作数。目的操作数。指令执行后,源操作数不变,目的操作数被指令执行

18、后,源操作数不变,目的操作数被源操作数取代。源操作数取代。数据传送类指令用到的助记符有数据传送类指令用到的助记符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP8种。种。源操作数可采用寄存器、寄存器间接、直接、源操作数可采用寄存器、寄存器间接、直接、立即、变址立即、变址5种寻址方式寻址;种寻址方式寻址;目的操作数可以采用寄存器、寄存器间接、目的操作数可以采用寄存器、寄存器间接、直接寻址直接寻址3种寻址方式。种寻址方式。数据传送指令是一种最基本最常用的操作数据传送指令是一种最基本最常用的操作,在在通常的程序中占有极大的比例。通常的程序中占有极大的比例。1以以A为目的操作

19、数为目的操作数MOV A,Rn;A RnMOV A,direct;A(direct)MOV A,Ri;A(Ri)MOV A,#data;A#data上述指令是将源操作数指定的内容送到累加器上述指令是将源操作数指定的内容送到累加器A中。中。上述操作只影响上述操作只影响PSW的的P标志位。标志位。2以Rn为目的操作数MOV Rn,A;Rn AMOV Rn,direct;Rn(direct)MOV Rn,#data;Rn#data上述指令是将源操作数指定的内容送到当前工作寄存器组上述指令是将源操作数指定的内容送到当前工作寄存器组R0R7中的某个寄存器。中的某个寄存器。例如:设例如:设(A)=78H,

20、(,(R5)=47H,(,(70)=F2H。MOV R5,A;R5(A),(,(R5)=78H MOV R5,70H;R5(70H),(,(R5)=F2H MOV R5,#A3H;R5 A3,(,(R5)=A3H注:注:8051指令系统中没有指令系统中没有“MOV Rn,Rn”传送指令。传送指令。3以直接地址为目的操作数以直接地址为目的操作数MOV direct,A;direct (A)MOV direct,Rn;direct(Rn)MOV direct,direct;目的;目的direct(源(源direct)MOV direct,Ri;direct ((Ri))MOV direct,#da

21、ta;direct#data 上述指令是将源操作数指定的内容送到由直接地址上述指令是将源操作数指定的内容送到由直接地址direct所指出的片内存储单元中所指出的片内存储单元中。4以间接地址为目的操作数MOV Ri,A;(;(Ri)AMOV Ri,direct;(;(Ri)(direct)MOV Ri,#data;(;(Ri)#data例如:设(例如:设(30H)=6FH,R1=40H,MOV R1,30H,结果结果30H单元中数据取出送入单元中数据取出送入R1间接寻址的间接寻址的40H单元,(单元,(40H)=6FH。5以以DPTR为目的操作数为目的操作数MOV DPTR,#data16 ;D

22、PTR#data16例如例如 执行执行 MOV DPTR,#2000H 后,后,(DPTR)=2000H。DPH 20H,DPL 00H这是唯一的这是唯一的16位立即数传送指令,把位立即数传送指令,把16位常数位常数送入送入DPTR。6访问外部数据访问外部数据RAM 在在8051指令系统中,访问片外指令系统中,访问片外RAM只能用寄存器间接只能用寄存器间接寻址,与累加器寻址,与累加器A配合,共四条指令。配合,共四条指令。MOVX A,Ri;A (Ri)MOVX Ri,A;(;(Ri)A 寻址范围是片外寻址范围是片外256BRAM。MOVX A,DPTR;A (DPTR)MOVX DPTR,A;

23、(;(DPTR)A 寻址范围是片外寻址范围是片外64KBRAM。7读程序存储器(读程序存储器(查表指令查表指令)注:数据表格放在注:数据表格放在程序存储器程序存储器中(只有两条指令)。中(只有两条指令)。近程查表指令(近程查表指令(256B)MOVC A,A+PC;A (A)+(PC)只能查找指令所在地址以后只能查找指令所在地址以后256B范围内的常数或代码。范围内的常数或代码。远程查表指令(远程查表指令(64KB)MOVC A,A+DPTR;A (A)+(DPTR)查表范围可达查表范围可达ROM的的64KB空间。空间。例如:在程序存储器中,数据表格为例如:在程序存储器中,数据表格为 1010

24、H:02H 1011H:04H 1012H:06H 1013H:08H执行程序执行程序 1000H:MOV A,#0DH;A 0DH,偏移量,偏移量 1002H:MOVC A,A+PC;A (0DH+1003H)1003H:MOV R0,A;R0H A 结果为(结果为(A)=02H,(,(R0)=02H,(,(PC)=1004H 又如:在程序存储器中,数据表格为又如:在程序存储器中,数据表格为 7010H:02H 7011H:04H 7012H:06H 7013H:08H执行程序执行程序 1000H:MOV A,#10H;A 10H,偏移量,偏移量 1002H:MOV DPTR,#7000H;

25、DPTR 7000H 1003H:MOVC A,A+DPTR;A (10H+7000H)结果为(结果为(A)=02H8数据交换数据交换l l 字节交换字节交换XCH A,Rn;A RnXCH A,direct;A(direct)XCH A,Ri;A(Ri)l l 半字节交换半字节交换XCHD A,Ri;A03(Ri)03 低低4位互换,高位互换,高4位不变。位不变。SWAP A;A A0 03 3AA4 47 7(高低两半字节交换)(高低两半字节交换)注:上述交换指令的目的操作数为累加器注:上述交换指令的目的操作数为累加器A。9堆栈操作 所谓堆栈是在片内所谓堆栈是在片内RAM中按中按“先进后出

26、,后进先出先进后出,后进先出”原则设置的专用存储区。数据的进栈出栈由指针原则设置的专用存储区。数据的进栈出栈由指针SP统一管理。统一管理。堆栈的操作有如下两条专用指令:堆栈的操作有如下两条专用指令:PUSH direct;SP(SP+1),(),(SP)(direct)POP direct;(;(direct)(SP),),SP SP-1 PUSH是进栈(或称为压入操作)指令。指令执行过是进栈(或称为压入操作)指令。指令执行过程如图程如图3-7所示。所示。POP是是出栈(或称为弹出操作)指令。指令执行过出栈(或称为弹出操作)指令。指令执行过程如图程如图3-8所示所示片内RAM30H11H10H

27、SP片内RAM50H40H11H10HSP40H30H片内RAM50H40H11H10H50HSP30H片内RAM40H11H10H34HSP30H34H34H执行前执行前执行PUSH指令后执行POP指令后图3-7 指令PUSH操作示意图图3-8 指令POP操作示意图【例【例3.1】将片内将片内RAM 30H单元与单元与40H单元中的内单元中的内容互换。容互换。方 法方 法 1(直 接 地 址 传 送(直 接 地 址 传 送法):法):MOV31H,30H MOV30H,40H MOV40H,31H SJMP$方法方法2(间接地址传送法):(间接地址传送法):MOVR0,#40H MOVR1,

28、#30H MOVA,R0 MOVB,R1 MOVR1,A MOVR0,B SJMP$方 法方 法 3(字 节 交 换 传 送(字 节 交 换 传 送法):法):MOVA,30H XCH A,40H MOV30H,A SJMP$方法方法4(堆栈传送法):(堆栈传送法):PUSH30H PUSH40H POP 30H POP 40H SJMP$返回本节课堂作业课堂作业:P67:8、9、10、11、12、13课后作业课后作业:P67:6 返回本节 谢谢 谢谢 大大 家家 再再 见!见!3.3.2 算术运算类指令算术运算类指令 8051算术运算指令包括加、减、乘、除基本算术运算指令包括加、减、乘、除基

29、本四则运算。四则运算。算术运算结果将使进位算术运算结果将使进位CY、半进位、半进位AC、溢、溢出位出位OV三个标志位置位或复位,只有加三个标志位置位或复位,只有加1和和减减1指令不影响这些标志位。指令不影响这些标志位。加、减、乘、除及十进制调整指令,目的操加、减、乘、除及十进制调整指令,目的操作数均为累加器作数均为累加器A。1加法指令(四条)加法指令(四条)ADD A,Rn;A A+RnADD A,direct;A A+(direct)ADD A,Ri;A A+(Ri)ADD A,#data;A A+#data例如:设(例如:设(A)=03CH,(,(R0)=0AAH,执行指令执行指令 ADD

30、C,R0后,后,A=6DH。(A):):1100 0011 +(R0):):1010 1010 1 0110 1101标志位标志位CY=1,AC=02带进位加指令(四条)带进位加指令(四条)ADDC A,Rn;A A+Rn+CADDC A,direct;A A+(direct)+CADDC A,Ri;A A+(Ri)+CADDC A,#data;A A+#data+CC为来自为来自PSW状态寄存器中的进位位状态寄存器中的进位位C。功能:把源操作数指出的内容和进位标志位功能:把源操作数指出的内容和进位标志位CY都加到累加器都加到累加器A中,结果存放在中,结果存放在A中。中。例如:设(例如:设(A

31、)=03CH,(,(R0)=0AAH,CY=1,执行指令,执行指令 ADDC,R0后,后,A=6EH。(A):):1100 0011 +(CY):):0000 0001 1100 0100 +(R0):):1010 1010 0110 1110标志位标志位CY=1,AC=03带借位减指令带借位减指令SUBB A,Rn;A A-Rn-CSUBB A,direct;A A-(direct)-CSUBB A,Ri;A A-(Ri)-CSUBB A,#data;A A-#data C功能:从累加器功能:从累加器A中减去源操作数指出的内容中减去源操作数指出的内容和进位标志位和进位标志位CY的值累加器的值

32、累加器A中,差存放在中,差存放在累加器累加器A中。中。例如,设(例如,设(A)=0C9H,(,(R2)=20H,(,(20H)=54H,CY=1,执行指令执行指令 SUBB,R2后,后,A=74H。(A):):1100 1001 (CY):):0000 0001 1100 1000 (R2):):0101 0100 0111 0100标志位标志位CY=0,AC=04乘法指令(一条)乘法指令(一条)MUL AB;BA AB A和和B中各存放一个中各存放一个8位无符号数,指令执行位无符号数,指令执行后,后,16位乘积的高位乘积的高8位在位在B中,低中,低8位存位存A中。中。例如例如:(A)=30H

33、,(B)=60H;执行执行 MUL AB 后,后,A=00H,B=12H。5除法指令除法指令 DIV AB;AB商在商在A中,余数在中,余数在B中中 A和和B中各存放一个中各存放一个8位无符号数,位无符号数,A放被除数,放被除数,B放除数。指令执行后,放除数。指令执行后,A中存放商,中存放商,B中存入中存入余数。若余数。若B=00H,则指令执行后,则指令执行后OV=1,A与与B不变。不变。例如例如:(A)=30H,(B)=07H;执行执行 DIV AB 后,后,A=06H,B=06H。6加加1指令指令(5条条)INC A;A A+1INC Rn;Rn Rn+1INC direct;(;(dir

34、ect)(direct)+1INC Ri;(;(Ri)(Ri)+1INC DPTR;DPTR DPTR+1功能:将操作数所指定的单元加,其操作不功能:将操作数所指定的单元加,其操作不影响影响PSW;若原单元内容为;若原单元内容为FFH,加,加1后溢后溢出为出为00H,也不影响,也不影响PSW。例如,(例如,(30H)=22H,执行,执行 INC 30H 后,后,(30H)=23H。7减减1指令指令DEC A;A A-1DEC Rn;Rn Rn-1DEC direct;direct(direct)-1DEC Ri;(;(Ri)(Ri)-1 功能:将操作数所指定的单元减,其操作功能:将操作数所指定

35、的单元减,其操作不影响不影响PSW;若原单元内容为;若原单元内容为00H,减,减1后溢后溢出为出为FFH,也不影响,也不影响PSW。例如:例如:R0=30H,(,(30H)=22H,执行执行 DEC R0 后,(后,(30H)=21H。8十进制调整指令十进制调整指令DA A ;把;把A中按二进制相加的结果调整成按中按二进制相加的结果调整成按BCD码相加的结果码相加的结果例如,例如,A=65BCD,B=78BCD,C=0,执行下列语,执行下列语句句ADD A,BDAA后,后,A=43 BCD,C=1。【例【例3.2】试把存放在试把存放在R1R2和和R3R4中的两个中的两个16位数相加,结果存于位

36、数相加,结果存于R5R6中。解:参考中。解:参考程序如下:程序如下:MOVA,R2;取第一个数的低;取第一个数的低8位位 ADDA,R4;两数的低;两数的低8位相加位相加 MOVR6,A;保存和的低;保存和的低8位位 MOVA,R1;取第一个数的高;取第一个数的高8位位 ADDCA,R3;两数的高;两数的高8位相加,位相加,并把低并把低8位相加时的进位位加进来位相加时的进位位加进来 MOVR5,A;把相加的高;把相加的高8位存入位存入R5寄存器中寄存器中 SJMP$返回本节课堂作业课堂作业:P67:8、9、10、11、12、13课后作业课后作业:P67:6谢谢 谢谢 大大 家家 再再 见!见!

37、3.3.3 逻辑运算指令逻辑运算指令1清零与取反指令清零与取反指令2移位指令移位指令3“与与”操作指令操作指令 4“或或”操作指令操作指令5“异或异或”操作指令操作指令返回本节3.3.4 程序转移类指令程序转移类指令1无条件转移指令无条件转移指令l l 绝对(短)转移指令绝对(短)转移指令AJMP addr11;PC100 addr11 l l 长转移指令长转移指令LJMP addr16;PC addr16l l 短(相对)转移指令短(相对)转移指令SJMP rel;PC PC+2+rell l 间接转移指令间接转移指令JMPA+DPTR;PC A+DPTR2条件转移指令条件转移指令l l 累

38、加器为零(非零)转移指令累加器为零(非零)转移指令l l 减减1非零转移指令非零转移指令l l 两数不等转移指令两数不等转移指令l l 相对偏移量相对偏移量rel的求法的求法0000H07FFH0800H0FFFH1000H17FFH1800H1FFFH2000H27FFH2800H2FFFH3000H37FFH3800H3FFFH4000H47FFH4800H4FFFH5000H57FFH5800H5FFFH6000H67FFH6800H6FFFH7000H77FFH7800H7FFFH8000H87FFH8800H8FFFH9000H97FFH9800H9FFFHA000HA7FFHA80

39、0HAFFFHB000HB7FFHB800HBFFFHC000HC7FFHC800HCFFFHD000HD7FFHD800HDFFFHE000HE7FFHE800HEFFFHF000HF7FFHF800HFFFFH表3-1 程序存储器空间32个2K地址范围返回本节3.3.5 调用子程序及返回指令调用子程序及返回指令1调用子程序指令调用子程序指令LCALL addr16;PCPC+3,SPSP+1,(,(SP)PC710;S P S P+1,(,(S P)P C1 5 8,PCaddr16ACALL addr11;PC PC+2,SPSP+1,(,(SP)PC70;SP SP+1,(,(SP)P

40、C158,PC100addr112返回指令返回指令RET ;PC158(SP),),SPSP-1 ;PC70(SP),),SPSP-1RETI ;PC158(SP),),SPSP-1 ;PC70(SP),),SPSP-1返回本节3.3.6 位操作指令位操作指令1位数据传送指令位数据传送指令MOV C,bit;C(bit)MOV bit,C;bitC2位状态修改指令位状态修改指令CLRC;C0CLRbit;(;(bit)0CPLC;CCPLbit;(;(bit)(bit)SETB C;C1SETB bit;(;(bit)13位逻辑运算指令位逻辑运算指令ANL C,bit;CC(bit)ANL C

41、,/bit;CC(bit)ORL C,bit;CC(bit)ORL C,/bit;CC(bit)4位转移指令位转移指令JCrel;若若C=1,则转移(则转移(PCPC+2+rel);否则程序顺序执行);否则程序顺序执行JNC rel;若若C=0,则转移(则转移(PCPC+2+rel);否则程序顺序执);否则程序顺序执JBbit,rel;若若(bit)=1,则转移(则转移(PCPC+3+rel);否则程序顺序执行);否则程序顺序执行JNB bit,rel;若若(bit)=0,则转移(则转移(PCPC+3+rel);否则程序顺序执行);否则程序顺序执行JBC bit,rel;若若(bit)=1,则

42、则PCPC+3+rel,(,(bit)0;否则程序顺序;否则程序顺序执行执行功能:分别检测指定位是功能:分别检测指定位是1还是还是0,若条件符合,若条件符合,则则CPU转向指定的目标地址去执行程序;否转向指定的目标地址去执行程序;否则,顺序执行下条指令。则,顺序执行下条指令。返回本节3.3.7 空操作指令空操作指令 NOP ;PC PC+1 这是一条单字节指令。执行时,不作任何操这是一条单字节指令。执行时,不作任何操作(即空操作),仅将程序计数器作(即空操作),仅将程序计数器PC的内容的内容加加1,使,使CPU指向下一条指令继续执行程序。指向下一条指令继续执行程序。这条指令常用来产生一个机器周期的时间延这条指令常用来产生一个机器周期的时间延迟。迟。返回本节 本章到此结束,本章到此结束,谢谢您的光临!谢谢您的光临!结束放映返回本章首页THANK YOU VERY MUCH!

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!