第二章 MCS-51指令系统.ppt_第1页
第二章 MCS-51指令系统.ppt_第2页
第二章 MCS-51指令系统.ppt_第3页
第二章 MCS-51指令系统.ppt_第4页
第二章 MCS-51指令系统.ppt_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章:MCS-51指令系统,目的要求: 通过本章学习,掌握汇编语言指令的含义及其助记符的使用,汇编语言程序设计的基本格式与设计方法。,本章教学重点:,MCS-51单片机指令系统 本章课时:6课时,指令系统:,MCS-51指令系统专用于MCS-51系列的单片机,是一个具有255种操作代码的集合。表达这些代码时,只要熟记42中助记符。它代表了33种功能,共有111种指令.同一种指令所对应的操作码在MCS-51指令系统中可以多至8种.,本章主要内容:,2.1 MCS-51指令系统简介 2.2 数据传送类(28条) 2.3 算术操作类(24条) 2.4逻辑操作类指令(续4) 2.5 控制程序转移类(

2、17条) 2.6 布尔变量操作类(17条),本讲内容:,基本结构复习 指令系统简介和寻址方式 部分指令介绍 本讲小结,单片机基本结构复习,RAM和ROM的存储空间:128、64K和64K 4个八位I/O口:P0、P1、P2、P3 外部硬件支持:复位,时钟,内外ROM选择,2.1 MCS-51指令系统简介,基本指令111条 单字节、双字节、三字节 单机器周期、双机器周期、四机器周期 数据传送,算术、逻辑运算,控制转移,位操作类,2.1 MCS-51指令系统简介,1. 数据传送类(28条); 2. 算术操作类(24条); 3. 逻辑操作类(25条); 4. 控制程序转移类(17条) 5. 布尔变量

3、操作类(17条);,2.2.1 MCS-51指令系统简介,2.2 数据传送类(28条),内部数据传送指令(16条) 栈操作指令(2) 累加器与外部数据传送指令(4) 查表指令(2) 字节交换(3) 半字节交换(1),2.2.1内部数据传送指令(16条),MOV , 以A为目的 以Rn为目的 以direct为目的 以Ri为目的 16位数据传送指令,2.2 数据传送类,以A为目的(4条),MOV A,Rn寄存器送累加器 MOV A,Ri内部RAM送累加器 MOV A,direct直接寻址字节送累加器 MOV A,#data立即数送累加器,2.2 数据传送类内部数据传送指令(16条),(1)寄存器送

4、累加器,格式:MOV A, Rn 代码: E8HEFH 操作:(A)(Rn),n=07,说明:Rn在内部数据存贮器中的地址由当前的工作寄存器区选择位RS1、RS0确定,可以是00H07H、08H0FH、10H17H或18H1FH。(以后指令中对Rn不再重复说明)。,2.2 数据传送类内部数据传送指令(16条),(2)内部RAM送累加器,格式:MOV A,Ri 代码: E6HE7H 操作:(A)(Ri),i=0,1 说明:Ri在内部数据存贮器中的地址由当前的工作寄存器区选择位RS1、RS0确定,可以是01H,02H、08H,09H,10H,11H或18H,19H。(以后指令中对Rn不再重复说明)

5、。该指令可以访问内部RAM空间(0255单元),对于8051子系列为0127单元。,2.2 数据传送类内部数据传送指令(16条),(3)直接寻址字节送累加器,格式: MOV A, direct 代码: E5H 操作:( A ) (direct) 说明: 代码的第二字节为直接地址,可以指向专用寄存器及内部RAM(0127单元)。 它与指令一起放在程序存贮器中,执行该指令时,与操作码一起取到CPU,经地址译码访问指定单元。direct可以为P0P3端口地址,直接地址,2.2 数据传送类内部数据传送指令(16条),(4)立即数送累加器,格式: MOV A, #data 代码: 74H 操作:( A

6、)#data 说明:目的操作数采用寄存器寻址方式。,立即数,2.2 数据传送类内部数据传送指令(16条),以Rn为目的(3),MOV Rn,A累加器送寄存器 MOV Rn,direct直接寻址字节送寄存器 MOV Rn,#data立即数送寄存器,2.2 数据传送类内部数据传送指令(16条),(1)累加器送寄存器,格式: MOV Rn,A 代码: F8HEFH 操作:(Rn)(A),n=07 说明:目的操作数采用寄存器寻址方式。,2.2 数据传送类内部数据传送指令(16条),(2) 直接寻址字节送寄存器,格式: MOV Rn, direct 代码: A8HAFH 操作:(Rn)(direct),

