[信息与通信]第2章MCS-51单片机指令系统及汇编语言程序设计基础

上传人:豆浆 文档编号:49592652 上传时间:2018-07-31 格式:PPT 页数:175 大小:645.50KB
返回 下载 相关 举报
[信息与通信]第2章MCS-51单片机指令系统及汇编语言程序设计基础_第1页
第1页 / 共175页
[信息与通信]第2章MCS-51单片机指令系统及汇编语言程序设计基础_第2页
第2页 / 共175页
[信息与通信]第2章MCS-51单片机指令系统及汇编语言程序设计基础_第3页
第3页 / 共175页
[信息与通信]第2章MCS-51单片机指令系统及汇编语言程序设计基础_第4页
第4页 / 共175页
[信息与通信]第2章MCS-51单片机指令系统及汇编语言程序设计基础_第5页
第5页 / 共175页
点击查看更多>>
资源描述

《[信息与通信]第2章MCS-51单片机指令系统及汇编语言程序设计基础》由会员分享,可在线阅读,更多相关《[信息与通信]第2章MCS-51单片机指令系统及汇编语言程序设计基础(175页珍藏版)》请在金锄头文库上搜索。

1、第2章 MCS-51单片机指令系统及 汇编语言程序设计基础2.1 MCS-51单片机指令格式2.2 MCS-51单片机寻址方式2.3 MCS-51单片机指令2.4 汇编语言程序设计基础2.1 MCS-51单片机指令格式2.1.1 指令格式 2.1.2 指令的字节数 2.1.3 指令分类2.1.1 指令格式不同类型的CPU有不同的指令系统,MCS-51指 令系统兼容性高,功能强。 指令:指示计算机执行某种操作命令 指令系统:一台计算机所能执行的全部指令的集合指令系统功能强弱很大程度上决定了计算机智 能的高低。 程序:按人的要求编排的指令操作序列 程序设计:编写程序的过程 程序设计语言:实现人机交

2、换信息(对话)最基本 工具,包括机器语言、汇编语言、高级语言等。机器语言:用一组二进制编码表示每条指令,是计算 机能直接识别和执行的语言。缺点:不易记忆,不易查错,不易修改。 汇编语言:用助记符、符号和数字等来表示指令的程 序语言。与机器语言指令一一对应,易于理解和记忆。优点:内存占用少,不用解释程序,适用实时控制,缺点:与计算机内部硬件结构密切相关,不如高级语 言通用性强。高级语言:经过编译或解释成机器能识别和执行的 机器语言指令。 对51单片机,现有4种语言支持:汇编、PL/M(结构化语言、高级汇编)、BASIC、C C:结构化语言,源于编写UNIX操作系统,可产生紧 凑代码,不依赖机器硬

3、件系统、易于移植。 指令格式:指令码的结构形式连接/定位器 L51汇编语言 源程序汇编器A51符号转换程序 OHS51绝对地址 目标程序.BINC语言程序浮 动 地 址 目 标 程 序编译器C51HEX两种语言源程序转换成目标程序四地址指令:最原始的计算机,操作数部分包括四部分地址 ,指令格式为:缺点:指令码冗长,严重影响指令执行速度。 单地址指令:MCS-51系统单片机的指令系统采用了地址压缩 技术,将操作数字段的四个地址压缩到一个地址中 ,其具体的指令格式为: 操作码 第一操作数地址 第二操作数地址结果操作数地址 下一条指令地址操作码 操作数或操作数地址单地址指令的特点:累加器A(E0H)

4、经常用来隐含寻 址,存放一个操作数和结果操作数,PC自动+1,存放 下一条指令地址。2.1.2 指令的字节数1)单字节指令(49条)指令中的8位二进制代码既包含操作码的信 息,也包含操作数的信息。 (1)指令码中隐含着对某一个寄存器的操作INC A 操作码:04H (A)+1 (A)NOP 操作码:00H 空操作 (2)指令码中后三位不同编码指定某一个寄存器MOV A,Rn 操作码:11101rrr (Rn)(A ) rrr 000-111 R0-R72)双字节指令(45条)一个字节表示操作码,另一个字节表示操作 数或操作数所在的地址。 (1)操作数字节是立即数(采用立即数寻址方式 )如:AD

