第3章-MCS-51单片机指令系统-3.3.1数据传送类指令

合集下载

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

第3章MCS-51单片机指令系统
必须指定被传送数据的源地址和目标地址。在传送过程 中,源地址的内容不被改变。 传送类指令除了以累加器A为目标的传送对PSW的P有影 响外,其余的传送类指令对PWS一概无影响。 操作码 数据的目标地址 指令通式:MOV 【举例】:MOV 数据的源地址
<dest>,<src>
A,R0 ;将R0寄存器中的数据送 累加器A中(注意寻址方式)
(2) 十六进制表示方式: 它是对二进制形式的一种简化。 00100100B 24H 00001000B 08H
(3)指令的“助记符”方式(“汇编格 式”):
00100100B 24H 00001000B 十六进制表示ADD 08H 二进制表示形式
汇编格式
A,#08H
1)是一种由英文单词或字母、数字来表征 指令功能形式。 2) “汇编”格式的指令必须把它“翻译” 为二 进制形式“机器码”后才能为CPU所识别。 3)三种不同的表示方法适用于不同的场合。
寄存器寻址
当所需要的操作数在内部某一个寄存器Rn中时,将此 寄存器名Rn直接写在指令的操作数的位置上。如:
A,R7
20H,R0 R1
ADD
A,R3
注意:寄存器寻址方式的指令大多是单字节指令。 指令本身并不带有操数,而是含有存放操作数的寄存 器的3位代码。以MOV A,Rn为例,使用R7寄存器,所 以rrr=111,既指令的机器码为:0EFH
通用数据 存储器
00H
2,访问片外RAM存储单元; MOV R0,#20H MOVX A,@R0
3,尽管片内与片外的RAM单元 的00H-FFH地址相重叠,但由 于指令的不同不会发生地址 混乱。
0000H
片内数据存储器 256B个字节
片外数据存储器 64KB个字节

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

第三章(MCS-51单片机指令系统)
电气工程学院
位操作指令 1.位传送指令 MOV C,bit MOV bit,C 2.位置位和清零指令 CLR C
CLR
SETB
bit
C
电气工程学院
SETB bit
3.位运算指令
ANL C,bit ANL C,/bit ORL C,bit ORL C,/bit CPL C CPL bit
电气工程学院
movcaapcmovcaadptr变址寻址中只有两条指令第一个操作数必须是a变址部分必须是a和pc或a和dptr的组电气工程学院324位寻址位寻址是把8位二进制数中的某一位作为操作数看待称之为位寻址movc7fhmovc2fh7mova7fh可位寻址的空间1片内ram区20h2fh共16个单元其中每一位都可单独作为操作数2某些特殊功能寄存器sfr其特征是他们的物理地址应能被8整除共16个分布在80hffh的字节地址电气工程学院324位寻址电气工程学院3333数据传送指令数据传送指令数据传送指令1内部数据传送指令mova30hmovdptr1234h2外部ram数据传送指令movxadptr3外部rom数据传送指令movcaadptrmovcaapc电气工程学院3333数据传送指令数据传送指令direct直接寻址rn工作寄ri间接寻址累加器amovcadptrapcmovxdptr电气工程学院3434堆栈操作指令堆栈操作指令pushdirect
ADD
MOV JMP
A,R1
DPTR,#PMTB @A+DPTR
;A*3
LJMP LJMP
电气工程学院
2.条件转移指令
(1)累加器A判零转移指令
(2)比较条件转移指令(实际上进行减法操作,若A中结果不为零发生跳转) CJNE CJNE A,#data,rel A,direct,rel

[信息与通信]MCS-51单片机指令系统-数据传送类指令

[信息与通信]MCS-51单片机指令系统-数据传送类指令

<P1>=0CAH,分析以下程序执行后各单元及寄存
器、P2口的内容.
• MOV R0,#30H
;R0=30H
• MOV A,R0
;A=40H
• MOV R1,A
;R1=40H
• MOV B,R1
;B=10H
• MOV R1,P1
;<40H>
• MOV P2,P1
=0CAH
• MOV

