03.1 第三章 - 单片机指令系统(概述、格式、符号、机器指令、伪指令)

合集下载

第3章 单片机指令系统

第3章 单片机指令系统
第3章
单片机指令系统
3.1 指令格式和寻址方式 3.2 指令分类介绍
3.1 指令格式和寻址方式
3.1.1 相关概念
3.1.2 指令格式
3.1.3 寻址方式
3.1.1 相关概念
指令:CPU根据人们的意图来执行某种操作的命令。 指令系统:是计算机所能够执行的全部指令的集合。 程序:是按人们的要求所编制的指令操作序列。
P2驱动器
P0锁存器
P2锁存器
4KB Flash ROM
程序地址 寄存器 B寄存器
暂存器1
暂存器2
ACC
SP
缓冲器
ALU PSEN ALE EA RET 定 时 控 制 指 令 译 码 器 OSC XTAL1 XTAL2 指 令 寄 存 器 中断、串行口和定时器 PSW
PC增1
PC DPTR P1锁存器 P1驱动器 P1.0-P1.7 P3锁存器 P3驱动器 P3.0-P3.7
程序存储器 内部RAM XX
PC
1111001 1 操作码 68H
R1
68H
A
XX
4.寄存器间接寻址方式:
指令的操作数为寄存器名,寄存器中为数据地址。 存放地址的寄存器称为间址寄存器或数据指针。
例:
MOV A,@R0
;A((R0))
设指令执行前 A=20H,R0=40H,地址为40H 存储器单元内容如图所示。执行指令后, A= 34H ? ,R0 = 40H ? , (40H)= 34H ?PCLeabharlann XXAXX
2. 直接寻址方式:
指令操作数是存储器单元地址,数据放在存储器单元中。 如: MOV A, 70H; A←(70H) 该指令是将RAM中地址为70H的内容送累加器A。

单片机原理及应用-第3章指令系统

单片机原理及应用-第3章指令系统

寻址方式——共七种寻址方式:
立即数寻址 变址寻址 寄存器寻址
寄存器寻址就是以通用寄存器为操作对象,在指令的助记符中直接以 寄存器的名字来表示。寄存器寻址对所选的工作寄存器区中R0~R7进行操 作,累加器A、数据指针DPTR等也可以用寄存器寻址方式访问。例如: MOV A ,R0 MUL AB INC DPTR ;R0内容放入A中 ;A与B的内容相乘 ;DPTR内容加1
7、数据地址赋值伪指令 DATA 格式:字符名称 DATA 表达式
将表达式指定的数据地址赋予规定的字符名称。该指令与EQU 指令相似,只是可先使用后定义,放于程序开头、结尾均可。例如:
P0 P1
DATA DATA
80H 90H
(8位端口P1定义)
8、位地址赋值伪指令 格式:字符名称
BIT BIT 位地址
将位地址赋予规定的字符名称。例如:
SCLK P10
BIT BIT
97H (P1端口第7位的定义,相当于 SCLK EQU 97H ) 90H (P1端口第0位的定义)
3.3 寻址方式
寻址方式通俗一点说就是寻找“东西”的方式,这里的“东西”就是操作数。如 何找“东西”就是寻址方式。首先还是让我们回到日常生活中看一看。
[标号:] 操作码助记符 [操作数1] [,操作数2] [,操作数3] [;注释]
标号:是语句的符号地址。编译时将语句的符号地址还原成 该指令所在的实际地址。标号第一个字符必须以字母开头(即A、 B、C…、Z或a、b、c…z),其余的可以是其他符号或数字。标 号与操作码助记符之间用冒号“:”分开。 操作码助记符:操作码助记符是用来表示指令完成的操作; 为了便于记忆,通常用所执行操作相应的英文缩写表示,如: 加法用ADD、减法用SUBB、传送用MOV等。 操作数1:通常是执行操作的目的单元,如寄存器、标号等。 操作数2:通常是执行操作目的单元的来源,有时也称源操作 数,可以是寄存器、常量、标号等。 操作数3:通常是执行操作的目的地址或相对偏移量,在汇编 程序中经常用标号来表示。 注释:主要是帮助阅读、理解和使用源程序;以“;”开始 ,其后为注释部分。 操作码助记符与操作数1之间用空格分隔,操作数与操作数之 间用“ , ”分隔。

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

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