7、 n=07,直接地址,2.2 数据传送类内部数据传送指令(16条),(3) 立即数送寄存器,格式: MOV Rn, #data 代码: 78H7FH 操作: (Rn) #data, n=07,立即数,2.2 数据传送类内部数据传送指令(16条),以direct为目的,MOV direct,A累加器送直接寻址字节 MOV direct,Rn寄存器送直接寻址字节 MOV direct, direct 直接寻址字节送直接寻址字节 MOV direct, Ri 内部RAM送直接寻址字节 MOV direct,#data立即数送直接寻址字节,2.2 数据传送类内部数据传送指令(16条),(1) dire

8、ct,A累加器送直接寻址字节,格式: MOV direct, A 代码: F5H 操作:(direct)( A ) 说明: direct可为P0P3端口地址。,直接地址,2.2 数据传送类内部数据传送指令(16条),(2) direct,Rn寄存器送直接寻址字节,格式: MOV direct, Rn 代码: 88H8FH 操作:(direct)(Rn), n=07,直接地址,2.2 数据传送类内部数据传送指令(16条),(3) 直接寻址字节送直接寻址字节,格式: MOV direct, direct 代码: 85H 操作:(direct) (direct) 说明:这是一条3字节指令,代码的第二

9、、三字节分别为源操作数和目的操作数的绝对地址。指令的功能很强,它能实现内部RAM之间、专用寄存器之间或专用寄存器与内部RAM之间的直接数据传送。 而执行时间仅为2个机器周期。,直接地址(源),直接地址(目的),2.2 数据传送类内部数据传送指令(16条),(4) 内部RAM送直接寻址字节,格式: MOV direct, Ri 代码: 86H87H 操作:(direct)((Ri)), i=0,1,直接地址,2.2 数据传送类内部数据传送指令(16条),(5) 立即数送直接寻址字节,格式: MOV direct, #data 代码: 75H 操作:(direct) #data 说明:这是一条3字

10、节指令,代码的第二字节为直接地址,第3字节为立即数,在执行指令时,它们与指令的操作码一起从程序存贮器取入CPU。,立即数,直接地址,2.2 数据传送类内部数据传送指令(16条),以Ri为目的,MOV Ri,A累加器送内部RAM MOV Ri, direct直接寻址字节送内部RAM MOV Ri,#data立即数送内部RAM,2.2 数据传送类内部数据传送指令(16条),(1)累加器送内部RAM,格式:MOV Ri,A 代码:F6HF7H 操作:((Ri))A,i=0,1,2.2 数据传送类内部数据传送指令(16条),(2) 直接寻址字节送内部RAM,格式: MOV Ri, direct 代码:

11、 A6HA7H 操作:(Ri) (direct),i=0,1,直接地址,2.2 数据传送类内部数据传送指令(16条),(3) 立即数送内部RAM,格式: MOV Ri,#data 代码: 76H77H 操作:((Ri)) #data ,i=0,1,立即数,2.2 数据传送类内部数据传送指令(16条),16位数据传送指令,MOV DPTR,#data16 16位立即数送数据指针,2.2 数据传送类内部数据传送指令(16条),16位立即数送数据指针,格式: MOV DPTR, #data16 代码: 90H 操作:(DPH)#data15#data8 (DPL)#data7#data0 说明:这是

12、整个指令系统中唯一的一条16位数据的传送指令,用来设置地址指针。,立即数高位,立即数低位,2.2 数据传送类内部数据传送指令(16条),MOV R0,#30H MOV A,R0 MOV R1,A MOV B,R1 MOV P2,P1 MOV 10H,#20H,例1 设各单元及寄存器内容如右,执行下列指令后相应单元及寄存器内容如何变化?,40H,10H,30H,40H,00H,10H,11001010B,P1,#H,R0,#H,R1,#H,A,#H,B,#H,P2,30H,40H,40H,10H,11001010B,20H,2.2 数据传送类内部数据传送指令(16条),栈操作指令(2),POP

13、direct 栈顶弹至直接寻址字节 PUSH direct 直接寻址字节压入栈顶,2.2 数据传送类,(1) 栈顶弹至直接寻址字节,格式: POP direct 代码: D0H 操作: (direct) (SP) (SP) (SP)-1 说明:POP为堆栈操作指令,由栈针SP所寻址的内部RAM单元的内容传送到指令中直接寻址的一个单元中去。然后栈针减1。一般而言,执行此指令不影响标志。,直接地址,2.2 数据传送类 栈操作指令(2),(2) 直接寻址字节压入栈顶,格式: PUSH direct 代码: C0H 操作: (SP) (SP)+1 (direct) (SP) 说明:PUSH也是对栈操作

