单片机原理及应用-电子课件-李英顺 第3章 MCS 51单片机指令系统

上传人:E**** 文档编号:89409633 上传时间:2019-05-24 格式:PPT 页数:101 大小:244KB
返回 下载 相关 举报
单片机原理及应用-电子课件-李英顺 第3章  MCS 51单片机指令系统_第1页
第1页 / 共101页
单片机原理及应用-电子课件-李英顺 第3章  MCS 51单片机指令系统_第2页
第2页 / 共101页
单片机原理及应用-电子课件-李英顺 第3章  MCS 51单片机指令系统_第3页
第3页 / 共101页
单片机原理及应用-电子课件-李英顺 第3章  MCS 51单片机指令系统_第4页
第4页 / 共101页
单片机原理及应用-电子课件-李英顺 第3章  MCS 51单片机指令系统_第5页
第5页 / 共101页
点击查看更多>>
资源描述

《单片机原理及应用-电子课件-李英顺 第3章 MCS 51单片机指令系统》由会员分享,可在线阅读,更多相关《单片机原理及应用-电子课件-李英顺 第3章 MCS 51单片机指令系统(101页珍藏版)》请在金锄头文库上搜索。

1、本章学习任务: 了解指令和指令系统的概念与分类。 掌握指令的寻址方式。 掌握数据传送指令、算术和逻辑运算指令、控制转移指令和位操作指令的功能和应用。,第3章 MCS-51单片机指令系统,3.1.1 指令与指令系统的概念 指令是使计算机内部执行相应动作的一种操作,是提供给用户编程使用的一种命令。 计算机能够执行的全部操作所对应的指令集合,称之为这种计算机的指令系统。,3.1 单片机指令系统概述,采用机器语言编写的程序称之为目标程序。 采用汇编语言编写的程序称之为源程序。,汇编语言不能被计算机直接识别并执行,必须经过一个中间环节把它翻译成机器语言程序,这个中间过程叫做汇编。 汇编有两种方式:机器汇

2、编和手工汇编。 机器汇编是用专门的汇编程序,在计算机上进行翻译;手工汇编是编程员把汇编语言指令逐条翻译成机器语言指令。,3.1.2 指令格式,8051汇编语言指令由操作码助记符字段和操作数字段两部分组成。 指令格式如下: 操作码 目的操作数 ,源操作数 MCS-51指令系统中,有单字节、双字节或三字节指令。,3.1.3 指令系统说明,(1)Rn:表示工作寄存器,可以是R0R7中的一个。 (2)Ri:表示寄存器间接寻址,Ri只能是R0或R1。 (3)DPTR:表示以DPTR为数据指针的间接寻址,用于对外部64K RAM/ROM寻址。 (4)#data:8位立即数,实际使用时data应是00HFF

3、H中的一个。 (5)direct:8位直接地址,实际使用时direct应该是00HFFH中的一个,也可以是采用物理地址表示的特殊功能寄存器SFR中的一个。 (6)#data16:16位立即数。,(7)bit:位地址。 (8)addr11:11位目标地址。 (9)addr16:16位目标地址。 (10)rel:8位带符号地址的偏移量,地址偏移量范围128+127。 (11)$:当前指令的地址。 (12)(X):某一个存储单元X中的内容。 (13)(Ri):由Ri间接寻址的单元的内容,即Ri指向的地址中的内容。,3.2 寻址方式,3.2.1 寄存器寻址 1寄存器寻址方式 是指操作数在工作寄存器R0

4、R7、A、B、DPTR中,指令码内含有该操作数的工作寄存器地址。 2指令举例:MOV A,R0 其功能是将寄存器R0的内容传送到累加器A中,操作数在R0中。 3寄存器寻址方式的寻址范围包括: (1)4个寄存器组共有32个通用寄存器。但在指令中只能使用当前寄存器组,因此在使用前常需通过对PSW中的RS1、RS0位的状态设置,来进行当前寄存器组的选择。 (2)部分专用寄存器。例如,累加器A、B以及数据指针DPTR等。,3.2.2 直接寻址 1直接寻址方式 是指在指令中操作数直接以单元地址的形式给出。8051单片机中,片内RAM的所有单元都能采用直接寻址的表示方式。 2指令举例: MOV A,30H

