[信息与通信]03MCS-51 系列单片机的指令系统

上传人:油条 文档编号:49593576 上传时间:2018-07-31 格式:PPT 页数:94 大小:1.38MB
返回 下载 相关 举报
[信息与通信]03MCS-51 系列单片机的指令系统_第1页
第1页 / 共94页
[信息与通信]03MCS-51 系列单片机的指令系统_第2页
第2页 / 共94页
[信息与通信]03MCS-51 系列单片机的指令系统_第3页
第3页 / 共94页
[信息与通信]03MCS-51 系列单片机的指令系统_第4页
第4页 / 共94页
[信息与通信]03MCS-51 系列单片机的指令系统_第5页
第5页 / 共94页
点击查看更多>>
资源描述

《[信息与通信]03MCS-51 系列单片机的指令系统》由会员分享,可在线阅读,更多相关《[信息与通信]03MCS-51 系列单片机的指令系统(94页珍藏版)》请在金锄头文库上搜索。

1、MCS-51 系列单片机的指令系统第三章3.1 指令系统概述 3.2 寻址方式 3.3 数据传送类指令 3.4 算术运算类指令 3.5 逻辑运算与移位类指令 3.6 控制转移类指令 3.7 位操作类指令 3.8 I/O口访问指令使用说明 3.9 MCS-51单片机指令小结教学内容v 3.1.1 MCS-51的指令集以MCS-51为内核的单片机指令系统为例,用44种操作码助记符来 描述33种操作功能,构成了111条基本指令。 单字节指令49条;按字节分 双字节指令45条;三字节指令17条;单周期指令64条; 111条基本指令 按指令执行时间分 双周期指令45条;4个机器周期指令2条;数据传送类指

2、令;算术运算类指令;按功能分 逻辑运算及移位类指令;控制转移类指令;布尔变量操作类指令。3.1 指令系统概述v3.1.2 指令格式及其符号说明v MCS-51单片机指令格式 )指令由操作码助记符和操作数两部组成。 )指令格式如下:标号:操作码助记符 目的操作数 ,源操作数;注 释符号“ ”其包含的内容因指令的不同可有可无。 )标号:根据编程需要给指令设定的符号地址,可有可无 ;通常在子程序入口或转移指令的目标地址处才赋予标 号。标号由18个字符组成,第一个字符必须是英文 字母,不能是数字或其他符号,标号后必须用冒号。3.1 指令系统概述)操作码助记符:指令的核心部分,用于指示机器执行何种 操作

3、,如加、减、乘、除、传送等。 )操作数:是指令操作的对象,可以是一个具体的数据,也 可以是参加运算的数据所在的地址。操作数一般有以下几种形 式:没有操作数,操作数隐含在操作码中,如RET指令;只有一个操作数,如INC A指令;有两个操作数,如MOV A,30H指令,操作数之间以逗号 相隔;有3个操作数,如CJNE A,#00H,10H指令。 )注释:对指令的解释说明,用以提高程序的可读性,注释 前必须加分号,注释换行时行前也要加分号。3.1 指令系统概述在MCS-5l指令系统中,单字节指令可分 为两类:无操作数的单字节指令和含有操作 数寄存器编号的单字节指令。 1) 无操作数单字节指令这类指令

4、只有操作码字段,操作数隐 含在操作码中。例如:INC DPTR v 指令的字节 v1. 单字节指令(49条)3.1 指令系统概述位D7D6D5D4D3D2D1D0十六进制码操作 码10100011A3H位D7D6D5D4D3D2D1D0十六进制码操作码+操作数11101rrrE8HEFH指令码为2) 含有操作数寄存器号的单字节指令 单字节的指令码由操作码字段和指示操作数所 在寄存器号的字段组成。例如:MOV A,Rn 指令码为 (r r r为寄存器Rn的编号) 3.1 指令系统概述v2. 双字节指令(46条)双字节指令的操作码字节在前,其后的操作数字 节可以是立即数,也可以是操作数所在的片内R