14、指令,它把指令中直接寻址的一个字节压入到当前栈针加1的单元中去。指令指令不影响标志。,2.2 数据传送类 栈操作指令(2),累加器与片外RAM传送(4),MOVX A,Ri 外部RAM送累加器(8位地址) MOVX Ri,A累加器送外部RAM (8位地址) MOVX A,DPTR外部RAM送累加器(16位地址) MOVX DPTR,A 累加器送外部 RAM(16位地址),2.2 数据传送类,(1) 外部RAM送累加器(8位地址),格式: MOVX A,Ri 代码: E2HE3H 操作: (A) (Ri) ,i=0,1 说明:指令执行时,在P3.7引脚上出现 RD 有效信号,用作外部数据存贮器的

15、读选通信号。P0口上分时输出由Ri指定的8位地址信息及输入该单元的内容。,2.2 数据传送类 累加器与片外RAM传送(4),(2) 累加器送外部RAM(8位地址),格式: MOVX Ri, A 代码: F2HF3H 操作: (Ri) (A) ,i=0,1 说明:指令执行时,在P3.6引脚上出现 有效信号,用作外部数据存贮器的写选通信号。P0口上分时输出由Ri指定的8位地址信息及输入该单元的数据。,2.2 数据传送类 累加器与片外RAM传送(4),(3) 外部RAM送累加器(16位地址),格式: MOVX A, DPTR 代码: E0H 操作: (A) (DPTR) 说明:指令执行时,P3.7引

16、脚上输出 RD 有效信号,用作外部数据存贮器的读选通信号.DPTR所包含的16位地址信息由P0(低8位)和P2(高8位)输出,选中单元的数据由P0输入到累加器,P0口分时复用的总线.,2.2 数据传送类 累加器与片外RAM传送(4),(4) 累加器送外部RAM(16位地址),格式: MOVX DPTR , A 代码: F0H 操作: (DPTR) (A) 说明:指令执行时,P36引脚上输出WR 有效信号,用作外部数据存贮器的写选通信号.DPTR所包含的16位地址信息由P0(低8位)和P2(高8位)输出,累加区的内容由P0输出,P0口作分时复用的总线.,2.2 数据传送类 累加器与片外RAM传送

17、(4),例2 设计一段程序把内部250(0FAH)单元的内容传送到外部650H单元。,MOV DPTR,#0650H;设置地址指针 MOV A, 0FAH ;取出250单元的数 MOVX DPTR,A;送到650H单元,内部RAM,外部RAM,0FAH,0650H,2.2 数据传送类 累加器与片外RAM传送(4),查表指令(与外部ROM传送),MOVC A,A+DPTR 程序代码送累加器(相对数据指针) MOVC A,A+PC 程序代码送累加器(相对程序计数器),2.2 数据传送类,(1) 程序代码送累加器(相对数据指针),格式: MOVC A, A+DPTR 代码: 93H 操作: (A)(

