M10第3章 MCS-51指令系统

上传人:woxinch****an2018 文档编号:44686527 上传时间:2018-06-14 格式:PPT 页数:99 大小:874.50KB
返回 下载 相关 举报
M10第3章 MCS-51指令系统_第1页
第1页 / 共99页
M10第3章 MCS-51指令系统_第2页
第2页 / 共99页
M10第3章 MCS-51指令系统_第3页
第3页 / 共99页
M10第3章 MCS-51指令系统_第4页
第4页 / 共99页
M10第3章 MCS-51指令系统_第5页
第5页 / 共99页
点击查看更多>>
资源描述

《M10第3章 MCS-51指令系统》由会员分享,可在线阅读,更多相关《M10第3章 MCS-51指令系统(99页珍藏版)》请在金锄头文库上搜索。

1、第3章 MCS-51单片机的指令系统v3.1 指令系统v3.2 寻址方式v3.3 数据传送指令v3.4 算术运算指令v3.5 逻辑运算指令v3.6 控制转移指令v3.7 位操作指令3.1 指令系统概述指令是规定计算机进行某种操作的命令。指令系统是计算机能够执行的全部指令的集合。计算机的主要功能也是由指令系统来体现的。指令系统是表征计算机性能的一项重要指标。 (1)指令与指令系统3.1.1 基本概念(1)指令执行时间快。 (2)指令短,约有一半的指令为单字节指令。 (3)用一条指令即可实现2个一字节的相乘或相除。 (4)具有丰富的位操作指令。 (5)可直接用传送指令实现端口的输入输出操作。(2)

2、8051指令的特点机器语言是用二进制编码表示每条指令,能被计算机直接识别并执行的语言。用机器语言编写的程序称为机器码或目标程序。汇编语言是用助记符、符号和数字等来表示指令的程序设计语言。(3)机器语言和汇编语言3.1.2 指令格式指令格式就是指令的表示方法,包括指令的长度和 指令内部信息的安排等。指令通常由操作码和操作数两部分组成。操作码是用来规定指令所完成的操作的。操作数则表示操作的对象。8051汇编语言指令格式为:标号:标号:操作码操作码操作数或操作数地址操作数或操作数地址;注释;注释操作码操作码7 07 0数据或寻址方式数据或寻址方式7 07 0 双字节指令:双字节指令:单字节指令:单字

3、节指令:操作码操作码7 07 0三字节指令:三字节指令:操作码操作码7 07 0数据或寻址方式数据或寻址方式7 07 0数据或寻址方式数据或寻址方式7 07 0指令按字节长度可以分为三种:指令按字节长度可以分为三种:例如:例如: MOV AMOV A,R0R0例如:例如:MOV AMOV A,30H30H例如:例如:MOV DPTRMOV DPTR,#2010H#2010H3.1.3 指令的分类8051指令系统共有111条指令。1.按功能可分为五类: 数据传送类指令(28条); 算术运算类指令(24条); 逻辑运算类指令(25条); 控制转移类指令(17 条); 布尔操作(位)类指令(17条)

4、。2.按执行时间可分为: 单周期指令(64条); 双周期指令(45条); 四周期指令(2条)。3.按指令长度可分为: 单字节指令(49条); 双字节指令(45条); 三字节指令(17条)。3.2 寻址方式寻址方式是指令系统中规定的寻找操作数所在地址 的方式。寻址方式的方便与快捷是衡量CPU性能的一个重要方面,寻址方式是计算机的重要性能指标,寻址方 式越多计算机功能越强,灵活性亦越大,能更有效地处 理各种数据。8051单片机共有7种寻址方式:(1)直接寻址(2)立即数寻址(3)寄存器寻址(4)寄存器间接寻址(5)变址寻址(6)相对寻址(7)位寻址很重要!必须掌握3.2.1 立即数寻址立即数寻址是

