第3章_MCS-51单片机指令系统

合集下载

专题四 MCS-51指令系统-第三章 单片机的指令系统

专题四 MCS-51指令系统-第三章 单片机的指令系统

8、指令字节数和机器周期数
第三章 单片机的指令系统
是必须掌握的内容。 Ø 一台计算机所有指令的集合, 称为该计算机的指令系统。 Ø 各种计算机都有专用的指令系统。
Ø 本章主要介绍单片机的寻址方式及指令系统,
学时分配:2学时 1—53+97+98+99 2学时 54—96 100
第三章 单片机的指令系统 • 3.1 MCS-51 指令系统概述

按指令字长分类
按指令执行时间分类
3.2 寻址方式
• 寻址方式:7种
– – – – – – – – – 寄存器寻址 直接寻址 寄存器间接寻址 立即寻址 变址间接寻址 相对寻址 位寻址 寻址方式与寻址空间 MCS-51单片机的两个突出特点
寄存器寻址——操作数存放在寄存器中
寄存器为 MOV A,R0 MOV R0,#01001111B R0~R7,A,DPTR,C SETB RS0 MOV R3,#56H
目的寻址为直接寻址
2) 20H ~2FH 可位寻址区的寻址方式
字节寻址方式: 直接寻址 direct
寄存器间接寻址@R0,@R1
位寻址: bit 直接寻址
例: MOV 26H,C ; 位寻址 (26H)1位
MOV 26H,A ;字节寻址(26H)8位
3) 30H ~7FH 数据缓冲区的寻址方式
字节寻址方式: 直接寻址 direct
MOV A,#23H
PUSH ACC
;
A寄存器寻址
POP
0E0H
;直接寻址
4、可做片内RAM的指针有:
R0,R1, 四个组共有8个 预先设置RS1、RS0,以选定组。 SETB RS0 CLR RS1; 1组

第三章 MCS-51单片机的寻址方式和指令系统

第三章 MCS-51单片机的寻址方式和指令系统

由此可把数据传送指令分成三部分
(一)内部数据传送(通用传送指令)
1.以A为目的操作数
MOV A,Rn MOV A,@Ri ;A← (Rn) ;A←((Ri))
双字节
11101rrr 1110011i
MOV A,direct ;A←(direct) 11100101 direct
MOV A,#data ;A←#data 例: MOV A,@R1 若(R1)=20H,(20H)=62H 结果:(A)=62H 11100100 data
指令MOVC A,@A+DPTR;执 行示意图
结果:(ACC)=64H
六、相对寻址

以当前PC的内容为基准,加上指令给出的 偏移量(rel)形成新的PC值(转移地址) 的寻址方式。
转移地址=目的地址 =当前(PC)+rel
目的地址=PC当前值十rel 目的地址=转移指令的PC值+2(或3)十rel 目的地址=转移指令地址+转移指令字节数+rel
单周期:64 双周期:45 四周期:2
若fosc=12MHz, 大多指令执行 仅1μs
按照指令的功能分5大类
一、数据传送类指令(29条) 二、算术运算类指令(24条) 三、逻辑操作类指令(24条) 四、控制转移类指令(17条) 五、位操作类指令 (17条)
在描述指令系统的功能时,常用符号介绍:
@——间址符号,如@Ri,@DPTR 13. / ——位操作数的前缀,表示对该位操作 数取反,如/bit。 14. (×)——由×寻址的单元中的内容。 15. ((X))——由X的内容作为地址的存 储单元的内容。 16. ← ——箭头右边的内容取代箭头左边的 内容。
12.
一、数据传送类指令(29条)

单片机原理与接口技术第3章

单片机原理与接口技术第3章