5、D A,#22H; (A)+ 22H (A)操作码24H,操作数22H (2)操作数字节是片内RAM地址(采用直接寻址方 式) 如:ADD A,22H; (A)+(22H)(A)操作码25H,操作数22H 注:两个22H含义不 同 3)三字节指令(17条)一个字节表示操作码,一个字节表示目的操作 数,另一个字节表示源操作数。第二个和第三个字 节为操作数或操作数地址。如:MOV 5EH,#4FH操作码85H,目的操作数5EH,源操作数4FH 4)汇编语言指令格式一条汇编语言指令最多包含4个区段:标号: 操作码助记符 目的操作数,源操作数 ;注释如:START:MOV A,#0F0H ;(A)立即

6、数0F0H(1)标号标号位于语句的最前面,由1-8个字母和数字组 成,它代表该语句的地址。标号必须由字母打头, 以冒号结尾,不能使用指令助记符、伪指令或寄存 器名。 (2)操作码操作码是指令的助记符,不可以省略,它是语 句的核心部分。 (3)操作数必须满足寻址方式的规定。 (4)注释应养成良好的添加注释的习惯。MCS-51指令系统共有111条指令,用42种助记符 代表了33种操作功能,有的功能可以有几种助记符 (例如数据传送的助记符有MOV,MOVC,MOVX)。1)根据指令在程序存储器中所占的字节数,指令 系统分为:(1)单字节指令(49条)(2)双字节指令(45条)(3)三字节指令(17条

7、)2.1.3 指令分类2)根据指令执行的时间,指令系统分为: (1)1个机器周期(12个时钟振荡器周期)指令(64 条) (2)2个机器周期指令(45条)(24个时钟振荡器周 期) (3)乘、除两条指令为4个机器周期指令(48个时钟 振荡周期) 3)根据指令的功能,指令系统分为: (1)数据传送类(28条) (2)算术运算类(24条) (3)逻辑操作类(25条) (4)控制转移类(17条) (5)位操作类(17条)符 号说 明Rn表示当前工作寄存器区中的工作寄存器,n取0-7,表示R0-R7direct8位内部数据存储单元地址。它可以是一个内部数据RAM单元(0127)或特殊功 能寄存器地址或

8、地址符号Ri通过寄存器R1或R0间接寻址的8位内部数据RAM单元(0255),i=0,1#data指令中的8位立即数#data16指令中的16位立即数addR1616位目标地址。用于LCALL和LJMP指令,可指向64K字节程序存储器地址空间的任 何地方addR1111位目标地址。用于ACALL和AJMP指令,转至当前PC所在的同一个2K字节程序存 储器地址空间内rel补码形式的8位偏移量。用于相对转移和所有条件转移指令中。偏移量相对于当 前PC计算,在-128+127范围内取值DPTR数据指针,用作16位的地址寄存器A累加器MCS-51指令系统符号说明 B特殊功能寄存器,专用于乘(MUL)和

9、除(DIV)指令中 C进位标志或进位位bit内部数据RAM或部分特殊功能寄存器里的可寻址位的位地址表示对该位操作数取反(X)X中的内容(X)表示以X单元的内容为地址的存储器单元内容,即(X)作地址,该地址单元 的内容用(X)表示 间址寄存器的前缀标志 肩头左边的内容被箭头右边的内容所取代符号说 明续表2.2 MCS-51单片机寻址方式寻址方式:如何找到存放操作数的地址,把操作数提取 出来的方法。是计算机的重要性能指标,汇编语 言程序设计最基本的内容。2.2.1 立即寻址2.2.2 直接寻址2.2.3 寄存器寻址2.2.4 寄存器间接寻址2.2.5 变址寻址2.2.6 相对寻址2.2.7 位寻址

