【大学课件】MCS51指令系统.ppt

上传人:本田雅阁 文档编号:3034276 上传时间:2019-06-28 格式:PPT 页数:71 大小:5.86MB
返回 下载 相关 举报
【大学课件】MCS51指令系统.ppt_第1页
第1页 / 共71页
【大学课件】MCS51指令系统.ppt_第2页
第2页 / 共71页
【大学课件】MCS51指令系统.ppt_第3页
第3页 / 共71页
【大学课件】MCS51指令系统.ppt_第4页
第4页 / 共71页
【大学课件】MCS51指令系统.ppt_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《【大学课件】MCS51指令系统.ppt》由会员分享,可在线阅读,更多相关《【大学课件】MCS51指令系统.ppt(71页珍藏版)》请在三一文库上搜索。

1、寻址方式 数据传送类指令 算术运算类指令 逻辑操作类指令 控制转移类指令 位操作指令 常用伪指令,第 章 MCS 51 指令系统,本章内容,Single Chip Microcomputer,4,概 述,MCS-51系列单片机的指令系统专用于51系列单片机,共有111条指令,具有丰富灵活的寻址方式,其指令格式与8086的指令系统相同,甚至某些指令还完全相同。使用时应注意区别。 在111条指令中,从存储空间的占用上看,单字节指令占49条,双字节指令占45条,三字节指令占17条;从执行时间上看,在111条指令中,单机器周期指令占64条,双机器周期指令占45条,仅乘法和除法两条指令为四机器周期指令。

2、因而无论是存储空间的利用率,还是时间的执行效率都是较高的,再加上灵活的寻址方式,特别适合于实时测量和控制场合。,http:/ 1、指令功能 2、寻址方式 3、操作数的位数和存储结构 4、对PSW的影响 5、指令与存储区的对应关系 6、各类指针及其指向的地址范围 7、转移指令的转移范围 8、指令字节数和机器周期数,http:/ 本章主要介绍单片机的寻址方式及指令系统, 是必须掌握的内容。 一台计算机所有指令的集合, 称为该计算机的指令系统。 各种计算机都有专用的指令系统。,http:/ 80C51单片机的指令系统,4.1 80C51 指令系统概述 4.2 寻址方式 4.3 80C51 单片机的指

3、令系统,http:/ 80C51 指令系统概述,4.1.1 程序设计语言和指令 4.1.2 指令格式,http:/ 机器语言指令;目标程序。 汇编语言; 源程序。 【例4-1】 汇编语言程序 机器语言程序 MOV A,#0AH 74 0AH ADD A,#14H 24 14H,4.1.1 程序设计语言和指令,http:/ 机器语言指令格式,4.1.2 指令格式,http:/ A , #10H ;ADD为操作码, A及#10H为操作数,汇编语言指令,http:/ 目的操作数,源操作数;注释 例如: Loop: ADD A, R0 ; A + (R0) (A),http:/ A , #10H,ht

4、tp:/ MOV A,R0,例如:MOV A,30H,例如:MOV DPTR,#2010H,操作码助记符、目的操作数、源操作数是指令的核心部分,一、指令的格式,http:/ 寻址方式,在程序行中,操作码代表了该句指令的功能,而功能的对象却由操作数决定,由操作数指出参与运算的数或该数所在的地址。取得操作数的地址的方法叫做寻址方式。寻址方式与计算机的存储空间结构是密切相关的。灵活运用各种寻址方式,可以大大的提高程序的运行效率。,http:/ P1, #55H,MOV A, #01H,#55H,目的地,信,寄存器寻址,直接寻址,立即数寻址,寄存器间接寻址,变址寻址,相对寻址,位寻址,http:/ 或

5、SFR区,操作数,XXH,MOV P1, 20H,20H,目的地,20H,注:寻址是寻操作数的“地址”!,直接给出地址 20H直接寻址,http:/ P1, A,寄存器,R0-R7 A B DPTR,你能说出为什么叫寄存器寻址吗?,http:/ P1, R0,目的地,寄存器,操作数,3AH,内部RAM,3AH,65H,3AH,R0 R1 DPTR,目的地,2号,信在2号箱子里,1号,你能说出1号箱子和2号箱子分别对应内存中哪一部分吗?,http:/ P1,R0,MOV P1,R0,MOV P1,20H,MOV P1,#20H,MOV P1,R0,http:/ P1,R0,MOV P1,R0,M