注意:
①目操可以是A、direct、Rn、@Ri中的任一个,源 操可以是A、direct、Rn、@Ri、#data中的任一 个。 ②#data不能作目操。 ③目操和源操不能同时出现Rn、@Ri。 ④目操和源操不能同时为A。 ⑤目操和源操可以同时为direct类型。 ⑥目操和源操数据长度应保持一致。
• 例如指令: MOVC A, @A+PC ; (A)←((A)+(PC)) MOVC A,@A+DPTR ; (A)←((A)+(DPTR)) 这两个指令中,第2操作数采用了基址寄 存器加变址寄存器的间接寻址方式,其功 能是指定以A作为变址寄存器,PC(或 DPTR)作为基址寄存器,两者内容相加所 得结果作为参与操作的数据的存储单元地 址,把此单位中的内容送到累加器A中 。
(2)以Rn为目的地址的指令 指令 操作 MOV Rn, A (Rn)←(A) MOV Rn, direct (Rn)←(direct) MOV Rn, #data (Rn)←data 这组指令的功能是将源操作数送入当前 工作寄存器区R0~R7中的某一寄存器中。 源操作数的寻址方式分别为隐含寻址、直 接寻址和立即寻址方式。
(4)注释:该字段不是汇编语言的功能部分
,只增加程序的可读性。注释前要加“;”
MCS-51单片机指令系统具有111条指令
49条单字节指令
按指令代码的 字节数分
45条双字节指令 17条三字节指令
64条单机器周期指令 按指令的执 行时间分 45条双周期指令 2条(乘,除指令)四 机器周期指令 指令系统优点:存储效率高 执行速度快
3. 乘法指令 MUL
指令 MUL AB 这条指令是把累加器A和寄存器B中的8位无符 号二进制数相乘,16位乘积的低8位留在累加器A 中,高8位存放在寄存器B中。 如果乘积大于0FFH,则OV=1,否则OV=0。 CY标志总是被清0。 设(A)=50H,(B)=0A0H,执行指令:MUL AB 结果:(B)=32H,(A)=00H(即积为3200H),OV= 1,CY=0。

第三章MCS51系列单片机指令系统及汇编语言程序设计

第三章MCS51系列单片机指令系统及汇编语言程序设计
AJMP addr11 绝对转移指令为2K地址范围内的转移指令,对转移目的地址的要求与 ACALL指令中对子程序入口地址的要求相同。 【3】短转移指令
SJMP rel ;PC+ 2 + rel→PC 短转移指令为一页地址范围内的相对转移指令。因为rel为1字节补码 偏移量,且SJMP rel指令为2字节指令,所以转移范围为-126D~+ 129D 【4】间接转移指令
表3.4 程序存储器空间中的32个基本2K地址范围
0000H~07FFH 0800H~0FFFH 1000H~17FFH 1800H~1FFFH 2000H~27FFH 2800H~2FFFH 3000H~37FFH 3800H~3FFFH 4000H~47FFH 4800H~4FFFH 5000H~57FFH
3. 寄存器寻址
以通用寄存器的内容为操作数的寻址方式。通用寄存 器包括:A,B,DPTR,R0~R7。其中,R0~R7必须在 工作寄存器组之中。
例如:INC R0 ;(R0)+1→R0
需要注意的是,A和B既是通用寄存器,又是具有直 接地址的特殊功能寄存器。
4. 寄存器间接寻址
以寄存器中的内容为地址,该地址中的内容为操作数的寻址方式。能够 用于寄存器间接寻址的寄存器有:R0,R1,DPTR,SP。其中,R0,R1必 须在工作寄存器组之中,SP仅用于堆栈操作。
MCS-51单片机共有111条指令,按功能分类, MCS-51指令系统可分为5大类:
➢ 数据传送类指令(共29条) ➢ 算术操作类指令(共24条) ➢ 逻辑操作类指令(共24条) ➢ 控制转移类指令(共17条) ➢ 布尔变量操作类指令(共17条)
1.数据传送类指令(共29条)
以累加器A为目的操作数类指令(4条)

第3章 51单片机指令系统

