单片机指令系统课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《单片机指令系统课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 指令系统 课件
- 资源描述:
-
1、第三部分第三部分80C51的指令系统的指令系统 MCS-51的指令系统的指令系统共有共有111条指令条指令,按其,按其功能可分为五大类:功能可分为五大类:3.1 指令系统简介指令系统简介数据传送类指令(数据传送类指令(28条)条)算术运算类指令(算术运算类指令(24条)条)逻辑运算类指令(逻辑运算类指令(25条)条)控制转移类指令(控制转移类指令(17条)条)布尔操作布尔操作(位位)类指令类指令(17条)条) 指令的表示方法称为指令格式,其内容包括指令指令的表示方法称为指令格式,其内容包括指令的长度和指令内部信息的安排等。一条指令通常的长度和指令内部信息的安排等。一条指令通常由操作码和操作数两
2、部分组成。由操作码和操作数两部分组成。指令格式指令格式 指令的长度有单字节、双字节和三字节等。指令的长度有单字节、双字节和三字节等。NOPINC R0MOV R0,R7操作码操作码操作数操作数;注释注释 寄存器工作组(由寄存器工作组(由RS1、RS0选择)选择)位寻址区(位寻址区(16*8=128位)位)普通普通RAM共共80个字节个字节 3.2 寻址方式寻址方式RnRn 工作寄存器,可以是工作寄存器,可以是R0-R7R0-R7中的任意一个。中的任意一个。# #datadata 8 8位立即数,在位立即数,在0000H HFFHFFH范围内。如范围内。如 #12#12H H。directdir
3、ect 片内片内RAMRAM单元的直接地址。单元的直接地址。RiRi R0R0或或R1R1。# #data16data16 表示表示1616位立即数。如:位立即数。如:12341234H H。DPTRDPTR 表示以表示以DPTRDPTR为数据指针进行间接寻址。用为数据指针进行间接寻址。用于对片外地址寻址。于对片外地址寻址。bit bit 位地址。如位地址。如 SETBSETB bit bit。addr16addr16 表示表示1616位地址。位地址。addr11addr11 表示表示1111位地址。位地址。rel rel 补码形式的表示补码形式的表示8 8位地址偏移量。位地址偏移量。$ $
4、表示当前指令的地址。表示当前指令的地址。A A 累加器累加器B B B B寄存器寄存器C C 进位位进位位 间址寄存器的前缀标志间址寄存器的前缀标志 2、直接寻址、直接寻址1、立即寻址、立即寻址 4、寄存器间接寻址、寄存器间接寻址3、寄存器寻址、寄存器寻址 5、相对寻址、相对寻址 7、位寻址、位寻址6、变址寻址、变址寻址 七种寻址方式七种寻址方式 : 2、直接寻址、直接寻址 直接寻址是指在指令中直接给出操作数单元的直接寻址是指在指令中直接给出操作数单元的地址。地址。 MOV A ,3AHMOV A ,3AH 1、立即寻址、立即寻址 例如:例如: MOV A, #3AHMOV A, #3AH M
5、OV DPTR ,#data16 MOV DPTR ,#data16直接寻址是访问特殊功能寄存器的唯一方法。直接寻址是访问特殊功能寄存器的唯一方法。立即数前立即数前面加面加“#”片内片内RAM地址地址例如:例如:INC R0 3、寄存器寻址、寄存器寻址寄存器寻址的寻址范围包括:寄存器寻址的寻址范围包括:(1) 四个寄存器组共四个寄存器组共32 个通用寄存器个通用寄存器 (2) 部分特殊功能寄存器部分特殊功能寄存器 寄存器间接寻址是指在指令中要到寄存器寄存器间接寻址是指在指令中要到寄存器的内容所指的地址去取操作数。即的内容所指的地址去取操作数。即寄存器寄存器中放的是操作数的地址中放的是操作数的地
6、址。在寄存器的名称。在寄存器的名称前面加前缀前面加前缀“”。 只能使用只能使用R0R0或或R1R1。4、寄存器间接寻址、寄存器间接寻址 例如:例如: ANL A,R1 寄存器间接寻址的范围:寄存器间接寻址的范围: (1)片内)片内RAM低低128单元单元:这里只能使用:这里只能使用R0或或R1为为 间址寄存器,其通用形式写为间址寄存器,其通用形式写为Ri(i0,1)。 MOV A,R0 (3)片外)片外RAM低低256单元单元:也可使用:也可使用R0或或R1作作间址寄存器。例如:间址寄存器。例如: MOVX A,R0(2)片外)片外RAM 64KB:使用:使用DPTR作为间址寄存作为间址寄存器
7、,其形式为器,其形式为DPTR,例如:,例如: MOVX A,DPTR 5、相对寻址、相对寻址 相对寻址是指在指令中给出的操作数为程序转移的相对寻址是指在指令中给出的操作数为程序转移的偏移量。相对寻址是为实现程序的相对转移而设立偏移量。相对寻址是为实现程序的相对转移而设立的,的,为相对转移指令所采用为相对转移指令所采用。 目的地址转移指令所在地址十转移指令字节数十目的地址转移指令所在地址十转移指令字节数十relrel是一个带符号的是一个带符号的8位二进制补码数,范围是位二进制补码数,范围是: -128 +127。偏移量为正时,往地址增大的方向,。偏移量为正时,往地址增大的方向,为负时,向地址减
8、小的方向。为负时,向地址减小的方向。例如:例如: JC 03H ;假设当前;假设当前PC值为值为1000H转移地址为:转移地址为:1000H + 2H +(03H)=1005H转移指令字节数转移指令字节数JC 03H的机器码为的机器码为40H、03H偏移量偏移量 变址寻址是指以变址寻址是指以DPTR或或PC作基址寄存器,累加器作基址寄存器,累加器A作变址寄存器,以两者内容相加形成的作变址寄存器,以两者内容相加形成的16位程序位程序存储器地址作为操作数地址。又称存储器地址作为操作数地址。又称基址寄存器基址寄存器+变变址寄存器间接寻址址寄存器间接寻址。 6、变址寻址(基址寄存器、变址寻址(基址寄存
9、器+变址寄存器间接寻址)变址寄存器间接寻址) 假设假设 :(A)E0H,(DPTR)2000H 操作数地址为操作数地址为E0H十十2000H20E0H,若,若20E0H单单元的内容为元的内容为47H,则该指令执行的结果是,则该指令执行的结果是A的内容的内容为为47H。 MOVC A , A+DPTR MOVC A , A+PC7、位寻址、位寻址 位寻址位寻址 的范围:的范围:(1)片内)片内RAM中的位寻址区中的位寻址区(2)可位寻址的特殊功能寄存器位)可位寻址的特殊功能寄存器位寻址位在指令中有四种表示方法:寻址位在指令中有四种表示方法:(1)直接使用位地址表示方法。)直接使用位地址表示方法。
10、 SETB 8DH(2)单元地址加位的表示方法。)单元地址加位的表示方法。 SETB 88H.5 ;88H单元的位单元的位5(3)特殊功能寄存器符号加位的表示方法。)特殊功能寄存器符号加位的表示方法。 SETB PSW.5 PSW寄存器的位寄存器的位5,则表示为,则表示为PSW.5。(4)位名称表示方法,特殊功能寄存器中的)位名称表示方法,特殊功能寄存器中的一些寻址位是有名称的。一些寻址位是有名称的。 SETB F0 PSW寄存器位寄存器位5为为F0标志位。标志位。操作数寻址方式和有关空间操作数寻址方式和有关空间 寻址方式寻址方式寻址空间寻址空间立即寻址程序存储器ROM直接寻址片内RAM低12
11、8B和特殊功能寄存器SFR寄存器寻址工作寄存器R0 R7,A,B,CY,DPTR寄存器间接寻址片内RAM低128B R0,R1,片外RAM( R0, R1, DPTR)变址寻址程序存储器(A+PC, A+DPTR)相对寻址程序存储器+127B -128B范围(PC+偏移量)位寻址片内RAM的20H 2FH字节地址和部分特殊功能寄存器SFR3.3 数据传送指令数据传送指令 数据传送指令共有数据传送指令共有28条。按照功能又可分为:条。按照功能又可分为:一般传送指令、目的地址传送指令、累加器一般传送指令、目的地址传送指令、累加器传送指令和栈操作传送指令传送指令和栈操作传送指令。一般传送指令格式一般
12、传送指令格式 MOV MOV , MOVX MOVX , MOVC MOVC , 它的功能是把源字节的内容送到目的字节,而源字它的功能是把源字节的内容送到目的字节,而源字节的内容不变。节的内容不变。1、 以累加器以累加器A为目的操作数的指令组,共有为目的操作数的指令组,共有4条:条: MOV A,Rn ; (A) (Rn) MOV A,direct ; (A) (direct) MOV A,Ri ; (A) (Ri) MOV A,#data ; (A) #data一、内部一、内部RAM数据传送指令数据传送指令 2、 以寄存器以寄存器Rn为目的操作数的指令组,共有为目的操作数的指令组,共有3条:
13、条: MOV Rn,A ;(Rn) (A) MOV Rn,ditect ; (Rn) (direct) MOV Rn,#data ; (Rn) #data 例:例: MOV R3, #30H3、以直接地址以直接地址direct为目的操作数的指令组,共有为目的操作数的指令组,共有5条条指令:指令: MOV direct,A ;(direct) (A) MOV direct,Rn ;(direct) (Rn) MOV direct,direct ;(direct2) (direct1) MOV direct,Ri ;(direct) (Ri) MOV direct, #data ; (direct
14、) #data 例:例: MOV 30H, 32H4、以间接寻址寄存器、以间接寻址寄存器Ri为目的操作数的指令组,共为目的操作数的指令组,共 有有3条指令:条指令: MOV Ri,A ;(Ri) (A) MOV Ri,direct ; (Ri) (direct) MOV Ri,#data ;(Ri) #data 例:例: MOV R0, 35H MOV R0, #12H Ri只能是只能是R0、R1。 MOV A,5EH ;片内片内RAM的的5EH单元内容送单元内容送A,这里,这里5EH为直接地址。为直接地址。 MOV A,#5EH ;立即数立即数5EH送送A。 MOV 5EH,#5EH ;这是
15、一条这是一条3字节指令,表示把立即数字节指令,表示把立即数5EH送到片内送到片内RAM中的中的5EH地址单元中去。地址单元中去。 MOV 5EH,4EH ;这是一条这是一条3字节指令,表示把字节指令,表示把4EH单元的内容送到单元的内容送到5EH单元中去。这是片内数据存储单元中的直接地址单元单元中去。这是片内数据存储单元中的直接地址单元数据之间的直接传送。数据之间的直接传送。5、16位数据传送指令位数据传送指令 MOV DPTR,#data16 ;(DPTR) #data16 这是这是80C51中惟一的一条中惟一的一条16位指令。位指令。 MOV DPTR,#1234H 执行结果为执行结果为(
16、DPH)12H,(DPL)34H。二、外部数据传送指令二、外部数据传送指令 MOVX A,Ri ; MOVX A,DPTR MOVX Ri,A ; MOVX DPTR,A 也可实现累加器也可实现累加器A与与I/O口之间传送一个字节数口之间传送一个字节数据的指令。据的指令。 MOV DPTR,#0E000H MOVX A,DPTR 0E000H可以为外部数据存储器地址或可以为外部数据存储器地址或I/O接口地接口地址。若为接口地址,其功能为从此接口输入数据。址。若为接口地址,其功能为从此接口输入数据。 MOV DPTR,#2040H MOVX A,DPTR MOV DPTR,#2030H MOVX
17、 DPTR ,A三、查表指令三、查表指令 A与与ROM传送指令传送指令MOVC组或称查表指令,共有组或称查表指令,共有2条指令:条指令: MOVC A,A十十PC MOVC A,A十十DPTR程序存储器内容程序存储器内容1010H:02H1011H:04H1012H:06H1012H:08H1000H:MOV A,#0DH1002H:MOVC A,A+PC1003H:MOV R0,AA=02H; R0=02H; PC=1004HPC值为下一条值为下一条指令的地址指令的地址1010H* 没有寄存器之间的传送指令,如:没有寄存器之间的传送指令,如: MOV R1, R2* 三种三种MOV指令:指令
18、: MOV : 读写片内读写片内RAM、SFR、R0 R7 MOVC :读程序存储器:读程序存储器 (含片内、片外)(含片内、片外) MOVX :读写外部:读写外部RAM或或IO* 片外片外RAM与与IO地址统一编址:地址统一编址: MOVX A, DPTR ; 由由DPTR区分是区分是RAM地址还是地址还是IO地址地址四、堆栈操作指令四、堆栈操作指令 这组指令共有这组指令共有2条指令:条指令: PUSH direct ;SP+1SP,(,( direct)(SP) POP direct ;(;( SP )( direct ) SP-1SP地址加地址加1 ,压栈,压栈出栈,地址减出栈,地址减1
19、60HSP为当前堆栈地址为当前堆栈地址63H62H61Habcd栈底栈底5FH例:例:已知内部已知内部RAM的的50H单元中存放数值单元中存放数值0AAH,设堆栈指,设堆栈指针为针为60H,把此数据压入堆栈,然后弹出到,把此数据压入堆栈,然后弹出到40H单元中。单元中。MOV SP,#60H ;60H SPPUSH 50H ;SP+1 SP,(,(50H) (61H)POP 40H ;(;(61H) (40H),),SP-1 SP当前堆栈地址当前堆栈地址61H60HAA栈底栈底AA50H61H60HAAAA40H 当前堆栈地址当前堆栈地址(1)字节交换指令)字节交换指令XCH组,共有组,共有3
20、条指令:条指令: XCH A,Rn XCH A,direct XCH A,Ri(2)半字节交换指令:)半字节交换指令: XCHD A,R0 ;两个操作数的低;两个操作数的低4位交换位交换 SWAP A ;A的高的高4位与低位与低4位互换位互换 五、交换指令五、交换指令3.4 算术运算指令算术运算指令 算术运算类指令都是通过算术运算类指令都是通过ALU进行的。它包括加、进行的。它包括加、减、乘、除四则运算指令共有减、乘、除四则运算指令共有24条。条。一、一、 加法指令加法指令 ADD二、二、带进位位加法指令带进位位加法指令 ADDC三、三、带借位减法指令带借位减法指令 SUBB四、乘法指令四、乘
21、法指令 MUL AB五、除法指令五、除法指令 DIV AB六、加六、加1指令指令 INC七、减七、减1指令指令 DEC八、十进制调整指令八、十进制调整指令 DA一、一、 加法指令加法指令 这组指令的助记符为这组指令的助记符为ADD,共有,共有4条指令:条指令: ADD A,Rn ;(A)+(Rn) (A) ADD A,direct ;(A)+(direct) (A) ADD A,Ri ;(A)+(Rn) (A) ADD A,#data ; (A)+#data (A)算术运算结果将使进位标志算术运算结果将使进位标志(CY)、半进位标志、半进位标志(AC)、溢出标志溢出标志(OV)置位或复位。置位
22、或复位。这类指令将影响标志位这类指令将影响标志位AC、CY、OV、P P=0;1的个数为偶数的个数为偶数OV=1;AC=0 ;CY=1 ;有进位;有进位 1 1 0 0 0 0 1 0+ 1 0 0 1 0 0 1 11 0 1 0 1 0 1 0 1、 1 1 0 0 1 0 1 0+ 1 1 0 0 1 0 0 01 1 0 0 1 0 0 1 0、P=1;1的个数为奇数的个数为奇数OV=0;AC=1 ;CY=1 ;有进位;有进位二、二、带进位位加法指令带进位位加法指令 ADDC A,Rn ;(A) (A)+(Rn)+(CY) ADDC A,direct ;(A) (A)+(direct)
23、+(CY) ADDC A,Ri ;(A) (A)+(Rn)+(CY) ADDC A,#data ; (A) (A)+#data+(CY)这类指令将影响标志位这类指令将影响标志位AC、CY、OV、P 三、带借位减法指令三、带借位减法指令这类指令的助记符为这类指令的助记符为SUBB,共有,共有4条指令:条指令:SUBB A,Rn ;(A)一一(Rn)一一(CY) (A)SUBB A,direct ;(A)一一(direct)一一(CY) (A)SUBB A,Ri ;(A)一一(Rn)一一(CY) (A)SUBB A,#data ;(A)一一#data一一(CY) (A)在在80C51中没有不带借位
24、的减法。需要时,可以在中没有不带借位的减法。需要时,可以在“SUBB”指令前,用指令前,用“CLR C”指令将指令将CY清零。清零。四、乘法指令四、乘法指令 乘法指令的助记符为乘法指令的助记符为MUL,只有,只有1条指令:条指令: MUL AB例如:设例如:设(A)4EH,(B)5DH执行指令为执行指令为MUL AB执行结果为乘积执行结果为乘积1C56H,(A)56H,(B)1CH。(OV)=1,(,(P)=0乘法指令的功能是将乘法指令的功能是将A和和B中两个无符号中两个无符号8位二进制位二进制相乘,相乘,乘积低乘积低8位存于位存于A中,高中,高8位存于位存于B中中。乘积。乘积小于小于255时
展开阅读全文