单片机原理与应用---基于Proteus虚拟仿真技术 第2版 教学课件 ppt 作者 徐爱钧第3章 指令系统与汇编语言程序设计

上传人:w****i 文档编号:92486771 上传时间:2019-07-10 格式:PPT 页数:89 大小:576KB
返回 下载 相关 举报
单片机原理与应用---基于Proteus虚拟仿真技术 第2版 教学课件 ppt 作者 徐爱钧第3章 指令系统与汇编语言程序设计_第1页
第1页 / 共89页
单片机原理与应用---基于Proteus虚拟仿真技术 第2版 教学课件 ppt 作者 徐爱钧第3章 指令系统与汇编语言程序设计_第2页
第2页 / 共89页
单片机原理与应用---基于Proteus虚拟仿真技术 第2版 教学课件 ppt 作者 徐爱钧第3章 指令系统与汇编语言程序设计_第3页
第3页 / 共89页
单片机原理与应用---基于Proteus虚拟仿真技术 第2版 教学课件 ppt 作者 徐爱钧第3章 指令系统与汇编语言程序设计_第4页
第4页 / 共89页
单片机原理与应用---基于Proteus虚拟仿真技术 第2版 教学课件 ppt 作者 徐爱钧第3章 指令系统与汇编语言程序设计_第5页
第5页 / 共89页
点击查看更多>>
资源描述

《单片机原理与应用---基于Proteus虚拟仿真技术 第2版 教学课件 ppt 作者 徐爱钧第3章 指令系统与汇编语言程序设计》由会员分享,可在线阅读,更多相关《单片机原理与应用---基于Proteus虚拟仿真技术 第2版 教学课件 ppt 作者 徐爱钧第3章 指令系统与汇编语言程序设计(89页珍藏版)》请在金锄头文库上搜索。

1、指令系统与汇编语言程序设计,指令和助记符,指令本身是一组二进制数代码,为了便于 记忆,将这些代码用具有一定含义的指令助记 符来表示,助记符一般采用英文单词的缩写 。 例: 指令代码 助记符 功能 740A MOV A,#0AH 将十六进制数0AH放 入累加器A中,指令的字节数,一条指令由操作码和操作数组成。操作码 指明执行什么操作,例如数的传送、加法、减 法等。操作数则表示这条指令所完成的操作对 象,即是对谁进行操作。操作数可以是一个数, 或者是一个数所在的内存地址。指令由指令字 节组成,不同的指令,指令的字节数不相同。 有单字节指令、双字节指令和三字节指令。,寻址方式,1 寄存器寻址 2 直

2、接寻址 3 立即寻址 4 寄存器间接寻址 5 变址寻址 6 相对寻址 7 位寻址,寄存器寻址,以通用寄存器的内容为操作数的寻址方式。 通用寄存器为A、B 、DPTR以及R0R7 。 例: CLR A ;A0 INC DPTR ;DPTRDPTR+1 ADD R5,# 20H ;R5#20H+R5,直接寻址,指令中直接给出操作数地址的寻址方式, 能进行直接寻址的存储空间有SFR寄存器和内 部数据RAM。 例: MOV PSW,# 20H ;PSW#20H MOV A,30H ;A(30H),立即寻址,指令中直接给出操作数的寻址方式。立即操 作数用前面加有#号的8位或16位数来表示。 例: MOV

3、 A,# 60H ;A#60H MOV DPTR,# 3400H ;DPTR#3400H MOV 30H,# 40H ;30H单元#40H,寄存器间接寻址,以寄存器中内容为地址,以该地址中内容为操 作数的寻址方式。间接寻址的存储器空间包括内 部数据RAM和外部数据RAM。能用于寄存器间接 寻址的寄存器有R0,R1和DPTR。在寄存器名称 前面加一个符号来表示寄存器间接寻址。 例: MOV A , R0 ;A (R0) MOVX DPTR,A ;外部RAM(DPTR)A,MOV A ,R0 操作示意图,片外RAM,2000H,DPTR,30H,A,2000H,30H,MOVX DPTR,A 操作