指令按字节长度可以分为三种: 单字节指令: 操作码
7 7 0
例如: MOV A,R0
0
7
0
双字节指令: 操作码
7 0
数据或寻址方式
例如:MOV A,30H
7 0 7 0
三字节指令: 操作码
数据或寻址方式
数据或寻址方式
例如:MOV DPTR,#2010H
7
指令的字节数与指令的运行时间
字节 指 令 数 1 MOV A,R0 周期 数 1 指令说明
12
3.2 MCS-51单片机的寻址方式
寻址方式:令按地址获得操作数的方式 七种寻址方式,一条指令可能含多种寻址方式
立即数寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址(基址寄存器+变址寄存器间接寻址) 位寻址 相对寻址
13
下面以找信的方式来说明 寻址的概念

我的信在他那 !找信去!
ADD A , #10H
; ADD为操作码,
A及#10H为操作数
5
在51单片机的指令系统中,因指令操作码和操作数 的不同,指令(在存储器中)长度也各不相同。 分为单字节、双字节和三字节。 只要理解了指令占用这些字节是用来存放哪些量 的,就自然会判断不同的指令是多少字节指令了。 1、操作码占用一个字节; 2、8位立即数占用一个字节,16位立即数占用 两个字节; 3、8位操作数地址占用一个字节,16位操作数 地址占用两个字节; 4、CPU内部的各种寄存器不占用指令字节,如A 、B、R0、R1、R2、R3、R4、R5、R6、R7、DPTR等。
第3章 汇编指令系统
本章重点:
寻址方式;
MCS-51指令集。
1
3.1 MCS-51单片机指令系统概述

单片机的指令系统课件

单片机的指令系统课件

地址寄存器DPTR等。例如,指令MOV R1,A的操作是
累加器A中,所以寻址方式为寄存器寻址。
18
4) 寄存器间接寻址
立即数寻址 直接寻址 寄存器寻址
目的地
注意:
1)间接寻址的标志2@号
2)R0,R1,DPTR
寄存器间接寻址 变址寻址 相对寻址
内部RAM
(X) X地址单元中的内容,或X作为间接寻址寄存器时所指单元的内容
((X)) 以寄存器或X地址单元中的内容作为地址所指单元的内容

将 ← 后面的内容传送到前面去
13
3.2 寻址方式
找到参与运算的数据或数据所在的地址 的方式,称为寻址方式。
寻址方式主要是指源操作数的寻址。
14
1) 立即数寻址
目的地
一台微机能执行什么样的操作,是在微机设计时确定的。 一条指令对应着一种基本操作。由于计算机只能识别二进制 数,所以指令也必须用二进制形式来表示,称为指令的机器 码或机器指令。
MCS-51单片机指令系统共有33种功能,42种助记符,
111条指令。
2
3) 指令表示
1、二进制的表示形式:(以“累加器的内容+08H”为例) 00100100B 操作码 OP (加法) 00001000B 操作数DATA(08H)
三字节指令在存储器中存放的方式示意图
11
5) 指指令令长长度度与与执执行行时时间间
• 指令的字节多是否意味着指令周期就长?
指令
字节数 周期数
MOV A,R0
1
1
MOV A,#0FFH 2
1
MOV 20H,#30H 3
2
MUL AB
1
4
INC DPTR

第3章单片机指令系统

第3章单片机指令系统

寄存器寻址 寻址方式 寄存器间接寻址
基址加变址寄存器间接寻址 相对寻址 位寻址
1.立即寻址

操作数直接由指令给出,通常紧跟指令操作码之 后的字节是操作数,该操作数被称为立即数。

立即寻址所对应的寻址空间为:ROM 立即数:8/16位二进制数
如:MOV MOV A,#7AH DPTR, #1234H
注意:
① 适当选择SFR。寻址SFR时,可以用直接地址,也可以 用寄存器名,但后者更容易理解和阅读 如: MOV A,0D0H ; (A)←(D0H) MOV A,PSW ; (A)←(PSW)
② 适当选择累加器的表达式
累加器A表达方式 A → 寄存器寻址 ACC 直接寻址 E0H ;04H 单字节
如:
INC A INC ACC INC 0E0H
;05E0H 双字节
③ 注意地址的区别(位地址与字节地址)
如: MOV A,30H MOV C,30H ; (A)←(30H) ;(C)←(30H) 字节操作 位操作
3. 寄存器寻址