5、 3直接寻址方式的寻址范围只限于内部RAM,具体说就是: (1)低128个单元。在指令中直接以地址形式给出。 (2)专用寄存器。专用寄存器除以单元地址形式给出外,还可以以寄存器符号形式给出。应当指出,直接寻址是访问专用寄存器的唯一方法(A,B,DPTR除外)。,3.2.3 寄存器间接寻址 1寄存器间接寻址方式 是指寄存器中存放的是操作数的地址,即操作数是通过寄存器间接得到的。 2为了和寄存器间接寻址区别,在寄存器间接寻址方式中,在寄存器的名称前面加前缀标志“”。 3指令举例:MOV A,R0 指令以R0寄存器内容(假设为20H)为地址,把该地址单元的内容送到累加器A,其功能示意图如图3-1所示

6、。,图3-1 寄存器间接寻址方式示意图,4寄存器间接寻址方式的寻址范围: (1)内部RAM低128个单元。 (2)外部RAM64KB。,3.2.4 立即寻址 1立即寻址方式 是操作数在指令中直接给出。通常把出现在指令中的操作数称为立即数。 2为了与直接寻址指令中的直接地址相区别,在立即数前面加“#”标志。 3指令举例:MOV A,#3AH,除8位立即数外,指令系统中还有一条16条立即寻址指令,即: MOV DPTR,#data16 ;其功能是把16位 ;立即数送到数据指针,3.2.5 变址寻址 1变址寻址方式 是以DPTR或PC作基址寄存器,以累加器A作变址寄存器,并以两者内容相加形成的16位

7、地址作为操作数的地址。 2指令举例:MOVC A,A+DPTR,设指令前A=54H,DPTR=3F21H,则该指令的操作示意图如图3-2所示。,3变址寻址方式作如下说明 (1)变址寻址方式只能对程序存储器进行寻址,或者说它是专门针对程序存储器的寻址方式。 (2)变址寻址的指令只有三条: MOVC A,A+DPTR MOVC A,A+PC JMP A+DPTR (3)变址寻址指令是单字节指令。,3.2.6 相对寻址指令 1相对转移 是以转移指令所在地址为基地址,向前最大可转移(127+转移指令字节数)个单元,向后最大可转移(128转移指令字节数)个单元。 2在相对寻址方式的转移指令中,给出了地址

8、偏移量,把PC的当前值加上偏移量就构成了转移的目的地址。 3 PC当前值是指执行完该转移指令后的下一条指令的地,即转移指令的地址值加上它的字节数。因此转移的目的地址可用如下公式表示: 目的地址=转移指令地址+转移指令字节数+rel 偏移量rel是一个带符号的8位二进制补码数,所能表示的范围是128+127。,4指令举例: SJMP rel ;跳转的目的地址HERE+rel HERE:,3.2.7 位寻址 1MCS-51单片机有位处理功能,可以对数据位进行操作,因此就有相应的位寻址方式。 2指令举例: ANL C,30H ;累加位C的状态和地址为30H的位状态进行逻辑与操作,并把结果保存在C中。

9、 3位寻址方式的寻址范围:内部RAM中的位寻址区,单元地址为20H2FH,共16个单元128位,位地址是00H7FH。对于这128个位的寻址直接以位地址表示。,4专用寄存器的位寻址区。可供位寻址的11个专用寄存器。 5对这些寻址位在指令中有如下几种表示方法: (1)直接使用位地址。例如20H的最低位地址是00H。 (2)位名称表示方法。专用寄存器中的一些寻址位是有符号名称的。专用寄存器中PSW的最低位可表示为P。 (3)单元地址加位的表示方法。专用寄存器中PSW的最低位可表示为D0H.0。 (4)专用寄存器符号加位的表示方法。例如专用寄存器中PSW的最低位可表示为PSW.0。,3.3 数据传送

10、指令,数据传送指令的作用是将数据从一个地方传送到另一个地方,是单片机指令中用的非常多的一类指令。数据传送指令是对存储单元进行操作,对于不同的存储器的数据传送。,3.3.1 片内数据传送指令 1以累加器A为目的寄存器的指令 MOV A,Rn ; Rn中内容送到累加器A中 MOV A,Ri ; Ri指向单元中内容送到A中 MOV A,direct ; (direct)A MOV A,#data ; #dataA,,例3-1 设片内RAM R0=00H,(23H)=10H,(50H)=34H,执行完每条指令后A,R0中内容分别是什么? 解:MOV A,#50H MOV A,50H MOV R0,#2

