第三章 单片机的指令系统_第1页
第三章 单片机的指令系统_第2页
第三章 单片机的指令系统_第3页
第三章 单片机的指令系统_第4页
第三章 单片机的指令系统_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、3 MCS-51单片机指令系统,3.1 MCS-51单片机指令格式和寻址方式,3.1.1 指令系统概述,3.1.2 MCS-51单片机指令格式,3.1.3 MCS-51单片机寻址方式,操作码:规定指令进行什么操作。,操作数:规定指令操作的对象。,寻址方式:指定操作数所在单元的方式。(共七种),3。寄存器寻址方式,MOV A,R0,2。直接寻址方式,MOV A,3AH,4。寄存器间接寻址方式,MOV A,R0,1。立即寻址方式,MOV A,#3AH,MOV DPTR,#123AH,MOV A,R1,3.1.3 MCS-51单片机寻址方式,3.1 MCS-51单片机指令格式和寻址方式,5。变址寻址

2、方式,MOVC A,A+DPTR,MOVC A,A+PC,JMP A,A+DPTR,6。位寻址方式,MOV C,3AH,MOV C,0F0H,MOV C,PSW.5,7。相对寻址方式,目的地址=转移指令地址+转移指令字节书+rel,用于转移指令,3 MCS-51单片机指令系统,3.1 MCS-51单片机指令格式和寻址方式,3.2 MCS-51单片机指令分类介绍,数据传送类指令(29条),算术运算类指令(24条),逻辑运算及移位类指令(24条),控制转移类指令(17条),位操作类指令(17条),3.2 MCS-51单片机指令分类介绍,3.2.1 指令格式中符号意义说明,direct:8位直接地址

3、。,#data :8位立即数。,#data16:16位立即数。,DPTR:数据指针。,bit:内部RAM中的直接寻址位。,:间址寄存器的前缀标志。,/:位地址前表示对该位取反。,Rn:通用寄存器R0-R7。,Ri:间接寻址寄存器R0、R1。,3.2 MCS-51单片机指令分类介绍,3.2.1 指令格式中符号意义说明,3.2.2 数据传送类指令,1. 概述,MOV 目的操作数,源操作数,目的操作数,:累加器A、通用寄存器Rn、直接地址direct、 间址寄存器,源操作数,:累加器A、通用寄存器Rn、直接地址direct、 间址寄存器、立即数,3.2 MCS-51单片机指令分类介绍,3.2.2 数

4、据传送类指令,1. 概述,2. 内部RAM数据传送指令组,(1) 立即数传送指令,MOV A,#data,MOV direct,#data,MOV Rn,#data,MOV Ri,#data,8位立即数传送指令,MOV DPTR,#data16,16位立即数传送指令,例:MOV DPTR,#1234H,DPH: 12H,DPL: 34H,3.2 MCS-51单片机指令分类介绍,3.2.2 数据传送类指令,2. 内部RAM数据传送指令组,(1) 立即数传送指令,(2) 内部RAM单元之间的数据传送指令,MOV direct2,direct1,MOV direct,Rn,MOV Rn , dire

5、ct,MOV direct,Ri,MOV Ri , direct,例:MOV P2,R2,MOV 0A0h,R2,MOV 0D0h,R1,MOV R5,70h,MOV 0D0h,R1,MOV 0D0h,R1,MOV 0D0h,R1,3.2 MCS-51单片机指令分类介绍,3.2.2 数据传送类指令,2. 内部RAM数据传送指令组,(1) 立即数传送指令,(2) 内部RAM单元之间的数据传送指令,(3) 通过累加器的数据传送指令,MOV A,Rn,MOV Rn ,A,MOV A,direct,MOV direct, A,MOV A,Ri,MOV Ri , A,3.2.2 数据传送类指令,2. 内

6、部RAM数据传送指令组,3. 外部RAM数据传送指令组,对外部RAM单元只能使用间接寻址,(1) 使用DPTR进行间接寻址,MOVX A,DPTR,MOVX DPTR , A,(2) 使用Ri进行间接寻址,MOVX A,Ri,MOVX Ri ,A,4. 程序存储器数据传送指令组,MOVC A,A+DPTR,MOVC A,A+PC,单向,变址寻址,3.2.2 数据传送类指令,5. 数据交换指令组,(1) 整字节交换指令,XCH A,Rn,XCH A,direct,XCH A,Ri,(2) 半字节交换指令,XCHD A,Ri,低四位数据交换,(3) 累加器高低半字节交换指令,SWAP A,6. 堆

7、栈操作指令组,PUSH direct,POP direct,SP:(SP)+1,(SP):(direct),direct :(SP),SP:(SP)-1,说明:,只有指令表中的指令才有对应指令代码,计算机才能执行。编程时,不能随意创造发明指令。,1. 一条指令中不能同时出现两个工作寄存器:,2. 间址寄存器只能使用 R0、R1。,3. SFR区只能直接寻址,不能用寄存器间接寻址。,4. 指令表:,非法指令:MOV R0,#80H MOV A,R0,非法指令:MOV A,R2,非法指令:MOV R1,R2MOV R2,R0,将片内RAM60H单元与61H单元的数据交换。,XCH 60H,61H,

