第3章MCS51单片机指令系统

上传人:汽*** 文档编号:570106342 上传时间:2024-08-02 格式:PPT 页数:46 大小:1.78MB
返回 下载 相关 举报
第3章MCS51单片机指令系统_第1页
第1页 / 共46页
第3章MCS51单片机指令系统_第2页
第2页 / 共46页
第3章MCS51单片机指令系统_第3页
第3页 / 共46页
第3章MCS51单片机指令系统_第4页
第4页 / 共46页
第3章MCS51单片机指令系统_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《第3章MCS51单片机指令系统》由会员分享,可在线阅读,更多相关《第3章MCS51单片机指令系统(46页珍藏版)》请在金锄头文库上搜索。

1、【学习目的和要求学习目的和要求】了解了解MCS-51MCS-51单片机的汇编指令格式、指令的分类和寻址方式单片机的汇编指令格式、指令的分类和寻址方式;掌掌握指令的含义、功能和用途握指令的含义、功能和用途; ;掌握掌握MCS-51MCS-51汇编语言编程的基本方法汇编语言编程的基本方法; ;熟练地使用熟练地使用MCS-51MCS-51单片机指令编制一些简单的程序。单片机指令编制一些简单的程序。第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统第第3章章 MCS-51单片机指令系统单片机指令系统3. 1汇编语言的格式汇编语言的格式计算机工作的基本原理计算机工作的基本原

2、理是存储程序并执行程序,而程序则由能实现某种功能的指令序列构成。编写程序时使用的程序设计语言有三种: 机器语言、汇编语言汇编语言和高级语言汇编语言是用助记符来表示机器指令的一种程序设计语言汇编语言是用助记符来表示机器指令的一种程序设计语言 其语句格式如下: 标号:标号: 操作码操作码 操作数操作数 ; 注释注释 操作码操作码:规定指令进行什么操作规定指令进行什么操作操作数:指令操作的对象指令操作的对象单字字节指令指令操作码、操作数同在一个字节中双字双字节指令指令 由两个字节组成:操作码+操作数(或操作数所在的地址)操作数可以是立即数、直接地址和寄存器等。三字三字节指令指令由三个字节组成:操作码

3、+操作数+操作数第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统 MCS-51 MCS-51单片机的指令格式按字节长度可分为单片机的指令格式按字节长度可分为 无操作数的单字节指令无操作数的单字节指令 含有寄存器编号的单字节指令含有寄存器编号的单字节指令3.2 寻址方式寻址方式第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统寻址方式就是在指令中说明操作数所在地址的方寻址方式就是在指令中说明操作数所在地址的方法法共共7 7种寻址方式种寻址方式: 立即寻址立即寻址 直接寻址直接寻址 寄存器寻址寄存器寻址 寄存器间接寻址寄存器间接寻址 基

4、寄存器加变址寄存器间接寻址基寄存器加变址寄存器间接寻址 相对寻址相对寻址 位寻址位寻址序号序号寻址方式寻址方式指令指令寻址空间寻址空间立即寻址立即寻址操作数前面加前缀操作数前面加前缀 “# #”程序存储器程序存储器 直接寻址直接寻址操作数直接以单元地址形操作数直接以单元地址形式给出式给出内部内部RAMRAM128128个字节单元、位个字节单元、位地址空间、特殊功能寄存器地址空间、特殊功能寄存器 寄存器寻址寄存器寻址操作数在寄存器中操作数在寄存器中由指令指出某一个寄存器由指令指出某一个寄存器中的内容作为操作数中的内容作为操作数工作寄存器、特殊功能寄存工作寄存器、特殊功能寄存器器ACCACC、寄存

5、器、寄存器B B、数据指针、数据指针DPTRDPTR及布尔累加器及布尔累加器C C寄存器间接寄存器间接寻址寻址寄存器中存放的是操作数寄存器中存放的是操作数的地址,加标志的地址,加标志 内部内部RAMRAM低低128128个单元、个单元、外部外部RAMRAM64K64K字节的间接寻址字节的间接寻址 变址寻址变址寻址DPTRDPTR或或PCPC作基址寄存器,作基址寄存器,累加器累加器A A作为变址寄存器作为变址寄存器1616位的地址,访问位的地址,访问程序存储程序存储器器中的数据表格中的数据表格 相对寻址相对寻址当前当前PCPC值值+ +relrel= =源地址源地址+ +转移指令字节数转移指令字