6、OV P1,20H,MOV P1,#20H,MOV P1,R0,http:/ P1,R0,MOV P1,R0,MOV P1,20H,MOV P1,#20H,MOV P1,20H,http:/ P1,R0,MOV P1,R0,MOV P1,20H,MOV P1,#20H,MOV P1,#20H,http:/ A, A+DPTR,目的地,寄存器,操作数,内部RAM,3AH,65H,3AH,基址寄存器 12H,变址寄存器 34H,内部RAM,46H,65H,A,DPTR PC,46H,http:/ 54H,PC,+,54H,PC,2002H,2002H =2056H,PC,2056H,http:/

7、0 0 0 0 0 0 0,想一想: 如果想使27H单元的图示位置1,该怎么办呢?,http:/ 3DH,3D,3C,3B,3F,3E,3A,39,38,27H,http:/ 3DH,0 0 0 0 0 0 0,1,0,http:/ MCS51指令系统的分类,4.3.1 数据传送指令(29条) 4.3.2 算术运算指令(24条) 4.3.3 逻辑运算指令(24条) 4.3.4 控制转移指令(17条) 4.3.5 位操作指令(17条) 4.3.6 常用伪指令(17条),http:/ 源地址,数 据,MOV ,MOV A,#20H,,,MOV,20H,A,4.3.1 数据传送指令(29条 不影响标

8、志位CY AC OV) 8位数据传送指令(15条),http:/ 数据传送指令(29条) 16位数据传送指令(1条),MOV DPTR,#data16,外部数据传送指令(4条),MOVX ,,,MOVX,http:/ A , Ri,3)累加器A中高4位和低4位交换(1条),SWAP A,4)查表指令(2条),MOVC A , A+PC,MOVC A , A+DPTR,5)堆栈操作指令(2条),PUSH direct,POP direct,http:/ 将片内RAM30H单元的内容送到片外60H;将 片外4312H单元的内容送到片内31H单元: MOV A,30H MOV R0,#60H MOV

9、X R0,A MOV DPTR,#4312H MOVX A, DPTR MOV 31H,A,http:/ 寄存器,内部RAM存储器,工作寄存器区选择位RS0、RS1,http:/ 普通加法指令(4条),A ,,Rn,Ri,#data,ADD,ADD A,Rn ADD A,direct ADD A, Ri ADD A,#data,注意:1.本指令影响Cy,AC,Ov,P等标志。 2.求和操作既可看成是有符号数运算,也可看成是无符号数运算,完全由程序员编程时自行设定。,http:/ 带进位加法指令(4条),direct,A ,,Rn,Ri,#data,ADDC,ADDC A,Rn ADDC A,d

10、irect ADDC A, Ri ADDC A,#data 除相加时要考虑进位外,其余操作与前面相同。,http:/ 减法指令(4条),direct,A ,,Rn,Ri,#data,SUBB,SUBB A,Rn SUBB A,direct SUBB A,Ri SUBB A,#data 减法指令是带借位的,若不需要带借位减,则在作减法指令前清除借位位,即CLR C 减法指令影响OV、CY、AC标志位,http:/ A B,除法指令(1条),DIV A B,两个8位操作数相乘,形成16位的积,其中A为积的低位而B为积的高位。需要进行更多位的乘法运算,需另外编程方能实现。,两个8位操作数相除,其中A

11、为被除数而B为除数;运算后,结果仍然在AB中,其中A为商而B为余数。 同乘法指令相同,需要进行更多位的除法运算,需另外编程方能实现。,http:/ A ;实现BCD码加法 BCD码相加后,根据Ac和Cy的状态对A中的数作适当调整,使运算结果为BCD码。 这条指令对加法结果的调整规则是: (1)若累加器A低4位大于9或辅助进位标志AC1 则 低4位加6; (2)若累加器A高4位大于9或CY1,则高4位加6; (3)若1、2条件都满足时,则A加66H; (4)若1、2条件都不满足时,则A加00H; (5)若累加器A的最高位因调整而产生进位时,将CY 置1,若不产生进位为调整前的状态而并不清零。 D