操作数在寄存器中
可用寄存器有: (1)四组工作寄存器R0~R7共32个工作寄存器 (2)SFR中有A、AB、DPTR及CY 如: MOV R3,#12H MOV A,R3
注意:① 立即数前加“#”号 ② 立即寻址方式的指令是双字节的(第1个字节为 操作码,第2个字节是操作数) ③ 操作数是放在ROM内的常数
2. 直接寻址

指令中直接给出操作数所在的单元地址或位地址
直接寻址可访问的存储空间: (1)内部RAM低128个单元 在指令中直接以单元地址形式给出,地址范围00H~7FH (2)特殊功能寄存器SFR 直接寻址是SFR惟一的寻址方式,SFR可以用单元地址给出, 也可用寄存器符号形式给出(但A、AB、DPTR除外) (3)211个位地址空间 内部RAM中可位寻址的20H~2FH单元对应的128个位地址空间 11个SFR中83个可用的位地址空间

第三章_单片机的指令系统

第三章_单片机的指令系统

例 A=C9H ,R2=54H,Cy=1,执行指令:
SUBB A,R2
结果:A=74H,Cy=0,Ac=0,OV=1 6.减1指令 4条指令: DEC A ;A-1→A DEC Rn ;Rn-1→Rn,n=0~7 DEC direct ;direct-1→direct DEC @Ri ; (Ri)-1→ ( Ri ) , i=0,1 减1指令不影响标志位。
5.定义空间伪指令:DS 表达式 例3-6 ORG 0F00H DS 10H DB 20H,40H 汇编后,得 (0F10H)=20H,(0F11H)=40H。 DB、DW、DS只对程序存贮器起作用。
6.等值伪指令: 字符名 EQU 数据或汇编符 数据或汇编符赋给字符名;先赋后用;
例3-7 AA A10
(7F01H)=16H (7F03H)=39H
4.定义字伪指令:DW Y1,Y2,…,Yn 定义16位地址表(高位在前,低位在后); ORG 0F00H TAB: DW 1234H,45H,161 汇编后存贮单元内容为: (0F00H)=12H (0F01H)=34H (0F02H)=00H (0F03H)=45H (7F04H)=00H (7F05H)=0A1H
2.寄存器寻址方式 操作数在寄存器中 MOV A,Rn ;(Rn)→A,n=0~7 表示把寄存器Rn的内容传送给累加器A。 寻址范围: (1)4组通用工作寄存区共32个工作寄存器。 (2)部分特殊功能寄存器,例如A以及数据指 针寄存器DPTR和C等。 例:CLR A INC DPTR MOV R5,#50H
注意:RD或WR信号有效。
采用DPTR间接寻址,高8位地址(DPH)由P2口 输出,低8位地址(DPL)由P0口输出。 采用Ri(i=0,1)间接寻址,提供外部数据存储器 低8位地址由P0口输出。

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

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

rel=F2H
操作码 偏移量
ALU
(PC)=2112H
.
2025H
. . .
. . .
修正后转移 目标地址 D (PC) = 2104H
(PC) = 2 1 1 2 H Rel ) = FFF 2 H D = 2104H
7、位寻址
Bit Addressing
以访问触发器的方式,对内部RAM、SFR 的位地址空间进行访问,称为位寻址。位地址
⑸ 立即数送寄存器
MOV Rn,#data (n=0~7)
;立即数#data送累加器 Rn 双字节指令,机器码的第一字节为 78H~7FH,第二字节为立即数
机器码
78H~7FH
立即数
⑹ 累加器内容送寄存器Rn
MOV Rn ,A (n=0~7) 机器码 F8H~ FFH ;累加器A的内容送Rn 单字节指令,机器码相应为F8H~FFH ⑺ 内RAM或SFR内容送寄存器Rn
寻址空间: 程序存储器
指令的三种形式: 一般为双字节或三字节指令 操作码
操作码 rel 直接地址 rel
操作码
立即数 rel
例: JNZ rel
; 累加器A不等零则转移 设:rel=23H
ROM
PC PC 2000H 2001H
70H 23H . . . . . . .
PC
2002H 下一条指令
rel=23H
布尔处理机 共221位
布尔运算器ALU 布尔累加器CY(PSW.7) 布尔RAM区 共128位 布尔I/O口 P0~P3口每位都可 做布尔I/O口 布尔指令子集 17条布尔指令
指令中使用的符号 n=0~7 Rn —当前选中寄存器区的8个工作寄存器(R0~R7)