4、示意图,5 变址寻址,变址寻址是以某个寄存器的内容为基本地 址,然后在这个基址上加以地址的偏移量,才是 真正的操作数地址。 例: MOVC A, A+DPTR ;A(A+DPTR) MOVC A, A+PC ;A(A+PC),MOVC A, A+DPTR 操作示意图,相对寻址,以当前程序计数器PC的内容为基础,加上 指令给出的一字节补码数(偏移量)形成新的 PC值的寻址方式。相对寻址用于修改PC值, 主要用于实现程序的分支转移。 例: SJMP 08H ;PCPC+2+08H,SJMP 08H 操作示意图,7 位寻址,位寻址只能对有位地址的单元作位寻址操 作。位寻址其实是一种直接寻址方式,不过

5、其 地址是位地址。 例: SETB 10H ;将10H位置1 MOV 32H,C ;32H进位位C CLR PSW.4 ;将RS1位清0,指令分类说明,1 算术运算类指令 2 逻辑运算与循环类指令 3 数据传送类指令 4 程序转移类指令 5 子程序调用及返回指令 6 位操作指令,算术运算类指令,主要用于8位无符号数运算;也可用于带符号数运算。包括:加、减、乘、除、加1、减1运算指令, 指令操作将影响PSW中有关状态位。,1 加法指令,ADD A,#data ADD A,direct ADD A,Rn ADD A,Ri 用途:将A中的值与源操作数所指内容相加,最终结果 存在A中。,(1)不带进位

6、位的加法指令(4条),例1:ADD A,#47H ADD A,34H ADD A,R7 ADD A,R0,例2:MOV A,#0AEH ;-82 ADD A,#81H ;-127 则执行完本条指令后,A中的值为2FH PSW中状态位 C=1,AC=0,OV=1,P=1 对无符号数:结果为12FH; 对带符号数:OV=1,有错。,(2)带进位位的加法指令(4条),ADDC A,Rn ; ARnCYA ADDC A,direct ; A(direct )CYA ADDC A,Ri ; A(Ri)CYA ADDC A,#data ; AdataCYA 用途:将A中的值和其后面的值以及进位位C中的值相

7、加, 最终结果存在A,常用于多字节数运算中。,例:,先做67H+A0H=107H,而107H显然超过了0FFH,因此最终保存在A中的是07H,而1则到了PSW中的CY位了。换言之,CY就相当于是100H。 然后再做10H + 30H + CY,结果是41H,所以最终的结果是4107H。,1067H+30A0H,0001 0000 0110 0111,0011 0000 1010 0000,0100 0001 0000 0111,1067H,30A0H,4107H,又例:,先做67H+20H=87H,没有超过0FFH,因此最终保存在A中的是87H,而PSW中的CY=0。 然后再做10H + 30

8、H + CY,结果是40H,所以最终的结果是4087H。,1067H+3020H,0001 0000 0110 0111,0011 0000 0010 0000,0100 0000 1000 0111,1067H,3020H,4087H,(3) 加1指令(5条),INC A ;A+1A,影响P标志 INC Rn ;Rn+1Rn INC direct ;(direct)+1(direct) INC Ri ;(Rn)+1(Rn) INC DPTR ;DPTR+1DPTR 功能很简单,就是将后面目标中的值加1。,例:A=12H,R0=33H,(21H)=32H, (34H)=22H,DPTR=123

9、4H。 连续执行下面的指令: INC A INC R0 INC 21H INC R0 INC DPTR,; A=13H ; R0=34H ;(21H)=33H ;(34H)=23H ; DPTR=1235H,DA A 在进行BCD码加法运算时,跟在ADD和ADDC指令之后,用来对BCD码加法运算结果进行自动修正。 例:A=00010101(代表十进制数15) ADD A,#8,(4) 十进制调整指令(1条),; A=1DH,按二进制规律加,; A=23H,按十进制规律加,DA A,2 减法指令(8条),SUBB A,Rn ; ARnCYA SUBB A,direct ; A(direct )C