12、A指令只影响进位标志CY。,http:/ A,#56H MOV R3,#67H ADD A,R3 DA A ;A=?,(A) =01010110 +) (R3)=01100111,BCD码为123,http:/ 逻辑与指令(6条),http:/ A RR A RLC A RRC A,注意:执行带进位的循环移位指令之前,必须给CY置位或清零。,循环移位指令,http:/ 设(20H)=(X7X6X5X4X3X2X1X0) (21H)=(Y7Y6Y5Y4Y3Y2Y1Y0) 试编程使(30H)=Y2Y1Y0X4X3X2X1X0,程序清单: MOV 30H,20H ANL 30H,#00011111B

13、;,B:二进制 O:八进制 D:十进制 H:十六进制,MOV A,21H RL A SWAP A ANL A,#11100000H ORL 30H,A,http:/ MOV A,#0AAH ANL P1,#11100000B ORL P1,A,http:/ 控制转移类指令 无条件转移指令(4条),1) 长转移指令:LJMP AAAAH ; AAAAHPC,PC=0000H,PC=AAAAH,假设执行该指令前,PC的值为0000H。,注意:该指令可以转移到64 KB程序存储器中的任意位置。,http:/ (保持不变),PC低11位,操作码(第一字节),操作数(第二字节),11位转移地址的形成示意

14、图,程序计数器PC,2)绝对转移指令,AJMP addr11 ; PC+2PC, addr11 PC.10PC.0,http:/ SJMP 03H,03H就是当前PC值 与目的PC值相对差,PC,http:/ 1)累加器A判0指令(2条),2)减1非零转移指令(2条),http:/ 1)绝对调用指令(1条),2)长调用指令(1条),http:/ 根据累加器A命令键键值,设计命令键操作程序入口跳转表。程序如下: CLR C RLC A ;乘2,若用LJMP指令则乘3 MOV DPTR,#JPTAB JMP A+DPTR JPTAB: AJMP CCS0 AJMP CCS1 AJMP CCS2,h

15、ttp:/ 位操作类指令,RAM 位寻址区位地址表,http:/ ORG 定义字节数据伪指令 DB 定义字数据伪指令 DW 定义空间伪指令 DS 符号定义伪指令 EQU或 数据赋值伪指令 DATA 数据地址赋值伪指令 XDATA 汇编结束伪指令 END,http:/ C,P2.2 ORL C,TCON.5 ANL C,P1.1 MOV F0,C MOV C,TCON.3,ORL C,/00H ANL C,F0 ANL C,/09H MOV P3.3, C,例: 编程实现下图所示的逻辑功能,http:/ 条件转移类指令范例方案一,还有什么方法实现循环的终止?,将00H0FH这16个数顺序地置入片

16、内RAM20H2FH单元中。 MOV R0,#20H MOV R7,#16 CLR A LOOP:MOV R0,A INC A INC R0 DJNZ R7,LOOP SJMP $,JMP1.ASM,http:/ R0,#20H MOV R7,#0FH CLR A LOOP:MOV R0,A INC A INC R0 CJNE A,#0FH,LOOP SJMP $,JMP2.ASM,http:/ R0,#20H MOV A,#0FH ;? MOV 30H,#00H LOOP:MOV R0,30H INC 30H INC R0 DEC A JNZ LOOP SJMP $,JMP3.ASM,http:/ R0,#20H MOV A,#0FH MOV 30H,#00H LOOP:MOV R0,30H INC 30H INC R0 SUBB A,#01H JNC LOOP SJMP $,JMP4.ASM,http:/ 难点:寄存器间接寻址 各类指令的主要功能。 难点:查表指令 难点:条件转移指令 作业:,http:/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1