6、节数+ +relrel程序存储器,程序存储器,偏移量偏移量relrel 是是有符号的单字节数,相对值有符号的单字节数,相对值在在-128-128+127+127范围内范围内位寻址位寻址指令中直接使用位地址指令中直接使用位地址内部内部RAMRAM中的中的位寻址区位寻址区特殊功能寄存器中位寻址特殊功能寄存器中位寻址第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统立即寻址立即寻址直接寻址直接寻址寄存器寻址寄存器寻址第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统寄存器间接寻址寄存器间接寻址变址寻址变址寻址相对寻址相对寻址MCS-51MC

7、S-51的基本指令共的基本指令共111111条,按条,按指令所占的字节指令所占的字节来分来分 (1) 单字节指令49条; (2) 双字节指令45条; (3) 三字节指令17条。按指令的按指令的执行时间执行时间来分:来分: (1) 1个机器周期(12个时钟振荡周期)指令64条 (2) 2个机器周期(24个时钟振荡周期)指令45条 (3)4个机器周期(48个时钟振荡周期)乘、除两条指令 12MHz晶振:机器周期为1s3.3 指令系统指令系统3.3.1指令分类指令分类第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统按指令的功能,MCS-51指令系统可分为下列五类:1.

8、 1. 数据传送类数据传送类(28(28条条) )2. 2. 算术运算类算术运算类(24(24条条) )3. 3. 逻辑操作类逻辑操作类(25(25条条) )4. 4. 位操作类位操作类(17(17条条) )5. 5. 控制转移类控制转移类(17(17条条) )第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统在分类介绍之前,先描述一下指令符号的意义 R Rn n 当前工作寄存器区中的工作寄存器R0 R7 ,n= 07 R Ri i 当前寄存器区中可作间接寻址寄存器的2个寄存器 R0、R1(i=0,1),间接寻址的RAM单元(0255) directdirect

9、直接地址,即8位的内部RAM或特殊功能寄存器地址#data#data 指令中的8位立即数#data#data1616指令中的16位立即数addraddr1616 16位目标地址,用于LCALL和LJMP指令addraddr1111 11位目标地址,用于ACALL和AJMP指令第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统 relrel 相对转移指令中的偏移量,为8位的带符号补码数DPTR DPTR 数据指针,用作16位的数据地址寄存器 A A 累加器 B B 特殊功能寄存器,专用于乘(MUL)和除(DIV)指令 C C (或Cy) 进位标志或位累加器 bit

10、bit 内部数据RAM或特殊功能寄存器中的直接寻址位 间接寻址寄存器前缀 (X) (X) X中的内容 (X) (X) 由X寻址的单元内容 位取反 箭头右边的内容被箭头左边的内容所取代3.3. 2数据传送类指令数据传送类指令第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统 数据传送指令一般的操作是把源操作数传送到指令所指定的目标地址,指令执行后,源操作数不变,目的操作数被源操作数所代替。 第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统1. 1. 内部数据存储器间数据传送指令内部数据存储器间数据传送指令 (1)(1)立即寻址立即寻址

11、 MOV , 操作码助记符 目的操作数 源操作数 功能注释 机器代码(H) MOV A, data ; (A) data 74 data MOV direct, data ; (direct) data 75 direct data MOV Ri, data ; (Ri) data 7677 data MOV Rn, data ; (Rn) data 787F data MOV DPTR, data16; (DPTR)data16 90 data15-data0该指令能实现内部RAM之间、特殊功能寄存器之间或特殊功能寄存器与内部RAM直接数据传送(2) 寄存器寻址寄存器寻址 MOV direc

12、t, A ; (direct) (A) , F5 direct MOV Ri, A ; (Ri) (A) , F6F7 MOV Rn, A ; (Rn) (A) , F8FF MOV A, Rn ; (A) (Rn) , E8EF MOV direct, Rn ; (direct) (Rn) , 888F direct (3) 直接寻址直接寻址 MOV A, direct ; (A)(direct) , E5 direct MOV Rn, direct ; (Rn)(direct) , A8AF direct MOV Ri, direct ; (Ri)(direct) , A6A7 direc