5、AM地址 。例如:MOV A,#23H 指令码为:位D7D6D5D4D3D2D1D0十六进制码操作码0111010074H 23H操作数(立即数)001000113.1 指令系统概述这条8位数传送指令的含义是:把指令 码第2字节立即数23H取出来存放到累加器(A)中 。该指令的操作码占1B,23H为源操作数,也 是1B,累加器(A)是目的操作数寄存器,隐含在 操作码字节中。3.1 指令系统概述v3. 三字节指令(16条)这类指令的指令码的第1字节为操作码;第2和第 3字节为操作数或操作数地址,有如下4类。 1) 16位数据例如:MOV DPTR,#26ABH 指令码为位D7D6D5D4D3D2

6、D1D0十六进制码 操作码1001000090H 26H ABH 操作数(立即数高)00100110操作数(立即数低)101010113.1 指令系统概述位D7D6D5D4D3D2D1D0十六进制码操作码0111010175H 74H FFH操作数(地址)01110100操作数(立即数)111111112) 8位地址和8位数据例如:MOV 74H,#0FFH 指令码为3.1 指令系统概述3) 8位数据和8位地址例如:CJNE A,#00,60H指令码为位D7D6D5D4D3D2D1D0十六进制码操作码10110100B4H 00H 60H操作数(立即数)00000000操作数(地址)01100

7、0003.1 指令系统概述4) 16位地址例如:LCALL 2020H 指令码为:程序设计中,应尽可能选用字节少的指令。 这样,指令所占存储单元少,执行速度也快。位D7D6D5D4D3D2D1D0十六进制码操作码0001001012H 20H 20H操作数(地址高)00100000操作数(地址低)001000003.1 指令系统概述MCS-51单片机的助记符语言为了便于人们识别、读/写、记忆和交 流用英文单词或缩写字母来表征指令功能, 这些指令的助记符形式称为汇编语言指令, 常用于汇编语言源程序的程序设计。MCS-51单片机制造厂家对每一条指 令都给出了助记符。不同的指令,具有不同 的功能和不

8、同的操作对象。如图表3-1 MCS -51助记符意义3.1 指令系统概述助记符意 义助记符意 义MOV送数MUL乘法MOVCROM送累加器(A)DIV除法MOVX外部送数DA十进制调整PUSH压入堆栈AJMP绝对转移POP堆栈弹出LJMP长转移XCH数据交换SJMP短转移XCHD交换低4位JMP相对转移ANL与运算JZ判累加器A为0转移ORL或运算JNZ判累加器A非0转移XRL异或运算JC判CY为0转移SETB置位JNC判CY非0转移CLR清0JB直接位为1转移CPL取反JNB直接位为0转移RL循环左移JBC直接位为1转移,并清该位RLC带进位循环左移CJNE比较不相等转移RR循环右移DJNZ

9、减1不为0转移RRC带进位循环右移ACALL绝对调用子程序SWAP高低半字节交换LCALL长调用子程序ADD加法RET子程序返回ADDC带进位加法RETI中断子程序返回SUBB带进位减法NOP空操作INC加1DEC减13.1 指令系统概述指令的书写必须遵守一定的规则,见表3-2指令描述约定。表3-2 指令描述约定符 号含 义Rn表示当前选定寄存器组的工作寄存器R0R7,n=07Ri表示作为间接寻址的地址指针R0R1,i=0,1#data表示8位立即数,即00HFFH#data16表示16位立即数,即0000HFFFFHAddr1616位地址,可表示用于64KB范围内寻址,用于LCALL和LJM

10、P指令中Addr1111位地址,可表示2KB范围内寻址,用于ACALL和AJMP指令中direct8位直接地址,可以是片内RAM区的某一单元或某一专用功能寄存器的地址rel带符号的8位地址偏移量(-128+127),用于SJMP和条件转移指令中bit位寻址区的直接寻址位,表示片内RAM中可寻址位和SFR中的可寻址位(X)X地址单元中的内容,或X作为间接寻址寄存器时所指单元的内容(X)由X寻址的单元的内容将箭头后面的内容传送到箭头前面去$当前指令所在地址DPTR数据指针/ 加在位地址之前,表示该位状态取反间接寻址寄存器或基址寄存器的前缀3.1 指令系统概述3.2.1 寄存器寻址Register