8、查表法求Y=X2。设X(0X15)在片内RAM的20H单元中,要求将查表求Y,存入片内RAM21H单元。,ORG 1000H SQU:MOV DPTR,#TAB ;确定表首地址(基地址) MOV A,20H;取X(偏移量) MOVC A,A+DPTR;查表求Y=X2 MOV 21H,A;保存Y RET;子程序结束 ;其它程序段 ORG 3000H;常数表格首地址 TAB:DB 00,01,04,09,225;平方表,3.2 MCS-51单片机指令分类介绍,3.2.1 指令格式中符号意义说明,3.2.2 数据传送类指令,3.2.3 算术运算类指令,1. 加法指令组(不带进位),ADD A,源操作

9、数,ADD A,#data,ADD A,Rn,ADD A,direct,ADD A,Ri,ADD A,R2,A=? PSW=?,02H,0,0,0,0,0,1,0,1,81H,3.2 MCS-51单片机指令分类介绍,3.2.3 算术运算类指令,1. 加法指令组(不带进位),2. 加法指令组(带进位),ADDC A,源操作数,ADDC A,#data,ADDC A,Rn,ADDC A,direct,ADDC A,Ri,3. 带借位减法指令组,SUBB A,源操作数,SUBB A,#data,SUBB A,Rn,SUBB A,direct,SUBB A,Ri,3.2.3 算术运算类指令,4. 加1

10、指令组,INC A,INC Rn,INC direct,INC Ri,INC DPTR,不影响程序状态字PSW,5. 减1指令组,DEC A,DEC Rn,DEC direct,DEC Ri,3.2.3 算术运算类指令,6. 乘除指令组,(1) 乘法指令,MUL AB,0,0,0:结果255,奇偶位,MOV A,0FH MOV B,0FH MUL AB,A=? PSW=?,0E1H,00H,3.2.3 算术运算类指令,6. 乘除指令组,(1) 乘法指令,(2) 除法指令,DIV AB,0,0,1:除数为0(B=0) 0:其它,奇偶位,A商;B 余数,3.2.3 算术运算类指令,1. 加法指令组

11、(不带进位),2. 加法指令组(带进位),3. 带借位减法指令组,4. 加1指令组,5. 减1指令组,6. 乘除指令组,7. 十进制调整指令,DA A,十进制调整指令原理:,略,MOV A,#56H MOV R5,#67H ADD A,R5 DA,带进位加法指令ADDC用于多字节运算,设双字节数 X 存在片内RAM 41H、40H单元,Y存在42H、43H单元,编程求 Z=X+Y,并存入片内RAM单元44H、45H、46H。,ADDS:MOV A,40H ADD A,42H MOV 44H,A MOV A,41H ADDC A,43H MOV 45H,A MOV A,#0 ADDC A,#0

12、MOV 46H,A RET,;取被加数低字节 ;加上加数低字节 ;保存和的低字节 ;取被加数高字节 ;加上加数高字节 ;保存和的高字节 ;求高字节进位 ;子程序结束,;低字节相加 ;高字节相加 ;计算高字节进位 ;子程序结束,3.2 MCS-51单片机指令分类介绍,3.2.1 指令格式中符号意义说明,3.2.2 数据传送类指令,3.2.3 算术运算类指令,3.2.4 逻辑运算及移位类指令,逻辑运算:ANL(与)、ORL(或)、XRL(异或),1. 逻辑与运算指令组,ANL A,Rn,ANL A,direct,ANL A,Ri,ANL A,#data,ANL direct,A,ANL direc

13、t,#data,MOV C,P1.0 ANL C,P1.1 ANL C,/P1.2 MOV P3.0,C,3.2.4 逻辑运算及移位类指令,逻辑运算:ANL(与)、ORL(或)、XRL(异或),1. 逻辑与运算指令组,2. 逻辑或运算指令组,ORL A,Rn,ORL A,direct,ORL A,Ri,ORL A,#data,ORL direct,A,ORL direct,#data,3.2.4 逻辑运算及移位类指令,逻辑运算:ANL(与)、ORL(或)、XRL(异或),1. 逻辑与运算指令组,2. 逻辑或运算指令组,XRL A,Rn,XRL A,direct,XRL A,Ri,XRL A,#