13、t MOVdirect2,direct1;(direct2)(direct1),85direct1 direct2 (4) 寄存器间接寻址寄存器间接寻址 MOV A, Ri ; (A) (Ri) ,E6E7 MOV direct, Ri ; (direct) (Ri) ,8687 direct第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统2.2. 外部数据存储器数据传送指令外部数据存储器数据传送指令 由由DPTRDPTR内容指示外部数据存储器地址内容指示外部数据存储器地址 MOVX A, DPTR ; (A) (DPTR) , E0 MOVX DPTR, A

14、; (DPTR) (A) , F0 由由RiRi内容指示外部数据存储器地址内容指示外部数据存储器地址 MOVX A, Ri ; (A) (Ri) , E2E3 MOVX Ri, A ; (Ri) (A) , F2F3【例例 3-1】设外部RAM (0203H)=FFH, 分析以下指令执行后的结果。 MOV DPTR, 0203H ; (DPTR) 0203H , 90 02 03 MOVXA, DPTR ; (A) (DPTR) , E0 MOV 30H, A ; (30H) (A) , F5 30 MOV A, 0FH ; (A) 0FH , 74 0F MOVXDPTR, A ; (DPT

15、R) (A) , F0 执行结果为: (DPTR)=0203H, (30H)=FFH, (0203H)=(A)=0FH。 MOVX ,第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统3. 3. 程序存储器向累加器程序存储器向累加器A A传送数据指令传送数据指令采用变址寻址方式, 把程序存储器(ROM或EPROM)中存放的表格数据读出, 传送到累加器A。 MOVC A, A+DPTR ; (A)(A)+(DPTR) , 93 MOVC A, A+PC ; (PC)(PC)+1,(A)(A)+(PC),83【例例 3-2】设(A)= 30H,执行指令: 地址 指令

16、1000H MOVC A,A+PC结果为程序存储器中1031H单元的内容送入A。【例例 3-3】设(DPTR)= 8100H,(A)= 30H,执行指令 MOVC A,ADPTR结果为程序存储器中8130H单元的内容送入累加器A。MOVC ,第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统4.4.数据交换指令数据交换指令(1)(1)字节交换指令字节交换指令将累加器A和源操作数内容相互交换。源操作数有寄存器寻址、直接寻址和寄存器间接寻址等。XCH A, direct ; (A) (direct) , C5 directXCH A, Ri ; (A) (Ri) i=

17、0,1 , C6C7XCH A, Rn ; (A) (Rn) n=07 , C8CF(2) (2) 半字节交换指令半字节交换指令将A的低4位和R0或R1指出的RAM单元低4位相互交换,各自的高4位不变。XCHD A, Ri ; (A30) (Ri)30) i=0,1, D6D7SWAP A ; (A74) (A30) , C4【例例 3-4】设(A)=80H,(R7)=08H,执行指令: XCH A,R7 ;(A)(R7) 结果:(A)=08H,(R7)=80H第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统5. 5. 栈操作指令栈操作指令堆栈指针堆栈指针SP指

18、出堆栈的栈顶位置指出堆栈的栈顶位置(1) (1) 进栈指令进栈指令指令功能是首先将栈指针SP的内容加1,然后把直接地址指出的单元内容传送到栈指针SP所指的内部RAM单元中。 PUSH direct ;SP(SP)+1, (SP)(direct)(2) (2) 出栈指令出栈指令指令功能是栈指针SP所指的内部RAM单元内容送入直接地址指出的字节单元中,栈指针SP的内容减1。 POP direct ;direct (SP) SP (SP)-1第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统【例例 3-5】设 (SP)=60H,(ACC)=30H,(B)=70H,执行下

19、列指令: PUSH ACC ;SP (SP)+1,即SP 61H,61H 30H PUSH B ;SP (SP)+1,即SP 62H,62H 70H 结果:(61H)= 30H,(62)= 70H,(SP)= 62H【例例 3-6】设(SP)=62H,(62H)=70H,(61H)=30H,执行下列指令:POP DPH ;DPH (SP),SP (SP)-1POP DPL ;DPL (SP),SP (SP)-1结果:(DPTR)= 7030H,(SP)= 60H执行POP direct指令不影响标志,但当直接地址为PSW时,可以使一些标志改变,这也是通过指令强行修改标志的一种方法。【例例 3-