51单片机 第三章指令系统

51单片机   第三章指令系统
; DPH ← #56H,DPL ← #78H
10
3.2.5 变址寻址方式
1.
变址寻址方式是以程序计数器PC或数据指针 DPTR作为基址寄存器,以累加器A作为变址寄 存器,它们两者内容之和为有效地址。 寻址范围:
程序存储器空间。
2.
3.
变址寻址方式的指令只有3条:
⑴ MOVC A, @A+DPTR ⑵ MOVC A, @A+PC ⑶ JMP @A+DPTR ; 查表指令 ; 查表指令 ; 散转指令
⑴ 低128个存储单元,8-bit二进制数表示地址。 ⑵ 特殊功能寄存器,用直接地址或称号表示。
2.
3.
例如,指令 MOV A, 30H
; A ← (30H)
8
3.2.3 寄存器间接寻址方式
1.
寄存器间接寻址时,指令中给出的寄存器为地 址指针。 寻址范围:
⑴ 片内和片外RAM 256单元,用R0或R1间接寻址。
34
4.
除法
整数部分
DIV AB
A
被除数
X B
除数

A
B
余数部分
除数为0,商的A和B内容不确定,且(OV)=1 。 标志Cy总是被清0。 例: 若(A)=FBH(251),(B)=12H (18),执行指令 DIV AB 之后,(A)=0DH, (B)=11H,(OV)=0,(Cy)=0。
35
3.3.3 逻辑运算及移位类指令
例: 若(A)=C3H,(R0)=AAH,执行指令 ANL A, R0 之后,(A)=82H。
37

逻辑或 源操作数与直接地址单元内容相或
ORL direct, A #data
源操作数与累加器A的内容相或
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
总结
核心内容是单片机指令系统,由相应指令 去编写相应程序实现控制设备。
09:42
单片机技术
7
(3.2)单片机指令分类 ❖ 指令分类(111条)
1.数据传送类指令(29条)
:MOV、MOVC、MOVX、XCH,XCHD,PUSH,POP,SWAP
2.算术运算类指令(24条)

:ADD、ADDC、SUBB、MUL、DIV、INC、DEC、DA
▪ AJMP rel
AJMP LOOP
09:42
单片机技术
15
3.3 指令字节数 ❖ 包括:单字节指令、双字节指令和三字节指令
1、单字节指令(存放指令需要1B的空间)
如:INC A
→ (在ROM中占1B大小空间)
2、双字节指令(存放指令需要2B的空间)
09:42
单片机技术
11
❖ 指令格式
3.3 指令常见符号含义
汇编语言:由助记符组成的指令系统。 包含:操作码和操作数。
操作码:表示该指令的操作功能。 操作数:是指令操作所需要的数或数存放的地址。
09:42
单片机技术
12
❖ 指令格式
3.3 指令常见符号含义
(标号:)操作码 目的操作数,源操作数 (;注释) LOOP:MOV A ,#20H ;将立即数20H送入A中
用一些英文 单词的缩写 来帮助记忆
汇编语言
09:42
单片机技术
10
3.3 指令常见符号含义
❖ 汇编语言
▪ 汇编语言就是由助记符、符号和数字等来表示指令的 程序语言。 ▪ 例:
MOV A,#0AH ;把10放到累加器A中 ADD A,#14H ;A加20,结果仍放在A中
❖ 汇编语言包含:操作码和操作数。 ▪ 操作码:表示该指令的操作功能。 ▪ 操作数:是指令操作所需要的数或数存放的地址。
09:42
单片机技术
14
3.3 指令常见符号含义
❖ 分别写出正确的指令 ▪ MOV A ,Rn ▪ MOV A ,@Ri
例如:
MOV A ,R0
MOV A,@R1
▪ MOV A ,#data
MOV A,#20H
▪ MOV A ,direct
MOV A,30H
▪ MOV DPTR ,#date16 MOV DPTR ,#1000H
3.2 项目思考
从第一个单片机项目中,思考以下问题。
思考
单片机如何实现控制相应设备?
09:42
单灭 ❖ 项目原理图
❖ 项目流程图
开始
点亮 P1.0
结束
返回
09:42
单片机技术
4
3.1 单片机控制1只LED灯亮灭
❖ 项目程序
LED灭:P1.0输出“1” → SETB P1.0