第3章 51单片机指令系统
MOV MOV MOV MOV MOV MOV MOV R0, #30H ;R0←30H ,立即寻址 A, @R0 ;A←(R0) ,寄存器间接寻址 R1, A ;R1←A ,寄存器寻址 B, @R1 ;B←R1 ,寄存器间接寻址 @R1, P1 ;(R1)←P1 ,直接寻址 P2, P1 ;P2←P1 ,直接寻址 10H, #20H ;(10H)←20H ,立即寻址
3.1.3 堆栈操作指令
(1)入栈指令:
PUSH direct; SP ← SP+1, (SP) ← (direct)
入栈操作:栈指针SP+1指向栈顶的上 一个空单元,将直接地址direct寻址的单元 内容压入当前SP所指示的堆栈单元中。 (本操作不影响标志位)
例3-3 在中断响应时,SP=09H,数据 指针DPTR的内容为0123H。执行下列指令 后:
MOV @Ri , A ; (Ri)←A MOV @Ri , direct ; (Ri)←(direct) MOV @Ri , data ; (Ri)←#data 上述指令将累加器A,直接地址单元内 容或立即数送到Ri间接寻址单元中。由于内 容较多,下面需要说明:
累加器A是个使用最多的寄存器,MCS-51单 片机以A为中心体系结构。绝大部分指令均需通 过A送到ALU进行运算,结果存于A中,有些指令 仅在A中进行。 直接地址direct ,8位直接地址可寻址0~255个 单元。对于8051则直接寻址内部RAM0~127地址 空间的单元及128~255地址空间的特殊功能寄存 器。这里需注意128~255地址空间很多单元开始 时无定义,对无定义单元进行读/写,则读数不定, 欲写入的数将丢失。 间接寻址@Ri,@间接寻址的符号,是以Ri 的内容作为地址进行寻址,亦即Ri的内容不是操 作数,而是地址。此地址所对应的单元内容才是 所要找的操作数。间接寻址的寻址范围与直接寻 址相同(0~255)。直接寻址单元在编程时就已 明确,而间接寻址单元是在程序运行中明确。

第3章 MCS-51指令系

第3章  MCS-51指令系
bit——内部数据RAM或部分特殊功能寄存器里的可寻址 位的位地址。 • ——表示对该位操作数取反。 • rel——补码形式的8位偏移量。用于相对转移和所有条件 转移指令中。偏移量相对于当前PC计算,在-128~+127 范围内取值。
单片机技术及应用
3.3.2 数据传送类指令 • 数据传送类指令一般的操作是把源操作数传送到
单片机技术及应用
3.2.5 变址寻址
• 这种寻址方式用于访问程序存储器中的数据表格, 它把基址寄存器(DPTR或PC)和变址寄存器A的内 容作为无符号数相加形成16位的地址,访问程序
存储器中的数据表格。操作时是以某个寄存器的
内容为基础,然后在这个基础上再加上地址偏移
量,形成真正的操作数地址。需要特别指出的是, 用来作为基础的寄存器可以是PC或是DPTR,地 址偏移量存储在累加器A中。例如:
要操作数,因此在使用操作数的过程中就存在一个寻找存储 单元的问题。 MCS-51指令系统的寻址方式有下列几种: • ① 直接寻址。 • ② 立即数寻址。 • ③ 寄存器寻址。 • ④ 寄存器间接寻址。 • ⑤ 变址寻址。 • ⑥ 位寻址。 • ⑦ 相对寻址。
单片机技术及应用
3.2.1 直接寻址 • 在指令中含有操作数的直接地址,该地址指出了参与操作
单片机技术及应用
单片机技术及应用
第3章 MCS-51指令系
单片机技术及应用
教学提示 • 本章重、难点在于理解单片机MCS-51指令系统
的寻址方式,以及数据传送类指令、算术运算类 指令、逻辑操作类指令、位操作指令和控制转移 类指令操作的含义和具体使用方法。 教学目标 • 掌握指令系统的寻址方式。 • 掌握汇编语言指令的格式。 • 掌握汇编语言指令的功能及应用。 • 掌握伪指令的格式及应用。

单片机原理及接口技术(第3章)

单片机原理及接口技术(第3章)