20、7】设已把PSW的内容压入栈顶,用下列指令修改PSW内容使FO,RS1,RS0均为1,最后用出栈指令把内容送回程序状态字PSW,实现对PSW内容的修改。MOV R0,SP ;取栈指针ORL R0,#38H ;修改栈顶内容POP PSW ;修改PSW3. 3. 3 算术运算类指令算术运算类指令第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统单字节加、减、乘、除法指令,是针对8位二进制无符号数;执行结果将影响进位CY、辅助进位AC、溢出标志位OV;但增1和减1指令不影响上述标志;对于特殊功能寄存器,字节地址D0H或位地址D0HD7H进行操作将影响标志。指令名称操作码

21、助记符加法指令加法指令ADD带进位加法指令带进位加法指令ADDC带进位减法指令带进位减法指令SUBB A乘法指令乘法指令MUL除法指令除法指令DIV增增1指令指令INC减减1指令指令DEC十进制调整指令十进制调整指令DA第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统1.1.加法指令加法指令 ADD A, Rn n=07 ADD A,direct ADD A, Ri i=0,1 ADD A,#data 【例例 3-8】设(A)=85H,(R0)=20H,(20H)=0AFH,执行指令: ADD A,R0 结果:(A)=34H; CY =1,AC=1,OV=12.

22、 2. 带进位加法指令带进位加法指令 ADDC A, Rn n=07 ADDC A,direct ADDC A, Ri i=0,1 ADDC A,#data 【例例 3-9】设设(A)=85H,(20H)=OFFH,CY=1,执行指令: ADDC A,20H 结果: (A)=85H;CY=1,AC=1,OV=0 P=1 (A中1 的位数 为奇数)第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统3. 3. 带进位减法指令带进位减法指令 SUBB A,Rn n=07 SUBB A,direct SUBB A,Ri i=0,1 SUBB A,#data 注意如果位7有

23、借位,则CY置位,否则CY清“0”;如果位3有借位,则AC置位,否则AC清“0”;如果位6有借位而位7没有借位或者位7有借位而位6没有借位则溢出标志OV置位,否则溢出标志清“0”。第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统4 4. . 增增1 1指令指令 INC A INC Rn n=07 INC direct INC Ri i=0,1 INC DPTR 【例例 3-10】设(A)=0FFH,(R3)=0FH,(40H)=0F0H(R0)=30H ,(30H)=00H,执行下列指令: INC A ;A(A)+1 INC R3 ;R3(R3)+1 INC 4

24、0H ; 40H(40H)+1 INC R0 ;(R0)(R0)+1结果:(A)=00H,(R3)=10H,(40H)= F1H,(30H)= 01H, PSW不变。5. 5. 减减1 1指令指令 DEC A DEC Rn n=07 DEC direct DEC Ri i=0,1【例例 3-11】设(A)=0FH,(R7)=19H,(30H)=00H,(R1)=31H,(31H)=0FFH,执行指令: DEC A ; A(A)-1 DEC R7 ; R7(R7)-1 DEC 30H ; 30H(30H)-1 DEC R1 ;(R1)(R1)-1结果: (A)= 0EH,(R7)=18H,(30

25、H)=0FFH,(31H)=0FEH,不影响标志。第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统6. 6. 乘法指令乘法指令 MUL AB 【例例 3-12】设(A)=50H,(B)=0A0H,执行指令: MUL AB 结果:(B)=32H,(A)=00H (即积为3200H)。CY=0,OV=1。7. 7. 除法指令除法指令 DIV AB 【例例 3-13】设(A)= 0FBH,(B)= 12H,执行指令。 DIV AB 结果:(A)= 0DH,(B)= 11H,CY = 0,OV = 0。8.8.十进制调整指令十进制调整指令 DA A【例例 3-14】设(

26、A) =56H, (R5)=67H,执行指令: ADD A,R5 DA A 结果:(A)=23H,CY=1第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统标志位影响第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统算术运算类指令3.3. 4 逻辑操作类指令逻辑操作类指令第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统1 1 简单逻辑操作指令简单逻辑操作指令 累加器清零 CLR A 累加器内容按位取反 CPL A 左循环移位指令 累加器内容循环左移 RL A 累加器带进位左循环移位指令 RLC A 右循