10、2.2.1 立即寻址指令中操作数是一个实际的8位或16位的常数(常数# ) 采用立即寻址方式的指令一般为双字节指令该常数是以指令中字节的形成放在ROM中例:MOV A,#3AH ;3AH(A) ;MOV A,#data8MOV DPTR,#2000H ;2000H(DPTR);MOV DPTR,#DATA16;指令中操作数是片内RAM单元的直接地址,该地 址指出了参与操作的数据所在的字节地址或位地 址。 (1)片内数据存储器的低128个字节单元(00H 7FH) 如:MOV A,40H;(A)(40H) (2)位地址空间 如:MOV C,00H;进位位位地址00H1bit内容 (3)特殊功能寄

11、存器(特殊功能寄存器只能用直接 寻址方式进行访问) 如:MOV A,P1;(A)(90H)2.2.2 直接寻址直接寻址(MOV A,40H)2.2.3 寄存器寻址指令指出寄存器组R0R7中某一个或其它 寄存器(A、B、DPTR等)的内容为操作数。寻址寄存器: R0-R7、A、B、DPTR例: MOV A,R7 ; (A)(R7)MOV P1,A ; (P1)(A)CLR A ; (A) #00HINC DPTR ;(DPTR)(DPTR)+1ADD A,20H ;(A)(A)+(20H)2.2.4 寄存器间接寻址()指令中指定某一个寄存器的内容作为操作数 的地址,由该地址所指定的单元内容作为操

12、作数 。 R0、R1为间接寻址寄存器,寻址片内RAM低128字 节 数据指针DPTR为间接寻址寄存器,寻址片外 RAM64KB 不能用间接寻址方式寻址特殊功能寄存器例: MOV A , R0 ; (R0)(A)MOVX A ,DPTR;(DPTR)(A)间接寻址(MOV A,R0)2.2.5 变址寻址用于访问程序存储器中的数据表格,它把基址 寄存器(DPTR或PC)和变址寄存器(中没有专 门的变址寄存器,地址偏移量A)的内容作为无符号 数相加形成16位的地址,访问程序存储器中的数据 表格。如:MOVC A,ADPTR;(A)(DPTR)(A )MOVC A,APC; (A)(PC)(A) )

13、变址寻址区是程序存储器ROM,而不是数据存储器 RAM,因此变址寻址只有读操作,而没有写操作。 变址寻址是单字节两周期指令,CPU执行这条指令前 应预先在DPTR和累加器A中为该指令的执行准备条件 。间接寻址(MOVC A,A+DPTR )2.2.6 相对寻址指令中,给出的地址偏移量rel与当前PC内容相 加,作为操作数的地址。 只出现在相对转移指令中 偏移量rel以补码(正负)表示(范围-128+127) 访问ROM PC为执行完相对转移指令后的PC值 转移后的目的地址:目的地址=源地址+rel+2(相对转移指令字节数 )实际应用中,经常根据已知的源地址和目的地址计 算偏移量rel,其值为-

14、128+127正向跳转:rel =目的地址-源地址-2反向跳转:rel =(目的地址-源地址-2)补如:SJMP 08H;(PC)(PC)+2+08H例:设rel=75H,CY=1,执行指令JC rel ;CY=1 转移相对寻址(JC 75H )2.2.7 位寻址指令中给出的是位地址,即片内RAM某一单元的一位。 51单片机片内RAM位寻址区 1)字节地址20H-2FH中,共128位,可直接使用位地址 2)特殊功能寄存器中字节地址能被8整除的11个,可用 寄存器名加位数表示,如:PSW.3 位寻址的位地址和直接寻址的字节地址形式完全一样 ,主要由操作码来区分。 如:MOV C,20H;将位地址

15、为20H的数据送给进位标志CMOV A,70H;(A)(70H)操作数寻址方式及其寻址空 间2.3 MCS-51单片机指令2.3.1 数据传送类指令 2.3.2 算术运算类指令 2.3.3 逻辑运算及移位指令 2.3.4 控制转移类指令 2.3.5 位操作类指令 2.3.6 伪指令2.3.1 数据传送类指令(28条)数据传送指令是把源操作数传送到指令所指 定的目标地址,指令执行后,源操作数不变,目 的操作数被源操作数所代替。主要是用于单片机片内RAM和特殊功能寄存器 SFR之间数据的传递,也可以用于单片机片内和片 外存储单元之间传送数据。 数据传送指令一般不影响标志位,只有堆栈 操作可以在栈中

16、修改程序状态字PSW,对目的操作 数为A的指令将影响奇偶标志P位。 指令用到的助记符有:MOV,MOVX,MOVC,XCH, XCHD,SWAP,PUSH,POP。源操作数可以采用寄存器寻址、寄存器间接寻 址、直接寻址、立即寻址和变址寻址5种寻址方式 ,目的操作数可以采用寄存器寻址、寄存器间接寻 址和直接寻址3种寻址方式。 1)内部数据传送指令(15条)这类指令的源操作数和目的操作数地址都在单片机内部,可以是片内RAM的地址,也可以是特殊 功能寄存器SFR的地址,其指令格式为:MOV ,(1)以累加器A为目的操作数的指令(条)MOV A, #data ;#data(A) MOV A, direct ;(direct)(A)M

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

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

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