MCS-51系列单片机指令系统及汇编语言程序设计

上传人:ji****72 文档编号:25656833 上传时间:2017-12-16 格式:PPT 页数:70 大小:1.37MB
返回 下载 相关 举报
MCS-51系列单片机指令系统及汇编语言程序设计_第1页
第1页 / 共70页
MCS-51系列单片机指令系统及汇编语言程序设计_第2页
第2页 / 共70页
MCS-51系列单片机指令系统及汇编语言程序设计_第3页
第3页 / 共70页
MCS-51系列单片机指令系统及汇编语言程序设计_第4页
第4页 / 共70页
MCS-51系列单片机指令系统及汇编语言程序设计_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《MCS-51系列单片机指令系统及汇编语言程序设计》由会员分享,可在线阅读,更多相关《MCS-51系列单片机指令系统及汇编语言程序设计(70页珍藏版)》请在金锄头文库上搜索。

1、第三章 MCS-51系列单片机指令系统,3- 1 概述指令:使计算机执行某种操作的命令。33种功能,42种助记符,111条指令。MCS-51指令系统可分为5大类:数据传送类指令(共29条)算术操作类指令(共24条)逻辑操作类指令(共24条)控制转移类指令(共17条)布尔变量(位)操作类指令(共17条),一、指令系统中常用符号,1、Rn : 工作寄存器,R0-R7,n = 0-7;2、Ri : 间址寄存器,R0,R1,i = 0,13、direct:直接地址,8位内部数据存储单元地址。它可以是一个内部数据RAM单元(0127)或特殊功能寄存器地址或地址符号;4、Ri:通过寄存器R1或R0间接寻址

2、的8位内部数据RAM单元(0255),i=0,1。 DPTR: 通过16位数据指针间接寻址。5、#data指令中的8位立即数。#data16指令中的16位立即数。,6、rel:偏移量,补码形式的8位偏移量,用于相对转移和所有条件转移指令。偏移量相对于当前PC计算,在-128+127范围内取值。7、bit: 位地址,二、 MCS-51单片机的寻址方式,MCS-51单片机共有7种寻址方式:立即寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位寻址,1. 立即寻址,立即寻址就是把操作数直接在指令中给出,即操作数包含在指令中。立即操作数有8位和16位两种形式,前面加“”来表示。例如:MOV A,

3、#0FFH ;将立即数FFH传送到累加器A中 MOV DPTR, #2000H ;将16位立即数2000H传送到数据指针DPTR中 MOV 40H, # 60H ;将立即数60H传送到40H内部RAM单元中,2. 直接寻址,指令中直接给出操作数地址的寻址方式。 例如:MOV A,30H ;内部RAM中的30H单元中的数据内容传送到累加器A中,3. 寄存器寻址,以通用寄存器的内容为操作数的寻址方式。通用寄存器包括:A,B,DPTR,R0R7。其中,R0R7必须在工作寄存器组之中。 例如:INC R0 ;(R0)1R0 需要注意的是,A和B既是通用寄存器,又是具有直接地址的特殊功能寄存器。,4.

4、寄存器间接寻址,以寄存器中的内容为地址,该地址中的内容为操作数的寻址方式。能够用于寄存器间接寻址的寄存器有:R0,R1,DPTR,SP。其中,R0,R1必须在工作寄存器组之中,SP仅用于堆栈操作。 例如: MOVX A, R1 ;外部数据RAM中地址为P2R1的单元内容A MOVX DPTR,A ;A外部数据RAM中DPTR为地址的单元 寄存器间接寻址的存储器空间包括:内部数据RAM和外部数据RAM。 内部数据RAM共用128字节,用一个字节的R0或R1可寻址整个空间。 外部数据RAM最大可达64K字节,仅用R0或R1无法寻址整个空间。在MCS-51系列单片机指令中,对外部数据RAM作间接寻址

5、有两种方法:第一种由P2口提供高8位外部数据RAM地址,由R0或R1提供低8位地址,由此共同寻址64K空间;第二种是用16位的DPTR作寄存器间接寻址。,5. 变址寻址,由程序计数器PC或DPTR加上偏移量寄存器A中内容之和形成操作数地址的寻址方式。变址寻址只能对程序存储器中的数据作寻址操作。由于程序存储器是只读存储器,因此变址寻址操作只有读操作而无写操作。 例如: MOVC A, A+DPTR ;A+DPTR为地址的存储器单元内容A MOVC A, A+PC ;A+PC为地址的存储器单元内容A,6. 相对寻址,以当前程序计数器PC的内容为基址,加上指令给出的一字节补码数形成新的PC值的寻址方

6、式。PC中的当前值称为基地址,一字节补码数称为偏移量,新的PC值称为转移目的地址。 例如:JC 80H ;C1跳转 表示进位位C为0,则程序计数器PC中的内容不改变,即不转移。若进位位C为1,则PC中的当前值为基地址加上偏移量80H后所得到的结果作为该转移指令的目的地址。,7. 位寻址,对位地址中的内容作位操作的寻址方式。单片机中只有内部RAM和特殊功能寄存器的部分单元有位地址(两者统一编址,地址空间为00HFFH),因此,位寻址只能对有位地址的这两个空间作寻址操作。 例如 SETB 20H ;120H位 MOV 32H,C ;进位位C32H位,3-2 数据传送类指令(共29条),以累加器A为