11、3H MOV A,R0,2以Rn为目的操作数的指令 MOV Rn,A ;ARn,n=07 MOV Rn,direct ;(direct)Rn MOV Rn,#data ;#dataRn,n=07,3以直接地址direct为目的操作数的指令 MOV direct,A ;Adirect MOV direct,Rn ;Rndirect, MOV direct1,direct2 ;(direct 2)direct1 MOV direct,Ri ;(Ri)direct MOV direct,#data ;#datadirect,4以寄存器间接地址为目的操作数的指令 MOV Ri,A ;A(Ri),i=0

12、,1 MOV Ri,direct ;(direct)(Ri) MOV Ri,#data ;#data(Ri),例3-2 设片内RAM (23H)=10H,(10H)=34H,R0=00H,执行完每条指令后A,R0中内容分别是什么? MOV A,#50H ;A=50H MOV R0,#23H ;R0=23H MOV R0,A ;(23H)=50H MOV R0,10H ;(23H)=34H,516位数据传送指令 MOV DPTR,#data16 ; #data16DPTR,6堆栈操作指令 MCS-51内部RAM中可以设定一个“先进后出,后进先出”的区域称作堆栈。 堆栈的一端固定,称为栈顶,另一端

13、是活动的,称为栈底。 堆栈指针SP指出堆栈的栈顶位置,当栈顶地址等于栈底地址时,堆栈就是空的。,(1)进栈指令 PUSH direct ;SPSP+1, ;(SP)(direct),例3-3 当SP=60H,A=30H,B=70H时,执行如下指令后61H单元、62H单元和SP中内容是什么? PUSH ACC PUSH B,(2)出栈指令 POP direct ;(SP) (direct) , ;SPSP1,例3-4 当 SP=62H,(62H)=70H,(61H)=30H,执行指令后DPTR、SP内容分别是什么? POP DPH ;(SP)DPH,SP1SP POP DPL ;(SP)DPL,

14、SP1SP,7交换指令 (1)字节交换指令 XCH A,Rn ;A Rn XCH A,direct ;A (direct) XCH A,Ri ;A (Ri),例3-5 A=80H,R7=08H,(40H)=F0H,R0=30H,(30H)=0FH,执行下列指令后A、R7、40H单元30H单元内容是什么? XCH A,R7 ;A与R7互换 XCH A,40H ;A与(40H)互换 XCH A,R0 ;A与(R0)互换 结果:A=0FH,R7=80H,(40H)=08H,(30H)=F0H。,(2)半字节交换指令 XCHD A,Ri ;累加器的低4位与内部 ;RAM低4位交换,例3-6 R0=60

15、H,(60H)=3EH,A=59H,执行完下列指令后A、60H单元中内容是什么? XCHD A,R0,3.3.2 片外RAM数据传送指令,1读片外RAM指令 MOVX A,DPTR ;A(DPTR) MOVX A,Ri ;A(Ri) 读外部RAM存储器或I/O中的一个字节时 =0,2写片外RAM指令 MOVX DPTR,A ;A(DPTR) MOVX Ri,A ;A(Ri) 执行写指令时 =0,例3-7 设外部RAM中(0056H)=ABH,A=78H,分别完成这两个程序的编写(1) 把A中内容送到0056H中,(2) 把0056H中内容送入7010H中。 解:(1) 方法一: MOV R0,#56H MOVX R0,A 方法二: MOV DPTR,#0056H MOVX DPTR,A,(2) MOV R0,#56H MOVX A, R0 MOV DPTR,#7010H MOVX DPTR,A,3.3.3 片外ROM数据传送指令,1PC作基址寄存器 MOVC A,A+PC ;PCPC+1, ;A(A+PC),例如 A=30H,执行地址1000H处的指令 1000H: MOVC A,A+PC 本指令占用一个字节,执行结果将程序存储器中1031H的内容送入A。 优点:不改变特殊功能寄存器及PC的状态,根据A的内容就可以取出表格中的常数。 缺点:表格只能存放在该条查

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

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

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