5、指令中直接给出操作数的寻址方式。该操作数称为立即数,用#号表示,以区别直接地址。3.2.2 直接寻址直接寻址是指在指令中直接给出操作数所在存储单元 的地址。在8051单片机中,直接地址只能用来表示特殊功能寄 存器、片内RAM以及位地址空间。特殊功能寄存器和位地址空间只能用直接寻址方式访 问。特殊功能寄存器既可以使用它们的名字,也可以使用 它们的地址。直接寻址方式示意图 3.2.3 寄存器寻址寄存器寻址是以通用寄存器的内容为操作数的寻址方式。寄存器一般指累加器A、寄存器B、工作寄存器R0-R7、 数据指针DPTR、Cy等。3.2.4 寄存器间接寻址寄存器间接寻址是把指定寄存器的内容作为地址,由该

6、地址所指定的单元内容操作数。这种寻址可用于访问片内RAM或片外RAM,但不能访 问SFR。MCS-51单片机规定R0、R1或DPTR为间接寻址 寄存器,用Ri或DPTR表示。例如:MOV A, R0 MOVX A, R1MOVX A, DPTR寄存器间接寻址方式示意图 寄存器间接寻址的寻址范围: 片内RAM的低128单元,只能采用R0或R1为间址寄 存器,其形式为Ri(i0,1)。 片外RAM 的64 KB单元,使用DPTR作为间址寄存 器,其形式为DPTR,例如: MOVX A, DPTR 其功能是把DPTR指定的片外RAM单元的内容送累加器A 。 片外RAM低256单元,除了可使用DPTR

7、作为间址寄 存器外,也可使用R0或R1作间址寄存器。例如: MOVX A,R0 即把R0指定的片外RAM单元的内容送累加器A。 堆栈区:堆栈操作指令(PUSH和POP)也应算作 是寄存器间接寻址,即以堆栈指针(SP)作间址寄存器 的间接寻址方式。3.2.5 变址寻址这种寻址方式用于访问程序存储器中的数据表格, 它以基址寄存器(DPTR或PC)的内容为基本地址,加上 变址寄存器A的内容形成16位的地址,访问程序存储器中的数据表格。这种方法常用于查表操作。MOVC A, A+PC ;A(A+PC)MOVC A, A+DPTR ;A(A+DPTR)这两条指令都是单字节指令,机器码分别是83H、 93

8、H。要注意的是第一条指令实际上是PC的内容加1后与 累加器A中的地址偏移量相加,作为操作数的地址。变址寻址方式示意图8051指令系统中的变址寻址指令有如下特点: 变址寻址方式只能对程序存储器进行寻址 ,或者 说是专门针对程序存储器的寻址方式。 变址寻址指令只有三条 MOVC A,ADPTR MOVC A,APC JMP ADPTR其中前两条是程序存储器读指令,后一条是无条件 转移指 令。 这三条指令却都是单字节指令。 变址寻址方式用于查表操作。3.2.6 相对寻址相对寻址是将程序计数器PC中的当前值(基地址)与指令第二字节给出的偏移量相加,形成实际的转移地址。相 对寻址只出现在相对转移指令中。

9、注意:PC中的当前值是指执行相对转移指令后的PC值。源地址:相对转移指令操作码所在的地址。目的地址:转移后的地址rel:偏移量目的地址 = 源地址 + 相对转移指令字的节数(2或3) + rel在实际上,经常需要根据已知的源地址和目的地址计 算偏移量rel。在正向跳转时rel = 目的地址 - 源地址 指令字节数(2或3)在反向跳转时,目的地址小于源地址,rel要用负数的补码表示:rel = (目的地址 - 源地址指令字节数)补3.2.7 位寻址MCS-51单片机中设有独立的位处理器。位操作指令 能对内部RAM中的位寻址区(20H2FH)和某些有位地址的特殊功能寄存器进行位操作。SETB TR