14、data,XRL direct,A,XRL direct,#data,3. 逻辑异或运算指令组,3.2.4 逻辑运算及移位类指令,逻辑运算:ANL(与)、ORL(或)、XRL(异或),4. 累加器清“0”和取反指令组,(1)累加器清“0”指令,(2)累加器取反指令,A7 A0,3.2.4 逻辑运算及移位类指令,逻辑运算:ANL(与)、ORL(或)、XRL(异或),4. 累加器清“0”和取反指令组(CLR、CPL),5. 移位指令组( 累加器A ),(1)循环左移指令,RL A ;,(2)循环右移指令,RR A ;,A7 A0,3.2.4 逻辑运算及移位类指令,逻辑运算:ANL(与)、ORL(或

15、)、XRL(异或),4. 累加器清“0”和取反指令组(CLR、CPL),5. 移位指令组( 累加器A ),(1)循环左移指令,RL A ;,(2)循环右移指令,RR A ;,(3)带进位循环左移指令,RLC A ;,A7 A0,CY,(4)带进位循环右移指令,RRC A ;,A7 A0,CY,3.2 MCS-51单片机指令分类介绍,3.2.5 控制转移类指令,1. 无条件转移指令组,(1)长转移指令,指令机器码: 02 nnH nnL,指令转移范围:64KB,(2)绝对转移指令,AJMP addr11 ;,指令机器码:A10A9A8 00001 A70,指令转移范围:2KB,推 荐 使 用,3

16、.2 MCS-51单片机指令分类介绍,3.2.5 控制转移类指令,1. 无条件转移指令组,(3)短转移指令,指令机器码: 80H rel,相对偏移量 rel为8位补码,rel= 目的地址-(源地址+2)= 地址差-2,增地址转移:,指令地址 源程序 2130H SJMP 2132H 2150H NEXT:MOV A,R2,1EH,NEXT,指令转移范围:前128后127字节,rel= (目的地址-(源地址+2)补 = 0FFH-(目的地址-(源地址+2)+1 = 0FEH-地址差,3.2.5 控制转移类指令,1. 无条件转移指令组,(3)短转移指令,减地址转移:,指令地址 源程序 2130H

17、NEXT:MOV A,R2 2150H SJMP,0DEH,NEXT,3.2 MCS-51单片机指令分类介绍,3.2.5 控制转移类指令,1. 无条件转移指令组,(4)变址寻址转移指令,指令机器码 73H,指令转移范围64KB。,(1)长转移指令LJMP,(2)绝对转移指令AJMP,(3)短转移指令SJMP,MOVA,#02H MOVDPTR,#0006 JMPA+DPTR,P.77 10.,MOVP2,#20H MOV R0,#00H MOV A,R0,3.2 MCS-51单片机指令分类介绍,3.2.5 控制转移类指令,1. 无条件转移指令组,(4)变址寻址转移指令 JMP,(1)长转移指令

18、 LJMP,(2)绝对转移指令 AJMP,(3)短转移指令 SJMP,2. 条件转移指令组,(1)累加器判零转移指令,JZ rel,;若A=00H,PCPC+e(转移), ;若A00H,PCPC+2 (不转移),JNZ rel,;若A00H,PCPC+e(转移), ;若A=00H, PCPC+2(不转移),2. 条件转移指令组,(1)累加器判零转移指令,(2)数值比较转移指令,CJNE 操作数1,操作数2,rel,CJNEA,#data,rel,CJNEA,direct,rel,CJNERn,#data,rel,CJNERi,#data,rel,对CY的影响,操作数1=操作数2,CY=0; 操

19、作数1操作数2,CY=0; 操作数1操作数2,CY=1;,DJNZ 操作数,rel,2. 条件转移指令组,(1)累加器判零转移指令,(2)数值比较转移指令,(3)减1条件转移指令,若(操作数-1)=0,则转移PCPC+2 ,顺序执行; 若(操作数-1)0 ,则PCPC+2+rel 。,指令机器码: D8-DFH rel (两个字节),指令机器码: D5 direct rel (三个字节),若(操作数-1)=0,则转移PCPC+3,顺序执行; 若(操作数-1)0,则PCPC+3+rel 。,查表法求Y=X2。设在片内RAM的20H开始连续5个单元存放5个数X(0X15) ,要求将查表求Y,存入片

20、内RAM30H开始的五个单元。,ORG 0000H AJMP 0020H ORG 0020H SQU:MOV DPTR,#TAB MOV R0,#20H MOV R1,#30H MOV 78H,#5 LOOP: MOV A,R0 MOVC A,A+DPTR MOV R1,A INC R0 INC R1 DJNZ 78H,LOOP,ORG 0040H TAB: DB 00,01,04,09,16,25,36,49,64,81,100,121,144,169,196,225 END,3. 子程序调用与返回指令组,ACALL addr11,指令机器码:A10A9A8 10001 A70,(1)绝对调用指令,3.2.5 控制转移类指令,1. 无条件转移指令组,2. 条件转移指令组,例: 8100H ACALL label 问: label 的地址范围?,8000H87FFH,3. 子程序调用与返回指令组,(1)绝对调用指令,(2)长调用指令,LCALL

温馨提示

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

评论

0/150

提交评论