27、环移位指令 累加器内容循环右移指令 RR A 累加器带进位右循环移位指令 RRC A 累加器半字节交换指令 SWAP A 【例例3-153-15】设(A)=10101010H,执行指令: CPL A 结果:(A)=01010101H【例例3-163-16】设(A)=0C5H,执行指令: SWAP A 结果:(A)=5CH第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统2. 2. 逻辑与指令逻辑与指令 ANL 3. 3. 逻辑或指令逻辑或指令 ORL4. 4. 逻辑异或指令逻辑异或指令 XRL ANL ORL XRL A,Rn n=07A,direct A,Ri

28、i=0,1A,#data direct,A direct,#data 第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统【例例3-173-17】设(A)= 07H, (R0)= 0FDH执行指令 ANL A,R0 0 0 0 0 0 1 1 1 ) 1 1 1 1 1 1 0 1 0 0 0 0 0 1 0 1 结果:(A)= 05H【例3-18】设(P1)= 05H,(A)= 33H执行指令 ORL P1,A 0 0 0 0 0 1 0 1 ) 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 结果:(P1)= 37H【例3-19】设(A)= 90

29、H,(R3)= 73H,执行指令: XRL A, R3 1 0 0 1 0 0 0 0 NOR 0 1 1 1 0 0 1 1 1 1 1 0 0 0 1 1结果:(A)= 0E3H 第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统1.1.数据位传送指令数据位传送指令 MOV C,bit 或 MOV bit,C 2. 2. 位变量修改指令位变量修改指令 CLR C 或 CLR bit CPL C 或 CPL bit SETB C 或 SETB bit 进行位清“0”,取反,置“1”,不影响其他标志。3. 3. 位变量逻辑与指令位变量逻辑与指令 ANL C,bit

30、 或 ANL bit,C 4. 4. 位变量逻辑或指令位变量逻辑或指令 ORL C,bit 或 ORL bit,C 3.3. 5 位操作类指令位操作类指令第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统【例例3-20】 MOV C,06H ;Cy (20H.6) MOV P1.0,C ;P1.0Cy【例例3-21】 CLR C ;CY 0 CLR 27H ;24H.7 0 CPL 08H ;21H.0(21H.0) SETB P1.7 ; P1.71【例例3-22】设P1为输入口,P3.0作输出线,执行下列命令: MOV C,P1.0 ;CY (P1.0) AN

31、L C,P1.1 ;CY (CY) (P1.1) ANL C, P1.2 ;CY (CY)(P1.2) MOV P3.0 ,C ;P3.0 CY 结果: P3.0 = (P1.0)(P1.1)(P1.2)【例例3-23】设 P1口为输出口,执行下列指令: MOV C,00H ;CY (20H.0) ORL C,01H ;CY (CY)(20H.1) ORL C,02H ;CY (CY)(20H.2) ORL C,03H ;CY (CY)(20H.3) ORL C,04H ;CY (CY)(20H.4) ORL C,05H ;CY (CY)(20H.5) ORL C,06H ;CY (CY)(2

32、0H.6) ORL C,07H ;CY (CY)(20H.7) MOV P1. .0,C ;P1. .0 CY结果:结果:内部内部RAM中中20个单元个单元只要有一位只要有一位为为1,则,则P1.0输出就输出就为为1。第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统5. 5. 位变量条件转移指令位变量条件转移指令 助记符 转移条件 JC rel CY=1 JNC rel CY=0 JB bit,rel (bit)=1 JNB bit,rel (bit)=0 JBC bit,rel (bit)=1这一组指令的功能为:JC:如果进位标志CY为1,则执行转移。即跳到标

33、号rel处执行,为零则执行下一条指令。JNC:如果进位标志CY为0,则执行转移。即跳到标号rel处执行,为1则执行下一条指令。JB:如果直接寻址位的值为1,则执行转移。即跳到标号rel处执行,为零则执行下一条指令。JNB:如果直接寻址位的值为0,则执行转移。即跳到标号rel处执行,为1则执行下一条指令。JBC:如果直接寻址位的值为1,则执行转移,并清除该位。即跳到标号rel处执行,为零则执行下一条指令,然后将直接寻址的位清“0”。3. 3 . 6 控制转移类指令控制转移类指令第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统1. 1. 无条件转移指令无条件转移指令

