第MCS5单片机指令系统.ppt
《第MCS5单片机指令系统.ppt》由会员分享,可在线阅读,更多相关《第MCS5单片机指令系统.ppt(79页珍藏版)》请在三一办公上搜索。
1、,第3章 MCS-51单片机指令系统,3.1 单片机指令系统概述3.2 寻址方式3.3 分类指令,MCS-51单片机指令系统的特点:,(1)指令执行快。(2)指令短,约有一半的指令为单字节指令。(3)用一条指令即可实现2个一字节的相乘或相除。(4)具有丰富的位操作指令。(5)可直接用传送指令实现端口的输入输出操作。,3.1 单片机指令系统概述,在MCS-51指令中,一般指令主要由操作码、操作数组成。指令应具有以下功能:(1)操作码指明执行什么性质和类型的操作。例如,数的传送、加法、减法等。(2)操作数指明操作的数本身或者是操作数所在的地址。(3)指定操作结果存放的地址。,指令格式,1.单字节指
2、令 单字节指令格式由8位二进制编码表示,例如:CLR AE4H 2.双字节指令 双字节指令格式由两个字节组成,操作码和操作数,例如:MOV A,10H74H 10H 3.三字节指令 三字节指令格式中,第一个字节为操作码,后两个字节为操作数,例如:MOV 40H,30H75H 40H 30H,一条汇编语言指令中最多包含 4 个区段,如下所示:标号:操作码 操作数;注释 4 个区段之间要用分隔符分开:标号与操作码之间用“:”隔开,操作码与操作数之间用空格隔开,操作数与注释之间用“;”隔开,如果操作数有两个以上,则在操作数之间要用逗号“,”隔开(乘法指令和除法指令除外)。,指令描述符号介绍,Rn当前
3、选中的寄存器区中的8个工作寄存器R0R7(n=07)。Ri当前选中的寄存器区中的2个工作寄存器R0、R1(i=0,1)。direct8位的内部数据存储器单元中的地址。#data包含在指令中的8位常数。#data16包含在指令中的16位常数。addr1616位目的地址。addr1111位目的地址。,rel8位带符号的偏移字节,简称偏移量。DPTR数据指针,可用作16位地址寄存器。bit内部RAM或专用寄存器中的直接寻址位。A累加器。B专用寄存器,用于乘法和除法指令中。C进位标志或进位位,或布尔处理机中的累加器。,间址寄存器或基址寄存器的前缀,如Ri,DPTR。/位操作数的前缀,表示对该位操作数取
4、反,如/bit。片内RAM的直接地址或寄存器。()由寻址的单元中的内容。箭头左边的内容被箭头右边的内容所代替。,3.2 寻址方式,所谓寻址方式,就是寻找操作数地址的方式,在用汇编语言编程时,数据的存放、传送、运算都要通过指令来完成。编程者必须自始至终都要十分清楚操作数的位置,以及如何将它们传送到适当的寄存器去参与运算。每一种计算机都具有多种寻址方式。寻址方式的多少是反映指令系统优劣的主要指标之一。,在 MCS-51单片机指令系统中,有以下 7种寻址方式:(1)立即寻址;(2)直接寻址;(3)寄存器寻址;(4)寄存器间接寻址;(5)基址寄存器加变址寄存器间接寻址;(6)相对寻址;(7)位寻址。,
5、1.立即寻址 立即寻址方式是指操作数包含在指令字节中。跟在指令操作码后面的数就是参加运算的数,该操作数称为立即数。立即数有一字节和二字节两种可能,例如指令:MOV A,3AH MOV DPTR,0DFFFH,2.直接寻址 在指令中直接给出操作数的地址,这种寻址方式就属于直接寻址方式。在这种方式中,指令的操作数部分直接是操作数的地址。在MCS-51 单片机指令系统中,直接寻址方式中可以访问 3 种存储器空间:(1)内部数据存储器的低 128 个字节单元(00H7FH)。(2)特殊功能寄存器。特殊功能寄存器只能用直接寻址方式进行访问。(3)位地址空间。,MOV A,52H;把片内RAM字节地址52
6、H单元的内容送累加器A中。MOV 52H,A;把A的内容传送给片内RAM的52H单元中。MOV 50H,60H;把片内RAM字节地址60H单元的内容送到50H单元中。MOV IE,#40H;把立即数40H送到中断允许寄存器IE。IE为专用功能寄存器,其字节地址为0A8H。该指令等价于 MOV 0A8H,#40H。INC 60H;将地址60H单元中的内容自加1。,3.寄存器寻址 在该寻址方式中,参加操作的数存放在寄存器里。寄存器包括8个工作寄存器R0R7,累加器A,寄存器B、数据指针DPTR和布尔处理器的位累加器C。MOV A,Rn;A(Rn)其中n为07之一,Rn是工作寄存器。MOV Rn,A
7、;Rn(A)MOV B,A;B(A),4.寄存器间接寻址 在这种寻址方式中,寄存器的内容为操作数的地址。寄存器间接寻址只能使用寄存器R0、R1 作为地址指针,寻址内部RAM区的数据;当访问外部RAM时,可使用R0、R1及DPTR作为地址指针。寄存器间接寻址符号为“”,例如:,例如:MOV R0,#60H;R060H MOV A,R0;A(R0)MOV A,R1;A(R1)例如:MOV DPTR,#3456H;DPTR3456H MOVX A,DPTR;A(DPTR)是把DPTR寄存器所指的那个外部数据存储器(RAM)的内容传送给A,假设(3456H)=99H,指令运行后(A)=99H。,5.基
8、址寄存器加变址寄存器间接寻址 这种寻址方式用于访问程序存储器中的数据表格,它以基址寄存器DPTR或PC的内容为基本地址,加上变址寄存器A的内容作为操作数的地址,例如:MOVC A,DPTR+A JMP A+DPTR MOVC A,PC+A,6.相对寻址 在MCS-51 指令系统中设有转移指令,分为直接转移和相对转移指令,在相对转移指令中采用相对寻址方式。这种寻址方式是以PC的内容为基本地址,加上指令中给定的偏移量作为转移地址。指令中给出的偏移量是一个 8 位带符号的常数,可正可负,其范围为128+127。SJMP 08H;PC转移指令地址+2+08H,7.位寻址 该种寻址方式中,操作数是内部R
9、AM单元中某一位的信息。,SETB TR0;TR01CLR 00H;(00H)0MOV C,57H;将57H位地址的内容传送到 位累加器C中 ANL C,5FH;将5FH位状态与进位位C相与,结果在C中,3.3 指令系统,3.3.1 指令分类,MCS-51指令系统有42种助记符,代表了33种功能,指令助记符与各种可能的寻址方式相结合,共构成111条指令。按指令的功能,MCS-51指令系统可分为下列5类:(1)数据传送类指令(29条)(2)算术运算类指令(24条)(3)逻辑运算及移位类指令(24条)(4)位操作类指令(17条)(5)控制转移类指令(17条),3.3.2 数据传送类指令,数据传送类
10、指令一般的操作是把源操作数传送到指令所指定的目标地址。指令执行后,源操作数保持不变,目的操作数为原操作数所替代 数据传送类指令用到的助记符有:MOV,MOVX,MOVC,XCH,XCHD,PUSH,POP,SWAP。格式:MOV 目的操作数,源操作数 功能:目的操作数(源操作数中的数据)源操作数可以是:A、Rn、direct、Ri、#data 目的操作数可以是:A、Rn、direct、Ri,1 以累加器为目的操作数的内部数据传送指令,2 数据传送到工作寄存器Rn的指令,3数据传送到内部RAM单元或特殊功能寄存器SFR的指令,片内数据RAM及寄存器的数据传送指令MOV、PUSH和POP共18条。
11、,4 累加器A与外部数据存储器之间的传送指令片外数据存储器数据传送指令MOVX共4条。,5程序存储器内容送累加器MOVC A,A+PCMOVC A,A+DPTR 程序存储器查表指令MOVC共2条,6堆栈操作,所谓堆栈是在片内RAM中按“先进后出,后进先出”原则设置的专用存储区。数据的进栈出栈由指针SP统一管理。堆栈的操作有如下两条专用指令:PUSH direct;SP(SP+1),(SP)(direct)POP direct;(direct)(SP),SP SP-1PUSH是进栈(或称为压入操作)指令。POP是出栈(或称为弹出操作)指令。,7字节交换指令 数据交换主要是在内部RAM单元与累加器
12、A之间进行,有整字节和半字节两种交换。(1)整字节交换指令,XCH A,Rn;A RnXCH A,direct;A(direct)XCH A,Ri;A(Ri),XCHD A,Ri;A03(Ri)03SWAP A;A03A47,(2)半字节交换指令,【例】将片内RAM 30H单元与40H单元中的内容互换。,方法1(直接地址传送法):MOV31H,30H MOV30H,40H MOV40H,31H SJMP$,方法2(间接地址传送法):MOVR0,#40H MOVR1,#30H MOVA,R0 MOVB,R1 MOVR1,A MOVR0,B SJMP$,方法3(字节交换传送法):MOVA,30H
13、XCH A,40H MOV30H,A SJMP$,方法4(堆栈传送法):PUSH30H PUSH40H POP 30H POP 40H SJMP$,3.3.3 算术运算类指令,算术运算指令,算术运算指令,影响标志位的指令,影响标志位的指令,一、加法指令,1.普通加法指令 ADD A,Rn ADD A,direct ADD A,Ri ADD A,data,例 写出以下一段程序各条指令执行的结果 MOV A,#0B3H;MOV 20H,#10H;MOV R0,#20H;ADD A,R0;ADD A,R0;ADD A,#10H;,例如:120 和 100 之和为 220,显然大于 127,相加时,0
14、 1 1 1 1 0 0 0 1200 1 1 0 0 1 0 0 1001 1 0 1 1 1 0 0 220,+,符号位(最高位)由 0 变 1,两个正数相加结果变负,实际上它是和数的最高位,符号位移入了进位标志,此时位 6 有进位而位 7 无进位,置位溢出标志OV,结果溢出。,程序状态字PSW,D7 D6 D5 D4 D3 D2 D1 D0,Cy(Carry):进位AC(Auxiliary Carry):辅助进位F0(Flag):用户标志RS1、RS0:寄存器组选择控制位OV(Overflow):溢出P(Parity):奇偶标志,同样,120和100 相加,结果应为220,显然小于128
15、,相加时,1 0 0 0 1 0 0 0-1201 0 0 1 1 1 0 0-100,+,1 0 0 1 0 0 1 0 0-220,符号位由1变为0,两个负数相加结果变为正数,这是因为符号位移入进位标志,位 6 无进位而位 7 有进位,置位溢出标志OV,由此可判断结果溢出。,2.带进位加法指令 ADDC A,Rn ADDC A,direct ADDC A,Ri ADDC A,data 这组指令的功能与普通加法指令类似,唯一的不同之处是,在执行加法时,还要将上一次进位标志Cy的内容也一起加进去,对于标志位的影响也与普通加法指令相同。,例 有两个16位数。低8位分别存于20H和30H之中。高八
16、位分别存于21H和31H中。求他们的和,和的低八位送40H,高8位送41H。MOV A,20H ADD A,30H;低8位相加 MOV 40H A;有和的低8位 MOV A,21H ADDC A,31H;高8位相加,带低八位相加的进位 MOV 41H,A;存和的高8位,3.增量指令 INC A INC Rn INC direct INC Ri INC DPTR 这组指令的功能是:将指令中所指出操作数的内容加1。若原来的内容为 0FFH,则加 1 后将产生溢出,使操作数的内容变成 00H,但不影响任何标志。最后一条指令是对16 位的数据指针寄存器DPTR执行加 1 操作,指令执行时,先对低 8
17、位指针 DPL的内容加 1,当产生溢出时就对高 8 位指针DPH加 1,但不影响任何标志。,4.十进制调整指令 DA A 这条指令对累加器A参与的BCD码加法运算所获得的 8 位结果进行十进制调整,使累加器A中的内容调整为二位压缩型 BCD码的数。使用时必须注意,它只能跟在加法指令之后,不能对减法指令的结果进行调整,且其结果不影响溢出标志位。执行该指令时,判断 A中的低 4 位是否大于 9 和辅助进位标志 AC是否为“1”,若两者有一个条件满足,则低 4 位加 6 操作;同样,A中的高 4 位大于 9 或进位标志 Cy为“1”两者有一个条件满足时,高 4 位加 6 操作。例如:有两个 BCD数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS5 单片机 指令系统
链接地址:https://www.31ppt.com/p-4875857.html