•执行上述指10令H后,#的20结H果为:<R0>=3<0PH2,<>R=10>C=A<HA>=40H,
3.3 MCS-51指令系统
3.3.1 数据传送类指令〔29条〕 传送类指令分成两大类
1. MOV,一般传送 2.Байду номын сангаас非MOV,特殊传送, 如:MOVC、MOVX、PUSH、
POP、 对PSW的X影C响H、XCHD及SWAP.
• 1. 访问片内数据存储器的一般数据传送指令
• 该类指令的功能是实现数在片内RAM单元之间、 寄存器之间、寄存器与RAM单元之间的传送.所 有指令具有统一的格式,其格式如下:
MOV Rn,
A direct
#data
例:若〔60H〕= 30H 执行 MOV R6,60H
结果:〔R6〕= 30H.
3> 以direct 为目的操作数的指令
MOV direct,
A Rn direct1 Ri
#data
例:若〔R0〕=30H,〔30H〕=25H 执行MOV 40H,R0 指令
结果:〔40H〕=25H.
RAM20H单元 • 外部ROM 2000H单元中的内容送到外部

单片机原理及接口技术(第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位

MCS51指令系统的介绍

MCS51指令系统的介绍

(3)增量指令INC
INC INC INC INC A Rn direct @Ri ;A(A)+1 ;Rn (Rn)+1 ;direct (direct)+1 ;(Ri)((Ri))+1
INC
DPTR
;DPTR (DPTR)+1
【例】(A)=12H,(R3)=0FH,(35H)=4AH, (R0)=56H,(56H)=00H 执行如下指令: INC A ;执行后(A)=13H INC R3 ;执行后(R3)=10H INC 35H ;执行后(35H)=4BH INC @R0 ;执行后(56H)=01H
POP DPH POP DPL POP ACC POP PSW 指令执行之后,SP内容修改为60H,而64H、63H、 62、61H单元的内容依次弹出到DPH、DPL、A、PSW中。
5、字节交换指令XCH XCHD SWAP
数据交换主要是在内部RAM单元与累加器A之间进 行,有整字节和半字节两种交换。 (1)整字节交换指令
图3.3 寄存器间接寻址方式示意图
3.2.5 位寻址
位操作指令能对内部RAM中的位寻址区(20H~2FH) 和某些有位地址的特殊功能寄存器进行位操作。
SETB TR0 CLR 00H MOV C,57H ;TR01 ;(00H)0 ;将57H位地址的内容传送到 位累加器C中 ;将5FH位状态与进位位C相与, 结果在C中
(2)带进位加法指令ADDC
ADDC ADDC ADDC A,Rn A,direct A,@Ri ;A(A)+(Rn)+(Cy) ;A(A)+(direct)+(Cy) ;A(A)+((Ri))+(Cy)

第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. 汇编语言
汇编语言就是用助记符表示的指令,汇编语言与 机器语言一一对应。用汇编语言编写程序,每条 指令的意义一目了然,给程序的编写、阅读和修 改带来很大方便。而且用汇编语言编写的程序占 用内存少,执行速度快,尤其适用于实时应用场 合的程序设计。因此,在单片机应用系统中主要 是用汇编语言来编写程序。 汇编语言的缺点:缺乏通用性,程序不易移植, 是一种面向机器的低级语言。使用汇编语言编写 程序时,必须熟悉机器的指令系统、寻址方式、 寄存器的设置和使用方法。每种计算机系统都有 它自己的汇编语言。不同计算机的汇编语言之间 不能通用。

MCS-51单片机指令系统-数据传送类指令

MCS-51单片机指令系统-数据传送类指令

2) 半字节交换指令 )
XCHD A,@Ri , SWAP A )=30H,( ,(30H)= )=67H, 例:若(R0)= )= ,( )= , )=20H。 (A)= )= 。 执行 XCHD A,@R0 后, , )=27H,( ,(30H)= )=60H。 (A)= )= ,( )= 。 )=30H,执行 例 若(A)= )= ,执行SWAPБайду номын сангаасA 后, )=03H。 (A)= )= 。
(4) 数据交换指令
数据传送指令一般都是将操作数自源地址单元传送到目的 地址单元,指令执行后,源地址单元的操作数不变,目的 地址单元的操作数则修改为源地址单元的操作数。交换指 交换指 令数据作双向传送,涉及传送的双方互为源地址、 令数据作双向传送,涉及传送的双方互为源地址、目的地 址,指令执行后每方的操作数都修改为另一方的操作数。 指令执行后每方的操作数都修改为另一方的操作数。 数据交换指令共有如下5条指令:
A
MOV @Ri, ,
direct #data
,(A) 例 若(R1)=56H,( )=35H ) ,( 执行 MOV @R1,A 指令 , 结果:( 结果:(56H)=35H :( )
访问片内RAM的一般传送指令操作关系图
累加器A
Direct 直接地址
@Ri间址
Rn寄存器
Data立即数
设内部RAM(30H)=40H (40H)=10H, RAM(30H)=40H, 例 设内部RAM(30H)=40H,(40H)=10H, (10H)=00H(P1)=0CAH, (10H)=00H(P1)=0CAH,分析以下程序执行后各单元 及寄存器、P2口的内容 口的内容。 及寄存器、P2口的内容。
(2) 读、写片外 写片外RAM 指令

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

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

第3章MCS-51单片机指令系统3.1概述3.1.1指令格式3.1.2指令的三种表示形式3.1.3指令的字节数1. 单字节指令(49条)图3-1 MOVA,Rn指令的格式2单片机原理及其接口技术(第2版)2. 双字节指令(46条)3. 三字节指令(16条)3.1.4指令的分类1. 数据传送指令(28条)2. 算术运算指令(24条)3. 逻辑操作和环移指令(25条)4. 控制转移指令(17条)5. 位操作指令(17条)3.1.5指令系统综述1. 指令系统中所用符号的说明2. 指令对标志位的影响3.2寻址方式3.2.1寄存器寻址图3-2寄存器寻址示意图单片机原理及其接口技术(第2版) 3 3.2.2直接寻址图3-3直接寻址示意图3.2.3立即寻址3.2.4寄存器间址图3-4寄存器间址寻址示意图3.2.5变址寻址图3-5变址寻址示意图4单片机原理及其接口技术(第2版)3.2.6相对寻址图3-6相对寻址示意图3.2.7位寻址3.3数据传送指令3.3.1内部数据传送指令(15条)1. 立即寻址型传送指令2. 直接寻址型传送指令3. 寄存器寻址型传送指令4. 寄存器间址型传送指令5. 内部数据传送指令的使用图3-7 8×C552/8051指令的数据传送方式单片机原理及其接口技术(第2版) 5 3.3.2外部数据传送指令(7条)1. 16位数传送指令2. 外部ROM的字节传送指令图3-8 0~9平方值表3. 外部RAM的字节传送指令3.3.3堆栈操作指令(2条)图3-9例3.8的堆栈变化示意图6单片机原理及其接口技术(第2版)3.3.4数据交换指令(4条)3.4算术与逻辑运算和移位指令3.4.1算术运算指令(24条)1. 加法指令2. 减法指令3. 十进制调整指令4. 乘法和除法指令3.4.2逻辑运算指令(20条)1. 逻辑与运算指令2. 逻辑或指令3. 逻辑异或指令4. 累加器清零和取反指令3.4.3移位指令(5条)单片机原理及其接口技术(第2版)7图3-10例3.26附图3.5控制转移和位操作指令3.5.1控制转移指令(17条)1. 无条件转移指令图3-11 AJMP指令转移范围8单片机原理及其接口技术(第2版)图3-12例3.29附图图3-13带符号数的比较方法3. 子程序调用和返回指令图3-14二级子程序嵌套及断点地址存放单片机原理及其接口技术(第2版)9图3-15例3.33附图10单片机原理及其接口技术(第2版)4. 空操作指令3.5.2位操作指令(17条)1. 位传送指令2. 位置位和位清零指令3. 位运算指令4. 位控制转移指令习题与思考题3.1指令通常有哪三种表示形式?各有什么特点?3. 2 MCS-51指令按功能可以分为哪几类?每类指令的作用是什么?3. 3 MCS-51共有哪七种寻址方式?各有什么特点?3. 4指出下列每条指令源操作数的寻址方式和功能。

第三章MCS51的指令系统

第三章MCS51的指令系统

3.4.1 MCS-51数据传送指令
[1]. 以累加器A为目的操作数类指令(4条) 这4条指令的作用是把源操作数指向的内容送到累加器A。有直接、
立即数、寄存器和寄存器间接寻址方式:
MOV A,direct
(direct)→(A)直接单元30H
MOV A,0A2H
§3.1 概述
7种寻址方式,111条指令
指令所占用空 间(字节数)
指令执行周期 (运算速度)
单字节指令:49条 双字节指令:45条 三字节指令:17条
单周期指令:64条 双周期指令:45条 四周期指令:2 条
试问
1 如果一条指令执行时间为3个机器周 期,那么需要经历多少个时钟周期?
2 如果一条指令执行时使用了2us,而 晶振使用的是12MHz,请问执行这条指 令需要多少个机器周期?
(A)+((Ri))+(C)→(A) 累加器A中的内容与工作寄存 器Ri指向地址单元中的内容、连同进位位相加,结果存在A中
3.4.2 MCS-51算术运算指令
[3]. 带借位减法指令(4条)
这组指令包含立即数、直接地址、间接地址及工作寄存器与累加器A连同借位 位C内容相减,结果送回累加器A中。
3.4.1 MCS-51数据传送指令
[2]. 以寄存器Rn为目的操作数的指令(3条)
这3条指令的功能是把源操作数指定的内容送到所选定的工作寄存器 Rn中。有直接、立即和寄存器寻址方式:
MOV Rn, direct (data)→(Rn) 直接寻址单元中的内容送到寄存器Rn中 MOV R4,37H
**补充知识
MCS51系列单片机为复杂指令单片机CISC。目前单片机大 量使用的是精简指令集RISC结构单片机.

第三章MCS-51指令系统

第三章MCS-51指令系统
第三章 MCS-51单片机指令系统
3.1 概述
3.2
3.3
寻址方式
MCS-51的指令系统
3.4
伪指令
3.1
概述
指令:使计算机完成某种操作的命令。 指令系统 :计算机能够执行的全部操作所对应的指 令集合。 机器语言: 采用二进制编码表示指令,是计算机能够直 接识别和执行的语言。 汇编语言: 采用助记符 、符号、数字来表示指令的程序 语言,它与机器语言指令时一一对应的。
如果我们分别向DPH,DPL送数,则结果也一样。
如下面两条指令: 则就相当于执行了 MOV DPH,#35H MOV DPTR,#3512H。 MOV DPL,#12H。
(6) 累加器A与片外RAM之间的数据传递类指令(4条)
MOVX A,@Ri MOVX @Ri,A MOVX A,@DPTR MOVX @DPTR,A 说明: 1.在51中,与外部存储器RAM打交道的只可以是A累加器。所 有需要送入外部RAM的数据必需要通过A送去,而所有要读入的外 部RAM中的数据也必需通过A读入。 在此我们可以看出内外部RAM的区别了,内部RAM间可以直接 进行数据的传递,而外部则不行。 比如,要将外部RAM中某一单元(设为0100H单元的数据)送 入另一个单元(设为0200H单元),也必须先将0100H单元中的内 容读入A,然后再送到0200H单元中去。
MOV B,R0
PUSH ACC
;R0→B,R0为寄存器寻 址,B为直接寻址。
;A的内容压入堆栈
3.2.4
寄存器间接寻址
例:MOV A, @R0
• 以寄存器中内容为地址,以该地址中内容为操作数的
寻址方式。间接寻址的存储器空间包括内部RAM和
外部RAM。 • 能用于寄存器间接寻址的寄存器有R0,R1,DPTR, SP。其中R0、R1必须是工作寄存器组中的寄存器。 SP仅用于堆栈操作。

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的内容相或

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

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

2.操作码:指明指令功能,是指令功能的英文缩写。 汇编语句格式中唯一不能空缺的部分。
MOV__move传送 XCH__exchange交换 ANL__and logic与逻辑运算 XRL__exclusive or异或运算
MUL__Multiply乘法
RR__rotate right右循环 SJMP__short jump短跳转 RET__return 子程序返回 操作码助记符
MCS-51系列单片机指令系统分类
按寻址方式分为以下七种 1、立即寻址 2、直接寻址 3、寄存器寻址 按功能分为以下五种: 1、数据传送指令 2、算术运算指令 3、逻辑运算指令
4、寄存器间接寻址指令
5、相对寻址
4、控制转移指令
5、位操作指令
6、变址寻址
7、位寻址
3.3 指令系统的寻址方式
我的信在她 那!找信去!
快件
目的地
MOV A,#30H
30H
A
这类指令大都是双字节指令,仅有指令:MOV DPTR,#DATA16是三字节指令,它提供两字节立即 数。 第一位数字
是A~F时在 其前加0
对立即数的书写要求:对于单字节立即数,若 数值大于等于A0H,则要在其前面加一个0,如指令 “MOV A,#0A0H”,该指令含义是把立即数A0H送 累加器;对于双字节立即数,若数值大于等于 A000H,则要在其前面加一个0。对于直接地址和偏 移量也按相同方法书写。
1.标号:指令的符号地址 一般由字母和数字组成,第一位必须为字母,冒 号 “ :” 结 束 。 字 符 个 数 不 能 超 过 8 个 。 AD5 、 Q555、BB5D、pat、loop等为合法标号;5P、PA、10AD、+A等为非法标号。 不能用汇编语言已定义的符号作标号。如助记符、 伪指令、寄存器名称等。 同一标号在一个程序中只能定义一次。 标号在语句中的有无取决于本语句是否被访问。

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

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

2.2 用@Ri进行间接寻址的指令 MOVX A, @Ri; ((Ri)) MOVX @Ri,A; (A) (A) ((DPTR))
说明:若外部扩展RAM小于等于256单元,用@Ri间接 寻址进行数据传送,8位地址线足够使用。
若外部扩展较大的RAM区域,须用P2口输出高8位地址, 用@Ri表示低八位地址,P0口分时作低8位地址线和数 据线,P2口应事先预置。
累加器
Rn #data 立即数
寄存器
2 外部数据存储器(或I/O)的读写指令 2.1 用@DPTR进行间接寻址的指令
MOVX A, @DPTR; ((DPTR)) (A)
MOVX @DPTR,A; (A)
((DPTR))
DPTR为16位数据指针,该指令可寻址外部RAM64K范围 (0000H-0FFFFH),地址低8位由P0口输出,地址高8 位由P2口输出,数据通过P0口读入或写出。
一 数据传送指令 1 内部数据传送指令(MOV) 指令格式:MOV <目的操作数〉,<源操作数> 指令的源操作数和目的操作数都在单片机内部。可以 是片内RAM地址,也可以是特殊功能寄存器SFR的地址 指令的功能是把源操作数指定的字节变量复制到目的 操作数所规定的单元或寄存器中,源字节不变。
1.1 立即数传送指令 源操作数为立即数 八位立即数传送指令: MOV A,#DATA; DATA (A) 例:MOV A,#02H; MOV Rn,#DATA; DATA (Rn) n=0-7 例:MOV R3,#02H; MOV @Ri,#DATA; DATA ((Ri)) i=0,1 例:MOV @R1,#02H; MOV direct,#DATA; DATA (direct) 例:MOV 30H,#02H;

第3章 51单片机指令系统

第3章 51单片机指令系统

(2)RAM单元字节地址+第N位 MOV C, 28H.0;把字节地址为28H的第0位值送进位位C
(3)特殊功能寄存器名+第N位 CLR PSW.5 (4) 用伪指令定义
24
片内 RAM(20H-2FH)中的位寻址区结构图
2FH
7F
77 6F 67 5F 57 4F 47 3F 37 2F 27 1F 17 0F
FFFFH
重叠空间
FFH FFH
RAM
80H 7FH 30H 2FH 20H 1FH 00H 80H
特殊功能 寄存器
RAM/IO
RAM
位寻址区 工作 寄存器
0000H
内部数据寄存器
外部数据寄存器
4.立即数寻址方式
操作数存在程序存储器中
操作数就包含在指令代码中,在操作码之后,称为立即数。 需在操作数前加前缀标志“#”。 例如: MOV A,#40H
第3章 51单片机的 指令系统
1
第3章
目录
3.1 指令系统概述
3.2 指令格式 3.3 指令系统的寻址方式 3.4 51指令系统分类 3.4.1 数据传送类指令 3.4.2 算术运算类指令
3.4.3 逻辑操作类指令
3.4.5 位操作类指令 3.5 51指令汇总 3.6 某些指令的说明
3.4.4 控制转移类指令
可能是一具体数据,
可能是指出到哪里取得数据的地址或符号。
5
(1)单字节指令:操作码和操作数同在一个字节中
(2)双字节指令:一个字节为操作码,另一个字节是操作数 (3)三字节指令:操作码占一个字节,操作数占二个字节
ROM ROM ROM
操作码+操作数
操作码

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

第03章 MCS - 51单片机指令系统
这里源操作数不能进行寄存器间接寻址, 也就是MOV Rn , @Rn 这个指令是不能用 的。
第 二 节 数 据 传 送 指 令
第3章 MCS-51单片机指令系统
(2)将数据传送到工作寄存器Rn的指令(3条) 例:已知累加器A的内容为30H,寄存器R7的内容 为50H,内部RAM30H单元的内容为40H,内部 RAM50H单元的内容为10H,请指出下列每条指令 执行以后相应单元内容的变化.
第 一 节 指 令 格 式 与 寻 址 方 式
第3章 MCS-51单片机指令系统
(6) 相对寻址:
在MCS -51 指令系统中设有转移指令, 分 为直接转移和相对转移指令, 在相对转移 指令中采用相对寻址方式。这种寻址方式 是以PC的内容为基本地址, 加上指令中给 定的偏移量作为转移地址,也就是目的地 址(用来修改PC的值)。指令中给出的偏 移量是一个 8 位带符号的常数, 可正可负, 其范围为-128~+127。
第3章 MCS-51单片机指令系统
(1) 立即寻址:
立即寻址方式是将操作数直接存放在指令字 节中,作为指令的一部分存放在代码段里。 比如:MOV A, #3AH 跟在指令操作码后面的数就是参加运 算的数, 该操作数称为立即数。立即数有一字 节和二字节两种可能, 如指令: MOV DPTR, #0DFFFH 上述两条指令均为立即寻址方式, 第 一条指令的功能是将立即数 3AH送累加器A中, 第二条指令的功能是将立即数 0DFFFH送数据 指针DPTR中(DPH, 0FFH→DPL)。
第 二 节 数 据 传 送 指 令
第3章 MCS-51单片机指令系统
3.2数据传送指令
程序中使用最多的指令,主要用于内部RAM、 寄存器、外部RAM以及程序存储器之间的数据 传送、保存以及交换。 工作原理:将源操作数简单地传给目的 操作数,而源操作数的内容不变,PSW的内容 不改变。 分类:内部数据传送指令、外部传送指 令、查表指令、交换指令和堆栈指令。

第三章 MCS-51单片机指令系统§3-1 指令格式及其操作寻址方式 ....ppt

第三章 MCS-51单片机指令系统§3-1 指令格式及其操作寻址方式 ....ppt
了参与运算的数所在的字节单元地址或位地址(位寻 址)。直接寻址的寻址范围: (1)内部数据存储器的低128字节,00H~7FH; (2)特殊功能寄存器,注意除A、B、DPTR外,其 他SFR只能采用直接寻址方式。 (3)位寻址:所有可寻址位;
6
例如:MOV A, 70H ;(A)←(70H) MOV C,70H ;(CY)←(70H)
3
A:寄存器寻址的累加器;
ACC:直接寻址的累加器;
@:
间接寻址符号
(X): X中的内容
((X)):由X的内容作为地址的单元中的内

←:
箭头左边的内容被右边的内容代替
$:
本条指令的起始地址
/:
址方式
寻址方式:指令给出参与运算的数据的方式,即确定 操作数地址的方法。
MCS-51指令寻址方式主要有5种:寄存器寻址、 直接寻址、寄存器间接寻址、立即寻址和基址寄存器 +变址寄存器间接寻址
25
例3-9 设(A)=57H,(20H)=68H,(R0)=30H, (30H)=39H,求下列指令的执行结果
(1)XCH
调整偏移量,调整量为下一条指令的起始地址
到表格首址之间的字节数。
22
例3-6:阅读下列程序,给出运行结果 ,设(A)=3。
1000H
ADD A,#02H
;加调整量
1002H
MOVC A,@A+PC
;查表
1003H
NOP
1004H
NOP
1005H TAB:DB 66,77,88H,99H,‘W’,‘10’
21
(2)用PC作为基寄存器
例3-5:
ORG 1000H
1000H MOV A,#30H;

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

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

第3章 MCS-51单片机指令系统
数据操作 MCS-51系列单片机的CPU能对位、半字节、字节和双字节 数据进行各种操作,它们包括数据传送、算术运算、逻辑运 算、布尔处理和控制转移等操作。
3.1 指令格式
指令类型 MCS-51汇编语言有111种指令,42种操作码助记符用来描 述33种操作功能。 按执行时间分:有单周期指令;双周期指令;四周期指令; 按功能分类: 数据传送指令;算术运算指令;逻辑运算指令; 位操作指令;控制转移指令。
第3章 MCS-51单片机指令系统
4、立即寻址方式:在指令中直接给出操作数,出现在 指令中的操作数叫立即数。为区别于直接地址,立 即数前加上“#”。 例如: MOV A,#62H
3.2 MCS—51的寻址方式
寻址范围:程序存储器立即数。
第3章 MCS-51单片机指令系统
3.2 MCS—51的寻址方式
MOV R0,#30H MOV A,@R0 MOV R1,A MOV B,@R1 (R0)=30H (A)=40H ,(R0)=30H (R1)=40H,(A)=40H (B)=10H,(R1)=40H (40H)=0CAH,(P1)=0CAH (P2)=0CAH,(P1)=0CAH
3.3 数据传送类指令
数据传送类指令不影响标志位,即不影响 C 、 AC 、 OV,但不包括检验累加器A奇偶性的标志位P。
第3章 MCS-51单片机指令系统
一、一般传送类指令 汇编语言格式:MOV (目的操作数),(源操作数) 功能:源操作数单元内容送到目的操作数单元中,源操 作数单元内容不变。
3.3 数据传送类指令
第3章 MCS-51单片机指令系统
4、以寄存器间接寻址的单元为目的操作数指令
MOV @Ri,A MOV @Ri,direct MOV @Ri,#data ;(Ri)←(A) ;(Ri)←(direct) ;(Ri)←#data
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11 位地址,可表示 2K范围内寻址,用于 ACALL 和AJMP 指 令中(211=2K) 带符号的8位地址偏移量(-128~+127),用于SJMP和条 件转移指令中
addrll rel
bit
位寻址区的直接寻址位,表示片内RAM中可寻址位和SFR 中的可寻址位 当前指令所在地址 数据指针 间接寻址寄存器或基址寄存器的前缀
3.3 MCS-51的指令集

按功能,分 5 类

3.3.1 数据传送类指令 3.3.2 算术运算类指令 3.3.3 逻辑运算类指令 3.3.4 控制转移指令 3.3.5 位操作类指令
MOV / PUSH / POP / XCH /
XCHD / SWAP / MOVX / MOVC
(3) 以直接地址为目的操作数的指令

功能 把源操作数送入由直接地址指出的存储单元 格式


MOV
direct, A
;(direct) ← (A)


MOV
MOV MOV MOV
direct, Rn
direct, direct direct, @Ri direct, #data
;(direct) ← (Rn)
;(R0)=60H ;(A)=((R0))=(60H)=30H
;(R1)=(A)=30H ;(40H)=((R1))=(30H)=50H
;(60H)=(30H)=50H
(6) 堆栈操作指令


功能、格式 PUSH—进栈 PUSH direct ;(SP)←(SP)+1,(SP)←(direct) POP— 出栈 POP direct ;(direct)←(SP),(SP)←(SP)-1 注意: 堆栈
一个8位的字节传送,通过A
DPTR间址(16位地址)

高8位地址 → DPH → P2 低8位地址 → DPL → P0 高8位地址 → P2 低8位地址 → R0或R1 → P0 片外RAM 或 I/O → A:读
P3.7
P0由ALE信号 锁存在地址锁存器

R0、R1间址


读/写信号
PSW
PUSH PUSH PUSH NhomakorabeaACC DPL DPH
PUSH DPH 后 SP PUSH DPL 后 SP PUSH ACC 后 SP PUSH PSW 后 SP
12H 34H
56H
78H
64H 63H 62H 61H 60H
保护 前 SP
XX

② 现场恢复

堆栈恢复程序 POP DPH POP POP POP DPL ACC PSW
;(A3~0) ←→ ((Ri)3~0) 半字节 交换 ;(A3~0) ←→ (A7~4)
XCHD A, @Ri SWAP A


已知,(30H)=88H, (40H)=11H, (R0)=30H, (R1)=40H,指出 下列程序段的执行结果和功能。 MOV A, 30H ;(A) (30H),(A)=88H XCH A, 40H ;(A) MOV 30H, A ;(30H)
(40H),(A)=11H, (40H)=88H (A),(30H)=11H
执行结果: (30H)=11H,(40H)=88H,功能:30H和40H单元内容互换
MOV A, @R0 ;(A) ((R0))=(30H)=88H XCH A, @R1 ;(A) ((R1))=(40H),(A)=11H,(40H)=88H MOV @R0, A ;((R0)) (A)=11H,(30H)=11H
指令为:
@R1, A Direct 直接寻址 @Ri 间接寻址 30 、(30H) = ____H 20 执行结果: (R1)=______H
MOV
×
Rn 寄存器 #data 立即数
(5) 16位数据传送指令

功能

把16位常数送入DPTR
高位→DPH 低位→DPL

格式

MOV
DPTR,#data16 ;(DPTR) ← #data16
3.3.1 数据传送类指令
所有的传送指令都不影响 标志位CY、AC和OV

按传送区域,分3组

1. 内部RAM数据传送

涉及累加器A的指令将影响 奇偶标志位P
MOV、PUSH/POP、XCH/XCHD、SWAP

2. 访问外部RAM或I/O的数据传送

MOVX

3. 程序存储器(ROM)到累加器(A)的传送

必须:寄存器间接寻址,并通过累加器A传送

格式 MOVX MOVX MOVX MOVX
A, @DPTR A, @Ri @DPTR, A @Ri, A
; (A)←((DPTR)) ; (A)←((Ri)) ; ((DPTR))←(A) ; ((Ri))←(A)
输入 输出
注意:


[例] MOV
DPTR,#1342H ;执行后(DPTR)=1342H 13H 、(DPL)=____ 42H ;(DPH)=____
Acc Direct 直接寻址
@Ri 间接寻址
×
Rn 寄存器 #data 立即数

练习
已知,内部RAM中的30H单元的内容为50H,分析执行下面程 序后,有关单元的内容。 MOV 60H, #30H MOV R0, #60H MOV A, @R0 MOV R1, A MOV 40H, @R1 MOV 60H, 30H ;(60H)=30H
(PSW)=0AH,(A)=56H,(DPTR)=01234H POP ACC 后 SP (PSW)=78H,(A)=56H,(DPTR)=01234H POP PSW 后 SP
XX
64H 63H 62H 61H 60H

练习
已知,(SP)=30H,(40H)=88H,(50H)=11H,指出下列程序的 执行结果和功能。
等价
PUSH 0E0H
MCS -51 提供 [例2] 进入中断服务子程序时的处理 一个向上升的堆栈;

① 现场保护

SP设置初值时 若保护PSW、累加器A、数据指针 DPTR 要充分考虑堆栈的深度。
设保护前:
(PSW)=78H、(A)=56H、(DPTR)=1234H
堆栈保护程序
PUSH


(5)16位数据传送指令
(6)堆栈操作指令
PUSH/POP XCH/XCHD/SWAP
(7)字节交换指令
(1) 以累加器A为目的操作数的指令

功能

把源操作数的内容送入累加器A
MOV MOV MOV A, Rn A, direct A, @Ri ;(A) ← (Rn) ;(A) ← (direct) ;(A) ← ((Ri))

格式

MOV
MOV
A, #data
A, #10H
;(A) ← #data
;(A) ← #10H

[例]

(2) 以Rn为目的操作数的指令

功能

把源操作数的内容送入当前工作寄存器区的R0~R7中的
某一个寄存器(由 RS1、RS0 确定)

格式


MOV
MOV MOV MOV MOV

MOVC
数据传送类指令一览表
Acc 累加器
1. 内部RAM数据传送
Direct 直接寻址 @Ri 间接寻址
Rn 寄存器
#data 立即数
(1)以累加器A为目的操作数的指令 (2)以Rn为目的操作数的指令


(3)以直接地址为目的操作数的指令
(4)以寄存器间接地址为目的操作数的指令
MOV


[例2] 若(A)= 092H

指令: 结果:
SWAP
A
(A)=____H 29
小结:片内(核内)数据传送指令
@Ri
MOV
A
MOV
Rn
M
MOV
M
OV
MOV
MOV
#data MOV DPTR
O
MO
V
V
MOV
direct
MOV
2. 访问外部RAM或I/O的数据传送

功能

CPU与外部RAM或I/O接口间传送数据

功能

把源操作数送入由R0或R1指出的存储单元

格式

MOV MOV MOV
@Ri, A @Ri, direct @Ri, #data
;((Ri)) ← (A) ;((Ri)) ← (direct) ;((Ri)) ← #data

Acc 累加器 [例] 若 (R1)=30H, (A)=20H,
常用的指令说明符号
符 号 含 义
Rn
Ri #data
表示当前选定寄存器组的工作寄存器R0~R7,n=0~7 表示作为间接寻址的地址指针R0~R1,i=0,1 表示8位立即数,即00H~FFH 表示16位立即数,即0000H~FFFFH
#datal6
addrl6
16位地址,可表示用于64K范围内寻址,用于LCALL和 LJMP指令中(216=64K)
Rn, A
Rn, direct Rn, #data Rn, @Ri × Rn, Rn ×
; (Rn) ← (A)
; (Rn) ← (direct) ; (Rn) ← #data
Acc 累加器

注意
Direct 直接寻址
相关文档
最新文档