第3章 MCS-51单片机的指令系统
① 操作码部分:以助记符表示,助记符用英语单词的缩写, 表明该指令的功能,如MOV表明该指令是一条数据传送指 令,ADD表明该指令是一条加法指令。
② 书写格式:操作码和操作数要用空格分开,如果指令中有 多项操作数,操作数之间要用“,”分开。方括号[ ]表 示该项是可选项, 可有可无。
单片机原理与接口技术 第3章
第3章 MCS-51单片机的指令系统
3.1 指令格式和寻址方式 3.1.1指令格式 1.指令格式
每条指令由操作码和操作数两部分组成。 操作码表示计算机将进行何种操作。 操作数表示参加操作的数或操作数所在的地址。 有无操作数、单操作数、双操作数三种情况。 汇编语言指令格式为: [标号:] 操作码助记符 [目的操作数] [,源操作数] [;注释]
(5)16位数据传送指令 MOV DPTR,#data16 ;将一个16位数送入DPTR中。 功能:把16位常数送入DPTR中。
高位立即数送入DPH,低位立即数送入DPL中。 (6)堆栈操作指令 PUSH direct ;将直接地址中的数压入栈顶;
SP←(SP)+1;(SP)←(direct)。 POP direct ;将栈顶中的数据弹出到直接地址;
例如:
MOV A,R6 ; A←(R6),将寄存器R6中的内容送到累加器A。
MOV A,30H ; A←(30),将内部RAM30H单元的内容送到累加器A。
MOV A,@R0 ; A←((R0)),将内部RAM中R0的内容为地址的单
元的内容送到累加器A。
MOV A,#40H
; A←40H,将立即数40H送给累加器A。
功能:将累加器A的低4位和R0或R1间址的存储单元的低4位

第3章 MCS-51单片机指令系统

第3章 MCS-51单片机指令系统

(1)内部数据存储器的低128个字节单元 (00H~7FH)。例: MOV A, 40H ,表示把内 部RAM 40H单元的内容传送给A。 假设40H单元中的内容为2BH,结果是将直接地 址40H单元中的数据2BH传送到累加器A中。
第三章 MCS-51单片机指令系统
3.2.2 直接寻址
(2)特殊功能寄存器。 特殊功能寄存器只能用直接寻址方式进行访问。 对于特殊功能寄存器,在助记符指令中可以直接 用符号来代替地址。例: MOV A, P0 ,表示把 P0口(地址为80H)的内容传送给A。
3.3.1 内部数据存储器传送指令
1.立即数传送指令
MOV A,#data ;A←data MOV Rn,#data ;Rn←data,n=0~7 MOV direct,#data ;direct←data MOV @Ri,#data ;(Ri)←data,i=0,1 MOV DPTR,#data16 ;DPTR←data16 前四条指令将8位立即数传送到指定的存储单元中。 最后一条指令将16位立即数传送到数据指针 DPTR中,其中高8位送入DPH,低8位送入DPL。
(3)三字节指令 编码格式为:
例如数据传送指令MOV 20H,#3AH的编码格式为:
3.2 寻址方式
第三章 MCS-51单片机指令系统
所谓寻址,就是寻找操作数的真正地址,寻址方 式,就是指寻找操作数地址的方式。
在用汇编语言编程时,数据的存放、传送、运算 都要通过指令来完成。 编程者必须自始至终都要 十分清楚操作数的位置, 以及如何将它们传送到适 当的寄存器去参与运算。每一种计算机都具有多 种寻址方式。寻址方式的多少是反映指令系统优 劣的主要指标之一。
2. 汇编语言
汇编语言就是用助记符表示的指令,汇编语言与 机器语言一一对应。用汇编语言编写程序,每条 指令的意义一目了然,给程序的编写、阅读和修 改带来很大方便。而且用汇编语言编写的程序占 用内存少,执行速度快,尤其适用于实时应用场 合的程序设计。因此,在单片机应用系统中主要 是用汇编语言来编写程序。 汇编语言的缺点:缺乏通用性,程序不易移植, 是一种面向机器的低级语言。使用汇编语言编写 程序时,必须熟悉机器的指令系统、寻址方式、 寄存器的设置和使用方法。每种计算机系统都有 它自己的汇编语言。不同计算机的汇编语言之间 不能通用。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
22:03
返回目录
30
3.1.4 寻址方式
----总结
3)对8032/8052等单片机内部RAM的高128个字
节(80H~FFH),只能采用寄存器间接寻址,不能
使用直接寻址方式;
4)对位操作指令只能对位寻址区操作;
5)外部扩展的数据存储器只能用MOVX指令访
问;
6)内部RAM的低128个字节(00H~7FH)既能


bit:表示内部RAM和SFR中的具有位寻址功能
的位地址。
返回目录
22:03
14
3.1.3 指令中的常用符号

@:表示间接寻址寄存器或基址寄存器的前缀
符号。