10、0 ;TR01 CLR 00H ;(00H)0 MOV C,57H ;将57H位地址的内容传送到位累加器C中ANL C,5FH ;将5FH位状态与进位位C相与,结果在C中 8051单片机的7种寻址方式所涉及的地址空间 寻址方式寻址空间立即数寻址程序存储器直接寻址片内RAM低128B,特殊功能寄存器寄存器寻址工作寄存器R0R7、A、B、C、PTR寄存器间接寻址片内RAM低128B,片外RAM变址寻址程序存储器位寻址片内RAM的20H2FH、部分特殊功能寄存器3.2.8 指令描述符号说明(1) Rn -表示工作寄存器R0R7中的一个,其中n07(2) Ri -可用作间接寻址的寄存器, R0或 R1

11、,i0,l(3) Direct -内部的8位地址,既可以指片内RAM的低128个单元地址,也可以指特殊功能寄存器的地址或符号名称,因 此direct表示直接寻址方式(4) #data -指令中所含的8位立即数(5) #data16 -指令中所含的16位立即数(6) addr16 -16位目的地址,只在LCALL和LJMP指令中使用(7) addr11 -11位目的地址,只在ACALL和AJMP指令中使用(8) Rel -相对转移指令中的偏移量,为8位带符号数。为 SJMP和所有条件转移指令所用。转移范围为相对于下一条 指令笫一字节地址的-128127。(9) Bit -片内 RAM (包括部分

12、特殊功能寄存器)中的直接寻址位。(10) -间址寄存器的前缀标志。(11) / -位地址的前缀标志,表示对该位操作数取反。但不影响该位原值。(12) () -某寄存器或某单元的内容。(13) () -由寻址的单元中的内容。(14) -箭头左边的内容被箭头右边的内容所取代。 3.3 数据传送类指令数据传送类指令是将源操作数送到目的操作数 的指令。数据传送一种最常用、最基本的操作。数 据传送是否灵活、迅速,对整个程序的编写和执行 影响很大。8051有着极其丰富的数据传送指令,功 能很强。下面我们分别进行介绍。3.3.1 普通数据传送指令普通数据传送指令包含MOV、MOVC和MOVX三类助记符。直接

13、地址 direct累加器 A直接地址 direct间接地址 Ri寄存器 Rn立即数 #data寄存器 DPTR1. MOV 指令格式: MOV 目的操作数,源操作数(1)以累加器A为目的操作数的指令MOV A,Rn;(A)(Rn) MOV A,direct;(A)(direct) MOV A,Ri;(A)(Ri) MOV A,#data;(A) #data(2)以寄存器Rn为目的操作数的指令MOV Rn,A;(Rn) (A) MOV Rn,direct;(Rn) (direct) MOV Rn,#data;(Rn) #data(3)以直接地址为目的操作数的指令MOV direct ,A ;(d

14、irect) (A) MOV direct ,Rn ;(direct) (Rn) MOV direct , direct ;(direct) (direct) MOV direct ,Ri ;(direct) (Ri) MOV direct ,#data ;(direct) #data(4)以间接地址为目的操作数的指令MOV Ri,A ; (Ri) (A) MOV Ri,direct ; (Ri) (direct) MOV Ri,#data ; (Ri) #data(5)16位数据传送指令MOV DPTR,#data16 ; (DPTR) #data162. MOVX 指令MOVX指令用于访问

15、片外RAM。在8051指令系统中 ,访问片外RAM只能用寄存器间接寻址的方式:MOVX A,DPTR; (A) (DPTR)MOVX DPTR,A; (DPTR) (A)MOVX A,Ri; (A) (Ri)MOVX Ri, A; (Ri) (A)例1 现有一输入设备口地址为E000H,在这口中已有数 字量89H,要将此数值采集到累加器A中。 例2 把外部数据存储器2040H单元中的数取出,送到 2230H单元中去。 3. MOVC 指令MOVC指令又称查表指令,用于访问程序存储器( 仅能读),查找放在ROM中的数据表格常数。8051指令 系统有2条查表指令:MOVC A,A+PC ; (A)(A)+(PC)MOVC A,A+DPTR

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

当前位置:首页 > 中学教育 > 高中教育

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