34、 绝对转移指令绝对转移指令 AJMP addr11 相对转移指令 SJMP rel 在编写程序时,只需直接写出要转向的目标地址标号。LOOP: MOV A,R5 SJMP LOOP 相对偏移量rel的值需要根据跳转的目标地址进行计算: 向前转移:rel= FFH源地址+目标地址1 向后转移:rel=目标地址源地址2 长跳转指令 LJMP addR16 例如执行指令: LJMP 2A00H 间接跳转指令 JMP A+DPTR 第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统【例例3-24】如果累加器A中存放待处理命令编号(07),程序存储器中存放着标号为PTAB的

35、转移表首址,则执行下面的程序,将根据A中命令编号转向相应的命令处理程序。PM: MOV R1 ,A ;(A)*3A,(因LJMP指令 在程序存储器中占三字节) RL AADD A,R1 MOV DPTR,#PTAB ;转移表首址DPTR JMP A+DPTR ;据A值跳转到不同入口PTAB: LJMP PM0 ;转向命令0处理入口 LJMP PM1 ;转向命令1处理入口 LJMP PM2 ;转向命令2处理入口 LJMP PM3 ;转向命令3处理入口 LJMP PM3 ;转向命令3处理入口 LJMP PM5 ;转向命令5处理入口 LJMP PM6 ;转向命令6处理入口 LJMP PM7 ;转向命

36、令7处理入口第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统2 2条件转移指令条件转移指令 JZ rel ;如果(A)= 0,则执行转移 JNZ rel ;如果(A) 0,则执行转移(1)条件满足时转移,先把PC指向下一条指令的第一个字节地址,再把有符号的相对偏移量加到PC上,计算转向的目的地址。(2)条件不满足时则顺序执行下面的指令。3 3比较不相等转移指令比较不相等转移指令CJNE A,direct,rel CJNE Rn,#data,rel CJNE A,#data,rel CJNE R1,#data,rel 4 4减减1 1不为不为0 0转移指令转移指令

37、DJNZ Rn,rel ;n = 07DJNZ direct,rel 【例例3-25】延时程序:START:SETB P1.1 ;P1.11 DL:MOV R0 ,#03H ;R003H(置初值) DL0:MOV 31H,#0F0H ;31HF0H(置初值) DL1:DJNZ 31H,DL1 ;31H( 31H)1, DJNZ R0,DL0 ;R0(R0)1, CPL P1.1 ;P1.1求反 AJMP DL 第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统5 5、调用及返回指令、调用及返回指令 绝对调用指令 ACALL addr11 长调用指令 LCALL a

38、ddr16 ACALL执行时PC加2获得下条指令的地址,并把这16位地址压入堆栈,栈指针加2。然后把指令中的a10a0值送入PC中的PC10PC0位,PC的PC15PC11不变。必须与ACALL后面一条指令的第一个字节在同一个2K区域的存储器区内。 LCALL执行时把PC内容加3获得下一条指令首地址,并把它压入堆栈(先低字节后高字节),然后把指令的第二、第三字节(a15 a8,a7 a0)装入PC中,转去执行该地址开始的子程序。可以调用存放在存储器中64K字节范围内任何地方的子程序。【例3-26】设(SP)=60H,标号地址START为0100H,标号MIR为8100H,执行指令:START:

39、LCALL MIR结果:(SP)=62H,(61H)=03H,(62H)=01H,(PC)=8100H。【例3-27】设(SP)=60H,标号地址HERE为0123H,子程序SUB的入口地址为0335H,执行指令:HERE:ACALL SUB结果:(SP)=62H,堆栈区内(61H)=25H,(62H)=01H, (PC)=0335H第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统6. 6. 返回指令返回指令 (1)子程序返回指令 RET (2)中断返回指令 RETI 子程序返回指令是把栈顶相邻两个单元的内容弹出送到PC,SP的内容减2,程序返回到PC值所指的指

40、令处执行。RET指令通常安排在子程序的末尾,使程序能从子程序返回到主程序。【例例3-283-28】设(SP)=62H,(62H)=07H,(61H)=30H,执行指令RET结果:(SP)=60H,(PC)=0730H,CPU从0730H开始执行程序。 这条指令的功能与RET指令相类似。通常安排在中断服务程序的最后,它的应用在中断一节中讨论。7 7空操作指令空操作指令 NOP 空操作也是CPU控制指令,它没有使程序转移的功能,一般用于软件延时。因仅此一条,故不单独分类。第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统3.4 伪指令伪指令第第3 3章章 M MC C