18、(A)+(DPTR) 说明:指令首先执行16位无符号数的加法操作,获得基址与变址之和,低8位相加产生进位时,直接加到高位,并不影响标志.,2.2 数据传送类 查表指令,(2) 程序代码送累加器(相对程序计数器),格式: MOVC A, A+PC 代码: 83H 操作: (PC) (PC)+1 (A)((A)+(PC) 说明:指令首先将PC修正到下一条指令的地址上,然后执行16位无符号数的加法操作,获得基址与变址之和,低8位相加产生进位时,直接加到高位,并不影响标志.,2.2 数据传送类 查表指令,字节交换XCH (3),XCH A,Rn 累加器与寄存器交换 XCH A,Ri 累加器与内部RAM

19、交换 XCH A,direct 累加器与直接寻址字节交换,2.2 数据传送类,(1) 累加器与寄存器交换,格式: XCH A,Rn 代码: C8HCFH 操作: (A) (Rn), n=07,2.2 数据传送类 字节交换,(2) 累加器与内部RAM交换,格式: XCH A,Ri 代码: C6HC7H 操作: (A) (Ri), i=0,1,2.2 数据传送类 字节交换,(3) 累加器与直接寻址字节交换,格式: XCH A,direct 代码: C5H 操作: (A) (direct),直接地址,2.2 数据传送类 字节交换,半字节交换 (1),XCHD A,Ri 累加器与内部RAM低4位交换

20、SWAP A 累加器高4位与低4位交换,2.2 数据传送类,(1) 累加器与内部RAM低4位交换,格式: XCHD A,Ri 代码: D6HD7H 操作: (A30) (Ri30), i=0,1,2.2 数据传送类 半字节交换,(2) 累加器高4位与低4位交换,格式: SWAP A 代码: C4H 操作: (A30) (A74),2.2 数据传送类 半字节交换,数据传送路径小结,2.2 数据传送类,作业2:,2.1 简述MOV , MOVX和MOVC指令的异同点。 2.2 判断下列指令是否合乎规定? MOVR2, R7 MOV A,R2 MOV PC,#2000H,2.3 算术操作类(24条)

21、,ADD A, Rn ; 加寄存器内容 ADD A, Ri ; 加内部RAM内容 ADD A, #data; 加立即数 ADD A, direct; 加直接寻址字节,(1)加法指令,(累加器A内容),(2)带进位加法指令(累加器内容),ADDC A,Rn ; 加寄存器内容和进位位 ADDC A,Rn ; 加内部RAM和进位位 ADDC A,#data ; 加立即数和进位位 ADDC A,direct ; 加直接寻址字节和进位位,2.3 算数操作类,(3)带进位减法指令(累加器内容),SUBB A, Rn ; 减寄存器内容和借位 SUBB A, Ri ; 减内部RAM内容和借位 SUBB A,#

22、data; 减和借位 SUBB A, direct; 减直接寻址字节和借位,2.3 算数操作类,INC A ;累加器内容加1 INC Rn ; 寄存器内容加1 INC direct; 直接寻址字节加1 INC Ri ; 内部RAM内容加1 INC DPTR; 数据指针加1,(4)加1、减1指令,2.3 算数操作类,例: 执行下面的命令后,寄存器和RAM的内容如何变化?,INC R0 INC R0 INC R0 INC DPTR INC DPTR INC DPTR,0FFH,7EH,38H,7FH,7EH,R0,10H,DPH,FEH,DPL,7FH,0FFH,10H,00H,39H,00H,1

23、1H,01H,11H,2.3 算数操作类,(4)加1 、减1指令,DEC A;累加器内容减1 DEC Rn ; 寄存器内容减1 DEC Ri ; 内部RAM内容减1 DEC direct; 直接寻址字节减1,2.3 算数操作类,2.4 逻辑操作类指令(24条),ANL A,Rn ;累加器内容逻辑与寄存器内容 ANL A,Ri ;累加器内容逻辑与内部RAM内容 ANL A,#data;累加器内容逻辑与立即数 ANL A,direct;累加器内容逻辑与直接寻址字节 ANL direct, A;直接寻址字节逻辑与累加器内容 ANL direct,#data ;直接寻址字节逻辑与立即数,与指令,2.4

24、 逻辑操作类指令(续1),ORL A,Rn;累加器内容逻辑或寄存器内容 ORC A,Rn ;累加器内容逻辑或内部RAM ORL A,#data;累加器内容逻辑或立即数 ORL A, direct ;累加器内容逻辑或直接寻址字节 ORC direct, A;直接寻址字节逻辑或累加器内容 ORL direct,#data ;直接寻址字节逻辑或立即数,或指令,2.4 逻辑操作类,异或指令,XRL A,Rn;累加器内容逻辑异或寄存器内容 XRL A,Ri;累加器内容逻辑异或内部RAM XRL A,#data;累加器内容逻辑异或立即数 XRL A,direct;累加器内容逻辑异或直接寻址字节 XRL d

25、irect, A ;直接寻址字节逻辑异或累加器内容 XRL direct,#data ;直接寻址字节逻辑异或立即数,2.4 逻辑操作类指令(续2),2.4 逻辑操作类,2.4 逻辑操作类指令(续3),RL A;累加器左循环移位 RLC A;累加器连进位标志左循环移位 RR A;累加器右循环移位 RRC A;累加器连进位标志右循环移位,循环移位,2.4 逻辑操作类,2.4 逻辑操作类指令(续4),CPL A;累加器取反 CLR A;累加器清零,清零与取反,2.4 逻辑操作类,2.5 控制程序转移类(17条),AJMPaddr11;2KB内绝对转移 LJMPaddr16;65KB内长转移 SJMPrel ;相对短转移 JMPA+DPTR;相对长转移,无条件转移,条件转移指令,JZ rel ;累加器为零转移 JNZrel ;累加器为非零转移 CJNE A,#data,rel;累加器与立即数不等转移 CJNE A,direct,rel ;累加器与直接寻址字节不等转移 CJNE Rn,#data,rel;寄存器与立即数不等转移 CJNE Ri,#data,rel;内部ram与立即数不等转移

温馨提示

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

评论

0/150

提交评论