$: 表示当前指令的地址。
/:位操作数的前缀,表示对该位操作数取反,
如:/bit。 (x):表示存储单元x的内容。 ((x)):表示以寄存器或存储单元x的内容作为 地址的存储单元的内容。 →:表示数据传送方向。

direct:表示内部数据存贮器单元的地址及特殊功能寄存 器SFR的地址,对SFR而言,既可使用它的物理地址,
也可直接使用它的名字。
返回目录
22:03
13
3.1.3 指令中的常用符号

#data:表示8位立即数,即8位常数,取值范围
为#00H~#0FFH。

data16:表示16位立即数,即16位常数,取值范 围为#0000H~#0FFFFH。 addr16:表示16位地址。 addr11:表示11位地址。 rel:用补码形式表示的地址偏移量,取值范围 为-128~+127。
22:03
返回目录
12
3.1.3 指令中的常用符号
为了便于阅读指令,MCS-51指令助记符中的一些常用符号约定如下。


Rn:表示当前工作寄存器R0~R7中的一个。
@Ri:表示寄存器间接寻址,常作间接寻址的地址指针。
其中Ri代表R0和R1寄存器中的一个。

@DPTR:表示以DPTR为数据指针的间接寻址,用于对 外部64RAM/ROM寻址。
返回目录
16
3.1.4 寻址方式
1.立即寻址
-----立即寻址
立即寻址是将操作数直接写在指令中,作为 指令的一部分存放在代码段里,位置在程序存储 器中。立即寻址中的操作数,称为立即数。 例如:MOV A, #30H ;30H→A
22:03
返回目录
17
3.1.4 寻址方式
-----直接寻址
2.直接寻址 直接寻址是将操作数的地址直接存放在指令中。 这种寻址方式的操作数指的是内部数据存储器中存 放数据的地址,或存放数据的一个特殊功能寄存器 地址。
返回目录
22:03
8
3.1.1 指令系统的分类
2.按指令执行时间分类 1) 单周期指令(65条) 2) 双周期指令(44条)
-------按指令执行时间可分类
3) 四周期指令(2条)
22:03
返回目录
9
3.1.1 指令系统的分类
3.按指令功能分类 1) 数据传送类指令(29条) 2) 算术运算类指令(24条) 3) 逻辑运算类指令(24条) 4) 控制转移类指令(17条) 5) 位操作类指令(17条)
22:03
返回目录
3
3.1 指令系统简介
------指令系统
指令系统
计算机所有指令的集合,称为该计算
机的指令系统,它是表征计算机性能的重
要标志。每种计算机都有它自己特有的指
令系统。指令是指计算机执行某种操作 (如传送数据、做算术运算等)的命令。
22:03
返回目录
4
3.1 指令系统简介
------指令的两种格式
要让计算机工作,就得向计算机发出指令。

指令的格式是机器码指令格式,
如:11100101B ,即数字格式。 另一种指令格式,即汇编指令格式, 如:MOV P1, #5BH