3.逻辑运算类指令(24条)

:ANL、ORL、XRL、CPL

4.位操作类指令(17条)
无条件转移指令
:SETB、CLR
:LJMP、AJMP、SJMP、JMP
5.控制转移类指令(17条)
条件转移指令
:JZ、JC、JB、JBC、DJNZ、CJNE
09:42
单片机技术
8
3.2 单片机指令分类 ❖ 指令分类(111条)
❖ 机器语言
▪ 机器语言就是用二进制编码表示的指令,是计算机能 直接识别和执行的语言。
▪ 例:
01110100 00001010 ( MOV A,#0AH )
00100100 00010100 ( ADD A,#14H )
;把10放到累加器A中 ;A加20,结果仍放在A中
机器语言不易记忆、不易修改、不易查错。
LED亮:P1.0输出“0” → CLR P1.0
程序基本结构:
ORG 0000H AJMP MAIN ORG 0100H MAIN:
…… …… AJMP MAIN END
09:42
单片机技术
5
3.1 单片机控制1只LED灯亮灭
❖ 项目程序
ORG 0000H ;伪指令,指向0000H地址
AJMP MAIN ;跳转指令,转向MAIN标号处
分析下例程序,说明各条指令属于哪一类和功能?
ORG 0000H AJMP MAIN ORG 0100H MAIN:
SETB P1.0 AJMP MAIN END
; 伪指令 ; 绝对跳转指令 ; 伪指令 ; 标号MAIN ; 位操作指令 ; 绝对跳转指令 ; 伪指令
09:42
单片机技术
9
3.3 指令常见符号含义
说明:
1.标号与操作码之间“:”隔开; 2.操作码与操作数之间用“空格”隔开; 3.目的操作数和源操作数之间有“,”分隔; 4.操作数与注释之间用“;”隔开。
09:42
单片机技术
13
3.3 指令常见符号含义
❖ 常见符号含义
Rn — 8个工作寄存器(R0~R7),即n=0~7 Ri — 2个寄存器( R0、R1),i=0、1 direct — 片内RAM单元的地址,范围(00H~FFH),如:20H #data — 8位立即数。范围(00H~FFH),如:#20H、#40H #data16 — 16位立即数。范围(0000H~FFFFH),如:#2000H addr16 — 16位目的地址,范围(0000H~FFFFH),如:2000H addr11 — 11位目的地址,范围(0000H~07FFH),如:00FFH rel — 相对偏移量,范围(-128~+127) bit — 内部数据RAM或特殊功能寄存器中的可直接寻址位 DPTR — 数据指针,可用作16位的地址寄存器,范围(0000H~07FFH) @ — 间接寻址或变址寻址的前缀,如@Ri,@DPTR / — 位操作的前缀,表示对该位取反 (X) — (X)中的内容 ((X)) — 由X指出的地址单元中的内容
第三章:单片机指令系统
3.1 概述、格式、符号、机器指令、伪指令
09:42
单片机技术
1
第三章:MSC-51 单片机指令系统
3.1 - 指令概述
☺ 3.1 项目思考 ☺ 3.2 单片机指令分类 ☺ 3.3 指令常见符号含义 ☺ 3.4 机器语言指令格式 ☺ 3.5 单片机伪指令
09:42
单片机技术
2
ORG 0100H ;伪指令,指向为0100H地址
MAIN:
;标号MAIN(以字母开头)
;位指令,P1.0引脚输出0,LED亮
CLR P1.0
;跳转指令,转向MAIN标号处
AJMP MAIN ;伪指令,结束汇编
END
分析程序中使用了哪些指令,功能是什么?
09:42
单片机技术
6
3.1 项目总结
从一只LED灯的熄灭,您明白如何控制相应设备了吗?
相关文档
最新文档