11、Addressing对选定的工作寄存器R0R7、累加器A、通用寄存器B、 地址寄存器DPTR中的数进行操作。 例:MOV A,R0;将R0工作寄存器中的数据送到累加器A 中去。提一个问题:我们知道,工作寄存器就是内存单元的一部分 ,如果我们选择工作寄存器组0,则R0就是RAM的00H单 元,那么这样一来,MOV A,00H 和MOV A,R0不就 没什么区别了吗?3.2 寻址方式的确,这两条指令执行的结果是完全相同的, 都是将00H单元中的内容送到A中去,但是执行的过 程不同,执行第一条指令需要2个机器周期,而第 二条则只需要1个机器周期,第一条指令变成最终 的目标码要两个字节(E5H 00H

12、),而第二条则只 要一个字节(E8H)就可以了。3.2 寻址方式3.2.2 直接寻址Direct Addressing直接使用数所在单元的地址找到了操作数,所以称 这种方法为直接寻址。操作数在SFR、内部RAM、位地址空间。如: MOV A,00HMOV C,60HMOV A,0F0H3.2 寻址方式3.2.3 寄存器间接寻址Register Indirect Addressing把地址放在另外一个寄存器中,根据这个寄存器 中的数值决定该到哪个单元中取数据。 R0,R1-8位地址,片内低128字节或片外 DPTR-16位,片外64KBv MCS-51如: MOV A,R0 MOVX A,R0

13、MOVX A,DPTR操作数在 片内RAM中操作数在 片外RAM中操作数在 片外RAM中3.2 寻址方式3.2.4 立即寻址Immediate Addressing操作数就包含在指令代码中,在操作码之后,称为 立即数,用“”表示。MCS-51如:MOV P1, #80HMOV R7, #0F5HMOV DPTR,#1245H操作数存在程 序存储器中3.2 寻址方式以DPTR或PC为基址寄存器,累加器A为变址寄存器。 把两者内容相加,结果作为操作数的地址。常用于查表操作。 v MCS-51MOVC A, A+DPTR ;(A+DPTR) A MOVC A, A+PC; PC+1 PC,(A+PC

14、)A3.2.5 变址寻址(基址+变址)Base-Register-plus-Index-Register-Indirect Addressingv 8086/8088CPUMOV AL,BX+SIMOV AX,BP+DI操作数在程 序存储器中3.2 寻址方式E0A程序存储区2040H 9320E0H 472041H DPH 20 DPL 00ALU如:MOVC A,A+DPTR 设DPTR=2000H,A=E0H20E0H47指令代码3.2 寻址方式E0A程序存储区ALU如:MOVC A,A+PC 设A=E0H2121H452040H 832121H 452041H 2120H 47当前PC指

15、令代码3.2 寻址方式对片内RAM的位寻址区和某些可位寻址的特殊功 能寄存器进行位操作时的寻址方式。如: SETB 3DH; 将27H.5位置1CLR C ;Cy位清08086/8088CPU 无此寻址方式3.2.6 位寻址 Bit Addressing操作数在片内 RAM位地址区或 SFR某些位中3.2 寻址方式3.2.7 相对寻址将PC中的当前内容与指令第二字节给出的数相加,结 果作为跳转指令的转移地址(转移目的地址)。 PC中的当前内容称为基地址(本指令后的字节地址)指令第二字节给出的数据称为偏移量,1字节带符号数 .常用于跳转指令。如: JC 23H若C=0,不跳转; C=1,跳转.Relative Addressing改变PC3.2 寻址方式程序存储区ALU如:JC 231025H1000H 401025H 451001H 23 1024H 471002H 3023H1002H指令代码当前PC3.2 寻址方式寻址方式涉及的存储器空间寻址方式寻址空间(操作数存放空间)立即寻址程序存储器直接寻址片内RAM低128字节、SFR寄存器寻址工作寄存器R0R7,A,B,DPTR寄存器

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

最新文档


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

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