22:03
返回目录
5
3.1 指令系统简介
[标号段:]
-----MCS-51汇编语言指令格式
操作码段 [操作数段]
[;注释段]
[操作数1 [,操作数2]…] MCS-51单片机能够识别并执行的指令共有 111条。这111条指令,构成了MCS-51单片机的 指令系统。
22:03
24
3.1.4 寻址方式
5.基址变址寻址
----基址变址寻址
基址变址寻址是指操作数存放在以变址寄存器和基 址寄存器的内容相加形成的数为地址的单元中。其中累 加器A作变址寄存器、程序计数器PC或寄存器DPTR作基 址寄存器。基址加变址寻址方式常用于查表操作。如:
MOVC A, @A+PC
;PC+1→PC,((A+PC))→A
例如:MOV A, 20H
22:03
返回目录
27
3.1.4 寻址方式
1) 直接使用位地址
----位寻址的表示形式
包括位寻址区的位地址00H~7FH和部分特殊功能寄 存器的位 地址 。例 如,PSW寄存器第 2位的位地址为 D2H。 2) 位名称表示法
专用寄存器中的一些寻址位是有符号名的,对其进行 位寻址时可用其符号名,例如,PSW寄存器的第2位可 用OV表示。 3) 单元地址加位表示法 例如,2F单元的第1位,可表示为2FH.1。 再如,D0H单元(PSW)的第2位,可表示为D0H.2。
MOVC A, @A+DPTR ;((A+DPTR))→A
22:03
返回目录
25
3.1.4 寻址方式 6.相对寻址
----相对寻址
相对寻址是将程序计数器PC的当前值与指令第二 字节给出的偏移量相加,从而形成转移的目标地址。
例如:JC 80H
;C=1则跳转
22:03
返回目录
26
3.1.4 寻址方式 7.位寻址
MOV C, 0D0H.2 ;使用单元地址加位表示法寻址
MOV C, PSW.2 ;使用专用寄存器名称加位表示法寻址
22:03
返回目录
29
3.1.4 寻址方式
----总结
在MCS-51单片机的指令系统中,指令对哪一个 存储器空间进行操作,是由指令的操作码和寻址方 式确定的。 1)对程序存储器只能采用立即寻址和基址加变 址寻址方式; 2)对特殊功能寄存器只能采用直接寻址方式, 不能采用寄存器间接寻址;
------位寻址
位寻址是指对片内RAM中20H~2FH中的128 个位地址,以及SFR中的11个可进行位寻址的寄 存器中的位地址寻址(可位寻址的特殊功能寄存 器有B、ACC、PSW、IP、IE、SCON、TCON、 P0~P3)。例如:MOV C, 20H
此指令是将RAM中位寻址区20H位地址中的 内容,送给位累加器Cy。位寻址指令不同于字节 地址寻址指令,
22:03
返回目录
6
3.1 指令系统简介
-----特点
1) 指令执行时间短。只需1个机器周期的指令有64 条,2个机器周期的指令有45条,而4个机器周 期的指令仅有2条(既乘法和除法指令)。 2) 指令字节少。单字节指令有49条,双字节指令
有46条,三字节指令有16条。
3) 位操作指令极为丰富,这体现了MCS-51单片机
具有面向控制的特点。
22:03
返回目录
7
3.1.1 指令系统的分类
-----按指令所占存储空间分类
MCS-51单片机能够识别并执行的指令共有111条。 按指令所占字节数、指令执行时间和指令功能进
行分类。
1.按指令所占字节数分类
1) 单字节指令(49条)
2) 双字节指令(46条)
3) 三字节指令(16条)
例如:MOV A, 30H
;(30H)→A
22:03
返回目录
18
3.1.4 寻址方式
直接寻址方式可访问的范围 1) 特殊功能寄存器。
-----访问范围
这部分存储单元既可以用单元地址给出,也可 以用寄存器符号的形式给出。如:MOV A, 90H 或 MOV A, P1为同一条指令的两种写法(特殊功能寄 存器只能用直接寻址方式访问)。

掌握MCS-51指令系统的各种指令对寄存器资源的 占用情况。
22:03
返回目录
2
本章目录
第3章 MCS-51单片机指令系统
3.1 指令系统简介
3.1.1 指令系统的分类 3.1.2 指令格式 3.1.3 指令中的常用符号 3.1.4 寻址方式
3.2 指令系统
3.2.1 数据传送指令
3.2.2 算术运算指令 3.2.3 逻辑运算指令 3.2.4 控制转移指令 3.2.5 位操作指令 习题A, R5
22:03
返回目录
21
3.1.4 寻址方式
寄存器寻址方式的寻址范围:
----寄存器寻址
(1) 4个工作寄存器组共32个通用寄存器(在指令中
只能使用当前寄存器组) (2) 部分特殊功能寄存器。如A,B,DPTR。
22:03
返回目录
22
3.1.4 寻址方式
以及SFR中的11个可进行位寻址的寄存器中的位
地址(可位寻址的特殊功能寄存器有B、ACC、
PSW、IP、IE、SCON、TCON、P0~P3)。 4) 在一些程序控制指令中,可采用直接寻址方式提 供程序转移的目标地址。
22:03
返回目录
20
3.1.4 寻址方式
3.寄存器寻址
----寄存器寻址
寄存器寻址是指操作数存放在寄存器中,并
22:03
返回目录
28
3.1.4 寻址方式
4) 专用寄存器名称加位表示法
----位寻址的表示形式
相关文档
最新文档