41、S S- -5 51 1单单片片机机指指令令系系统统指令名称指令名称指令格式指令格式指令解释指令解释设置起始地址设置起始地址ORG nnOriging定义字节定义字节 DB Define Byte定义字定义字 DW Define Word预留存储区预留存储区 DS Define Storage为标号赋值为标号赋值 EQU nn或表达式或表达式EquateDATA指令指令符号名符号名 DATA 表达式表达式XDATA指令指令 符号名符号名 XDATA 表达式表达式External Data位地址符号位地址符号字符名称字符名称 BIT 位地址位地址源程序结束源程序结束 END 第第3 3章章 M

42、MC CS S- -5 51 1单单片片机机指指令令系系统统1.1.设置起始地址设置起始地址ORG ORG 【例例3-29】ORG 2000H MOV A,20H 2.2.定义字节定义字节DBDB 【例例3-303-30】 ORG 1000H SEG1: DB 65H,68H,“4” SEG2: DB DAY END则 (1000H)=65H;SEG1的地址为1000H (1001H)=68H;存放数字68H (1002H)=34H;数字4的ASCII码 (1003H)=44H;D的ASCII码 (1004H)=41H;A的ASCII码 (1005H)=59H;Y的ASCII码 使用时应注意,

43、作为操作数部分的项或项表,若为数值,其取值范围应为00HFFH;若为字符串,其长度应限制在80个字符内(由汇编程序决定)。第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统3.3.定义字定义字DWDW 【例例3-313-31】 2200:DW 253AH,58H则: (2200H)=25H (2201H)=3AH (2202H)=00H (2203H)=58H伪指令DB和DW均是根据原程序的需要,用来定义程序中用到的数据(地址)或数据块的。一般应放在原程序之后,汇编后的数据块将紧挨着目标程序的末尾地址开始存放。 4.4.预留存储区预留存储区DSDS 【例例3-32

44、3-32】 ORG 2000H SEG: DS 06HDB 35H,45H 表示从2000H单元开始,连续预留6个存储单元,然后从2006H单元开始按DB指令给内存单元赋值,即(2006H)=35H,(2007H)=45H。第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统5.5.为标号赋值为标号赋值EQUEQU 【例例3-333-33】 SG: EQU R1 ;SG与R1等值 DE: EQU 40H ;DE与40H等值 MOV A,SG ;(R1)A MOV R7,DE ;(40H)R7 6. DATA6. DATA指令指令 【例例3-343-34】BUFFER

45、 DATA 60H 【例例3-353-35】 MAIN DATA 40H 汇编后,MAIN的值为40H。7. XDATA7. XDATA指令指令【例例3-363-36】 BUFFER XDATA 6000H8.8.位地址符号位地址符号BITBIT【例例3-373-37】 MEN BIT P1.3 GEN BIT 08H 汇编后,位地址P1.3、08H分别赋给变量MEN和GEN。第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统本章小结本章小结MCS-51 单片机指令的基本格式 由标号、操作码、操作数和注释组成。其中标号为选择项,可有可无;操作码项必须有;操作数可以

46、是03个。MCS-51 单片机共有111条指令,按指令长度指令长度分类,可分为单字节、双字节和3字节指令。按指令执行时间指令执行时间分类,可分为1个机器周期、2个机器周期和4个机器周期指令。按指令功能指令功能分类,分为五大类数据传送类(29条)、 算术运算类(24条)、 逻辑运算类(24条)、 控制转移类(24条) 位操作类 (17条)第第3 3章章 M MC CS S- -5 51 1单单片片机机指指令令系系统统本章小结本章小结MCS-51 单片机有7种寻址方式:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。MCS-51 单片机的硬件结构中有1个位处理器,指令系统中相应设计了一个处理位变量的指令子集,在设计需要大量处理位变量的程序时,这个子集十分有效、方便。这是MCS-51 单片机的一大特点。MCS-51 单片机有8条伪指令,伪指令与CPU可执行指令的形式类似,但在汇编时不产生机器码,因此,CPU不执行伪指令。伪指令是在汇编时供汇编程序识别和执行的命令,为汇编提供某种控制信息。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号