7、目的操作数类指令(4条) MOV A,dir MOV A,#data MOV A,Rn MOV A,Ri 例:R120H,(20H)55H,指令MOV A,R1执行后,A55H。以寄存器Rn为目的操作数的指令(3条) MOV Rn,dir MOV Rn,#data MOV Rn,A 例:(40H)30H,指令MOV R7,40H执行后,R730H。,以直接地址为目的操作数的指令(5条) MOV dir,dir MOV dir,#data MOV dir,A MOV dir,Rn MOV dir,Ri 例:R050H,(50H)10H,指令MOV 35H,R0执行后,(35H)10H。以间接地址

8、为目的操作数的指令(3条) MOV Ri,dir MOV Ri,#data MOV Ri,A 查表指令(2条) MOVC A,A+DPTR MOVC A,A+PC 例:A20H,DPTR2000H,指令MOVC A,A+DPTR执行后,程序存储器2020H单元中的内容送入A。,累加器A与片外数据存储器RAM传送指令(4条) MOVX DPTR,A MOVX A,DPTR MOVX A,,Ri MOVX Ri,A 例:DPTR2000H,外部RAM中(2000H)18H,指令MOVX A,DPTR执行后,A18H。 例:P210H,R150H,A64H,指令MOVX R1,A执行后,外部RAM中

9、(1050H)64H。堆栈操作类指令(2条) PUSH direct POP direct 例:SP07H,(35H)55H,指令PUSH 35H执行后,55H送入08H地址单元,SP08H。,交换指令(5条) XCH A,Rn XCH A,Ri XCH A,directXCHD A,Ri SWAP A 例:A80H,R032H,(32H)FFH,指令XCHD A,R0执行后,A8FH,(32H)F0H。16位数据传送指令(1条) MOV DPTR,#data16,2.算术操作类指令(共24条),算术运算指令共有24条,算术运算主要是执行加、减、乘、除、增量、减量和十进制调整等指令。加法指令(

10、4条) ADD A,#data ADD A,direct ADD A,Rn ADD A,Ri 带进位加法指令(4条) ADDC A,direct ADDC A,#data ADDC A,Rn ADDC A,Ri带借位减法指令(4条) SUBB A,direct SUBB A,#data SUBB A,Rn SUBB A,Ri例:A38H,R120H,(20H)23H,C1,指令SUBB A,R1执行后,A14H,乘法指令(1条),影响标志位,C = 0 MUL A, B ,乘法结果高8位放B, 低8位放A例:A50H,BA0H,指令MUL A, B执行后,A00H,B32H 除法指令(1条)影

11、响标志位,C = 0, OV = 0 DIV A, B 除数放A,被除数放B,结果 商放 A。余数放B例:A28H,B12H,指令DIV A, B执行后,A02H,B04H 加1指令(5条) INC A INC direct INC Ri INC Rn INC DPTR,减1指令(4条) DEC A DEC direct DEC Ri DEC Rn 十进制调整指令(1条) DA A ;DA指令只能放在加法指令后应用,把A中按二进制相加后的结果调整成按BCD数相加的结果 。,这条指令对累加器参与的BCD码加法运算所获得的8位结果(在累加器中)进行十进制调整,使累加器中的内容调整为二位BCD码。计

12、算机进行相应的调整规则是:BCD码相加后,当低4位大于9或D3位向前有进位时,在低4位上加06H;当高4位大于9或D7位向前有进位时,在高4位上加6H。例 (A)=58H,(R5)=26H,执行指令:ADD A,R5DA A运算过程如图所示。,图 DA A指令执行示意图,结果:(A)=84H。,例1:多字节乘法:16位 乘 8位设16位被乘数放在寄存器R4R3中,8位乘数放R2中,求:(R4)(R3)* (R2),乘积放在R7R6R5中,其中R5放最低位。分析:乘法指令只有一条,所以必须把多字节相乘的计算过程转换成单字节相乘的表达方式。程序如下:,CHENG: MOV A , R2 MOV B

13、 , R3 MUL AB MOV R5 , A MOV R6 , B MOV A , R2 MOV B , R4 MUL AB ADD A , R6 MOV R6 , A MOV A , B ADDC A , #00H MOV R7 , A RET,作业:计算 2B46H * 8AH ,将计算结果放在片内RAM 4FH、4EH、4DH单元,4DH放最低位。,3. 逻辑操作类指令(共24条),逻辑操作类指令共有24条,主要包括“与”、“或”、“异或”、求反、清0、左右移位等逻辑操作。“与”操作指令(6条) ANL A,direct ANL A,#data ANL A,Rn ANL A,Ri ANL direct,A ANL direct,#data “或”操作指令(6条) ORL A,direct ORL A,#data ORL A,Rn ORL A,Ri ORL direct,A ORL direct,#data例:(21H)3AH,A14H,指令ORL 21H,A执行后,(21H)3EH。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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