10、YA SUBB A,Ri ; A(Ri)CYA SUBB A,#data ; AdataCYA 将A中的值减去源操作数所指内容以及进位位C中的 值,最终结果存在A中。 说明:没有不带借位的减法指令,如果需要做不带位的减法指令(在做第一次相减时),只要将CY清零即可。,(1) 带借位的减法指令(4条),(2) 减1指令(4条),DEC A ;A-1A, DEC Rn ;Rn-1Rn DEC direct ;(direct)-1(direct) DEC Ri ;(Rn)-1(Rn) 与加1指令类似。,3 乘法指令(1条),MUL AB ;ABBA 此指令的功能是将A和B中的两个8位无符号数相乘,结

11、果将为16无符号数。其中高8位放在B中,低8位放在A中。在乘积大于FFH时,0V置1,否则OV为0;而CY总是0。 例: A=4EH,B=5DH, 执行MUL AB指令后,乘积是1C56H,所以在B中放的是1CH,而A中放的则是56H。,4 除法指令(1条),DIV AB ;AB的商A,余数B 此指令的功能是将A中的8位无符号数除B中的8位 无符号数,商放在A中,余数放在B中。 如果在做除法前B中的值是00H,也就是除数为0,那么0V=1。 例: A=11H,B=04H, 执行DIV AB指令后,结果为:A=04H,B=1。,逻辑运算与循环类指令,主要用于对2个操作数按位进行逻辑操作,结果送到

12、 A或直接寻址单元。 主要操作 与、或、异或、移位、取反、清零等。 对标志位的影响 除了目的操作数为ACC的指令影响奇偶标志P外,一般不影响标志位。,1 逻辑或指令(6条),ORL A,Rn ;ARnA ORL A,direct ;A(direct)A ORL A,Ri ;A(Ri)A ORL A,#data ;AdataA ORL direct,A ;(direct)A(direct) ORL direct,#data ;(direct)data(direct),例:71H和56H相或: 01110001 (71H) ) 01010110 (56H),01110111 即77H,后两条指令,

13、若直接地址为I/O端口,则为“读改写”操作。,2 逻辑与指令 (6条),ANL A,Rn ;ARnA ANL A,direct ;A(direct)A ANL A,Ri ;A(Ri)A ANL A,#data ;AdataA ANL direct,A ;(direct)A(direct) ANL direct,#data ;(direct)data(direct),例:71H和56H相与: 01110001 (71H) )01010110 (56H),01010000 即50H,后两条指令,若直接地址为I/O端口,则为“读改写”操作。,例:71H和56H相异或: 01110001 (71H)

14、) 01010110 (56H),3 逻辑异或指令(6条),XRL A,Rn ;A RnA XRL A,direct ;A (direct)A XRL A,Ri ;A (Ri)A XRL A,#data ;A dataA XRL direct,A ;(direct) A(direct) XRL direct,#data ;(direct) data(direct),00100111 即27H,后两条指令,若直接地址为I/O端口,则为“读改写”操作。,4 取反与清0指令(2条),取反:CPL A ;/AA 例:若A=5CH, 执行CPL A 结果:A=A3H,清0:CLR A ;0A,5 循环移

15、位指令(4条),RL A RR A RLC A RRC A,后两条指令,影响P和CY标志。,例:,若A=5CH,CY=1,执行RLC A后,,对RLC、RRC指令,在CY=0时 RLC相当于乘以2 RRC相当于除以2,结果:A=B9H,CY=0,P=1,综合举例:,ANL A,#0FH ;屏蔽A的高4位 SWAP A ANL P1,#0FH ;清P1口高4位 ORL P1,A ;P1口高4位输出A的低4位;,把累加器A中的低4位状态,通过P1口的高4位输出, P1口的低4位状态不变。,数据传送类指令,助记符 说明 MOV、MOVX、MOVC 传送操作 XCH、XCHD、SWAP 交换操作 PUSH、POP 堆栈操作 源操作数寻址方式: 立即寻址、直接寻址、寄存器寻址、 寄存器间接寻址、变址寻址。 目的操作数寻址方式: 直接寻址、寄存器寻址、寄存器间接寻址 除了目的操作数为ACC的指令影响奇偶标志P外,一般不影 响标志位。,8051单片机片内数据传送图,1 以累加器为目的操作数的指令(4条),MOV A,Rn MOV A,direct M

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号