第三章 MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述 3-2 MCS-51...

56
第第第 MCS-51 第第第第第第§3-1 MCS-51 第第第 第第 3-2 MCS-51 第第第第第第第第 §3-3 第第 第第第第 §3-4 第第第第第第第 §3-5 第第第第第第第第第第 §3-6 第第第第第第第 §3-7 第第第第第第第第第

description

第三章 MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述 3-2 MCS-51 单片机的寻址方式 §3-3 数据传送类指令 §3-4 算术运算类指令 §3-5 逻辑运算类及移位指令 §3-6 控制转移类指令 §3-7 布尔变量操作类指令. §3-1 MCS-51 指令系统概述 一、指令的概念 1 、指令的定义 指令是指挥计算工作的命令。一条指令就是计算机所能执行的一种基本操作描述。指令是计算机软件的基本单元。指令有两种基本表达形式:机器码指令和汇编语言指令。 2 、机器码指令与汇编语言指令 - PowerPoint PPT Presentation

Transcript of 第三章 MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述 3-2 MCS-51...

Page 1: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

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

§3-1 MCS-51 指令系统概述 3-2 MCS-51 单片机的寻址方式

§3-3 数据传送类指令 §3-4 算术运算类指令 §3-5 逻辑运算类及移位指令 §3-6 控制转移类指令 §3-7 布尔变量操作类指令

Page 2: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

§3-1 MCS-51 指令系统概述 一、指令的概念 1 、指令的定义 指令是指挥计算工作的命令。一条指令就是计算机所能执行的

一种基本操作描述。指令是计算机软件的基本单元。指令有两种基本表达形式:机器码指令和汇编语言指令。

2 、机器码指令与汇编语言指令 机器指令:用 2 进制代码(或十六进制数)表示的指令。

也常被称为目标代码。这种形式的指令(也只有这种形式的指令)能够被计算机硬件识别和执行。

汇编语言指令:为了便于记忆以及的程序的编写和阅读,用助记符表示的指令。汇编语言指令不能被计算机硬件直接识别和执行,必须通过某种手段(汇编)把它变成机器码指令才能被机器执行。汇编语言指令由此而得多。

二、 MCS-51 单片机指令格式: 1 、 汇编语言指令格式:

• [ 标号: ] 操作码 操作数(目的操作数,源操作数) [ ;注释 ]

Page 3: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

其中: 标 号:指令的符号地址,代表该指令第 1 字节所在的地址。一条语句

前是否要冠以标号,要根据程序的需要而定。当某条语句可能被调用或作为转移的目的地址时,通常要给该语句赋予标号,一旦某条语句被赋予了标号,则标号就可作为其它语句的操作数使用。

操作码:表示指令进行何种操作。用助记符形式给出。助记符一般为英语单词的缩写。

操作数:指令操作的对象。分为目的操作数和源操作数。任何指令的操作都是“从源操作数到目的操作数”,因此,目的操作数和源操作数的顺序不能颠倒。操作数可以是文字也可是数字(地址、数据),也可以是寄存器名等。也有的指令中为无操作数。

注 释:对指令功能的说明,便于程序的阅读和维护。它不参与计算机的操作,可有可无,但必须以“;”开始,写于指令的末尾。

2 、机器码指令的格式: 操作码 操作数(目的操作数,源操作数) 机器码指令按指令的字节长度划分,有单字节、双字节、多字节

指令。 单字节指令:只有一个字节的操作码,实际小操作数隐含在其中。 如: INC A 对应的机器码指令为 04 ,指令功能是将累加器中

的内容增加 1 。 双字节指令:一个字节的操作码,一个字节的操作数。 三字节指令:一个字节的操作码,两个字节的操作数。

Page 4: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

三、指令系统: 微处理器(包括单片机)所有指令的集合称为该机器的指令系统。指令

系统与计算机硬件逻辑电路有密切关系。它是表征计算机的重要指标。不同的微处理器的指令系统是不同的。同一系列不同型号的微处理的指令系统基本相同。

MCS-51 系列单片机使用 42 种助记符,有 51 种基本操作。通过助记符及指令中的源操作数和目的操作数的不同组合构成了 MCS-51 的 111 条指令。。

MCS-51 的指令系统按字节数分为:单字节指令 49 条,双字节指令 46条,三字节指令 16 条;按指令执行的周期划分:有 57 条一周期指令, 52 条两周期指令, 2 条四周期指令。当主频为 12MHz 时,单周期指令的执行时间为 1μs 。

MCS-51 指令系统中有一处理位变量的指令子集。这些指令在处理位变量时非常灵活、方便,使 MCS-51更适合于工业控制,这是 MCS-51 指令系统的一大特点。

四、指令系统说明: 1 、常用符号: Ri——选定当前寄存区的寄存器 R0-R7 。 @Ri:——通过寄存器 R0和 R1 的内容间接寻址片内 RAM 单元。 i为 0或 1 。 ( X):——表示 X地址中的内容 ((X)): ——由 X的内容作为地址的单元中的内容 ←:——数据传输的方向 $: ——当前指令的地址 / : ——位操作数前缀,表示取反。

Page 5: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

Direct : ——直接地址。一个内部 RAM 单元的地址或一个特殊功能寄存器。 #data16 :—— 8 位 16 位常数,亦称立即数, # 为立即数前缀。 Addr16 :—— 16 位目的地址。供转移或调用指令使用。 Addr11 :—— 11 位目的地址。供转移或调用指令使用。 rel :—— 8 位带符号偏移量(以二进制补码表示),常用于相对转移指令。 bit :——位地址。用于位操作指令。 : —— 数据交换 2 、汇编语言的数据形式 二进制( B): 0, 1 十进制( D): 0, 1~ 9 十六进制( H): 0, 1~ 9, A, B, C , D, E, F

§3-2 MCS-51 的寻址方式 返回 寻址方式:寻找操作数所在地址的方式。 MCS-51 指令系统的寻址方式有七种:立即寻址、寄存器寻址、

间接寻址、直接寻址、变址寻址、相对寻址和特定寄存器寻址。 1 、立即寻址 操作数以常数的形式出现,直接跟在操作码后面,以指令字节的形式存放在 ROM 中。

Page 6: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

例如: MOV A , #40H MOV DPTR , #TABLE ; TABLE 为标号地址 MOV P1 , #00000111B MOV R3 , #18 2 、寄存器寻址 由指令指出以某寄存器的内容为操作数。寄存器寻址方式使 用范围: ( 1 )内部 RAM 中的 32 个工作寄存器 R0~ R7 ; ( 2 ) A 、 B 、 C 、 DPTR ; 例如: INC R3 ;( R3 )←( R3 ) +1 ↑操作码 ↑操作数 指令中的 R3即为寄存器寻址。 对于 Rn:具体寄存器由指令的低 3 位指定。(对应的机器码) 对于 A、 B、 C 、 DPTR:则为隐含在指令代码中。

Page 7: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

3 、间接寻址 指令中指出某一个寄存器的内容为操作数的地址,以符号“@”表示。

其寻址范围: ( 1 )以 R0, R1 为地址指针,寻址内部 RAM 00 ~ 7FH 和外 RAM 的低 256B;

( 2 )以堆栈 SP为地址指针,寻址栈区单元; ( 3 )以 DPTR,或 R0、 R1 (须用 P2 指定高 8位地址)为地址指针,

寻址外部RAM 的 64KB空间和扩展 I/O口。 例: MOV A,@R0 ;( A)←(( R0)) PUSH ACC ;(( SP)) ←( A) MOVX A,@DPTR ;( A)←(( DPTR)) 4 、直接寻址 在指令中含有操作数的直接地址,该地址指出了参与运算的数所在的

字节单元地址或位地址(位寻址)。直接寻址的寻址范围: ( 1 )内部数据存储器的低 128字节, 00H~ 7FH; ( 2 )特殊功能寄存器,注意除 A、 B、 DPTR 外,其他 SFR只能采用

直接寻址方式。 ( 3 )位寻址:所有可寻址位; 例如: MOV A, 70H ;( A)←( 70H)

Page 8: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

MOV C , 70H ;( CY )←( 70H ) 注意: ( 1 )注意直接寻址与寄存器寻址的区别。当累加器写作“ A” 时,指寄存器寻

址;当它写作“ ACC” 时,则为直接娃寻址。 ( 2 )注意字节地址和位地址的区别。在指令“ MOV A , 20H” 中, 20H 是

字节地址,表示将 20 单元的内容传送至累加器,而在指令“ MOV C , 20H” 中,20H 是位地址,它是 24 单元中的 D0 位,表示将该位的状态送至进位位。可见二者的区别是在于指令的形式不同,在位指令中出现的位地址是直接地址。

5 、变址寻址 以 16 位寄存器( PC 、 DPTR )作为基址寄存器,加上地址偏移量(累加器

A 中的位无符号数)形成操作数的地址。 变址寄存方式有两种: ( 1 )以程序计数器当前值为基址( PC 当前值:即本条指令的首地址,下

同),例如指令: MOVC A , @A+PC ;( PC ) ←( PC ) +1,(A) ←((A)+(PC)) 指令执行时 ,先使 PC 指向下一条指令地址 ,然后再与累加器内容相加形

成 16 位地址,访问程序存储器(表格)。 ( 2 )第二类变址寻址以数据指针 DPTR 为基址,以数据指针内容和累加器内

容相加形成变址地址。如: MOV DPTR , #2345H ;( DPTR ) =2345H MOV A , #10H ;( A ) =10H MOVC A , @A+DPTR; ( A ) = ( 2355H )

Page 9: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

变址寻址方式专用于程序存储器的访问,不能访问数据据 RAM ,这类指令均为单字节指令。

6 、相对寻址 指令中给定地址的相对偏移量 rel ,以 PC 当前值为基地址,加上 rel 所

得结果为转移目标地址。 偏移量 rel :符号数,单字节补码, -128~ +127 。 计算方法:(目的地址 - 源地址 - 指令字节数)的补码。 例如: 1000H : JC , 93H ;判 C 转移指令, 2 字节,机器码为: 4

0 93 。 分析:当 CY=1 时,转移,过程如下图所示:

Page 10: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

7 、特定寄存器寻址 累加器 T 和数据指针 DPTR 这两个使用最频繁的寄存器又称为特定寄

存器。对特定寄存器的操作指令,不再需要指出其它的地址字节,指令码本身隐含了操作对象 A 或 DPTR 。例如:

CPL A ;累加器内容取反 SWAP A ;累加器高低半字节内容交换 INC A ;数据指针内容加 1 综上所述,寻址方式与存储器结构有密切关系。一种寻址方式只适合于对一部分存储器进行操作,在使用时要加以注意。

§3-3 数据传送类指令 返回 最基本、最主要的指令,共有 29 条,包括数据传送、数据交换、栈

操作三类。目的单元为 A 时影响 P 标志。 一、内部 RAM 间的数据传送( 16 条) 1 、指令格式 指令格式: MOV [ 目的操作数 ] , [ 源操作数 ] 功 能:把源操作数传送到目的操作数中,源操作数内容不变。 2 、操作数 操作数: A , Rn , direct , @Ri , DPTR , #data

Page 11: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

3 、指令描述举例: 以 A 为目的操作数 MOV A , Rn ;( A )←( Rn ) 其执行过程为(设( Rn ) =30H )

• 以 Rn 为目的操作数 MOV Rn , direct ;( Rn )←( direct ) 其执行过程为:(设, direct=50H ,( 50H ) =30H )

Page 12: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

以 direct 为目的操作数MOV direct1 , direct2 ;( direct1 )←( direct2 )

MOV direct , @Ri ;( direct )←(( Ri ))以 @Ri 为目的操作数

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

16 位数据传送指令MOV DPTR , #data16 ;高 8 位送 DPH ,低 8 位送 D

PL传送过程与前面的指令相同。

例 3-1 :设( 70H ) = 60H ,( 60H ) =20H , P1 为输入口,状态为 0B7H ,执行如下程序:

MOV R0 , #70H ; (78H 70H) MOV A , @R0 ; (E6H) MOV R1 , A ; (F9H) MOV B , @R1 ; (87H F0H) MOV @R0 , P1 ; (A6 90H)

结果: ( 70H ) = 0B7H( B ) = 20H( R1 ) = 60H( R0 ) = 70H

Page 13: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

例 3-2 :给出下列指令的执行结果,指出源操作数的寻址方式。 MOV 20H , #25H MOV 25H , #10H MOV P1 , #0CAH MOV R0 , #20H MOV A , @R0 MOV R1 , A MOV B , @R1 MOV @R1 , P1 MOV P3 , R1 结果: ( 20H ) =25H ,( 25H ) =10H , ( P1 ) =0CAH , ( R0 ) =20H , ( A ) =25H , ( R1 ) =25H , ( B ) =10H , ( 25H ) =0CAH ,( P3 ) =25H 二、 ACC 与外部数据存储器(或扩展 I/O 口)传递数据 MOVX 1 、指令格式: MOVX A , @DPTR MOVX A , @Ri MOVX @DPTR , A MOVX @Ri , A 2 、功能: A 与外部 RAM 或扩展 I/O口数据的相互传送

Page 14: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

说明: ( 1 )用 Ri 进行间接时只能寻址 256 个单元( 0000H~00FF ),当访问超过 25

6 个字节的外 RAM空间时,需利用 P2口确定高 8 位地址(也称页地址),而用DPTR 进行间址可访问整个 64KB空间。

( 2 )在执行上述读、写外 RAM 指令时, P3.7 ( RD )、 P3.6 ( WR )会相应自动有效。

( 3 )可用作为扩展 I/O口的输入 /输出指令。 例 3-3 :将外 RAM 2010H 中内容送 外 RAM 2020 单元中。 分析: 读 2010H 中 内 容→ A→ 写 数 据→ 2020H

程序如下: MOV P2 , #20H ;输出高 8 位地址 MOV R0 , #10H ;置读低 8 位间接地址 MOVX A , @R0 ;读 2010H 中数据 MOV R1 , #20H ;置写低 8 位间接地址 MOVX @R1 , A ;将 A 中数据写入 2020H 中,其执行过程如图所示。

Page 15: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

三、查表指令 MOVC 表格:程序存储器除存放程序外,还可存放一些常数,这种数据的结构称

为表格。 访问:通过两条程序存储器取数指令,即查表指令来访问,完成从 ROM

中读数,并只能送累加器 A 。 1 、指令格式: MOVC A , @A+DPTR ;( A )←(( A ) + ( DPTR )) MOVC A , @A+PC ;( PC )←( PC ) +1 ,( A )←(( A ) +

( PC )) 2 、功能: 以 DPTR 、 PC 为基地址,与 A 中的 8 位无符号数相加,得到一个新

16 位地址,将其内容送 A 。特点:单字节指令,源操作数为变址寻址,执行时, PSEN会自动有效。

( 1 )用 DPTR 作为基寄存器 例 3-4 :设外部 ROM 的 2000H 单元开始的连续 10 个字节中已存放有 0

~9 的平方数,要求根据 A 中的内容( 0~9 )来查找对应的平方值。 START : MOV A , #3 MOV DPTR , #TABLE

MOVC A , @A+DPTR ;查表

Page 16: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

ORG 2000H

TABLE : DB 0 , 1 , 4 , 9 , 25 2003 单元内容 DB 36 , 49 , 64 , 81

结果 ( A ) =09H

特点:可访问整个 ROM 的 64KB空间,表格可放在 ROM 的任何位置,与 MOVC 指令无必然的关系。

( 2 )用 PC 作为基寄存器 例 3-5 : ORG 1000H 1000H MOV A , #30H ; 1002H MOVC A , @A+PC ; 结果是: A ← ( 1033H ),因为在执行该指令时, PC=1003

H 。• 优点:不改变 PC 的状态,根据 A 的内容取表格常数。

Page 17: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

缺点: ( 1 )表格只能存放在查表指令以下的 256 个单元内。 ( 2 )当表格首地址与本指令间有其他指令时,须用调整偏移量,

调整量为下一条指令的起始地址到表格首址之间的字节数。 例 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’ 结果:( A ) =99H ,显然, 2 条 NOP 指令没有时,不需调整。 四、堆栈操作 堆栈,由特殊功能寄存器 SP ( 81H )管理,始终指向其栈顶

位置,栈底视需要设在内部 RAM低 128B 内。

Page 18: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

1 、指令格式 ( 1 )进栈操作: PUSH direct ( 2 )出栈操作: POP direct 2 、功能 ( 1 )先执行( SP ) ←( SP ) + 1 ,再(( SP ))←( dir

ect ); 其中: direct 为源操作数;目的操作数为 @SP ,隐含。 ( 2 )先执行( direct )←(( SP )),再 SP ← ( SP )- 1 其中: direct 为目的操作数,源操作数为 @SP ,隐含。 例 3-7 :已知:( A ) =30H ,( B ) =70H 执行: MOV SP , #60H ;设栈底 PUSH ACC ; PUSH B 结果:( 61H ) =30H ,( 62H ) =70H ,( SP ) =62H ,执

行过程如图所示:

Page 19: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

例 3-8 :已知:( SP ) =62H ,( 62H ) =70H ,( 61H ) =30H 执行: POP DPH

POP DPL 结果:( DPTR ) =7030H ,( SP ) =60H 其执行过程如图所示:

Page 20: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

五、与 A 的数据交换指令 数据交换指令共 5 条,完成累加器和内部 RAM 单元之间的字节

或半字节交换。 ( 1 )整字节交换: XCH A , Rn ;( A )←→( Rn ) XCH A , direct ;( A )←→( direct ) XCH A , @Ri ;( A )←→(( Ri )) ( 2 )半字节交换: XCHD A , @Ri ;( A ) 0~3←→ (( Ri )) 0~3

( 3 )累加器自身高低 4 位交换 SWAP A ;( A ) 7~4←→ ( A ) 3~0

其工作过程如下 :

Page 21: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

例 3-9 设( A ) =57H ,( 20H ) =68H ,( R0 ) =30H ,( 30H ) =39H ,

求下列指令的执行结果 ( 1 ) XCH A , 20H ; 结果:( A ) =68H ,( 20H ) =57H ( 2 ) XCH A , @R0 ; 结果: ( A ) =39H ,( 30H ) =57H ( 3 ) XCH A , R0 结果: ( A ) =30H ,( R0 ) =57H ( 4 ) XCHD A , @R0 ; 结果: ( A ) =59H ,( 30H ) =37H ) ( 5 ) SWAP A ; 结果: ( A ) =75H

Page 22: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

例 3-10 :设内部 RAM 40H 、 41H 单元中连续存放有 4 个压缩的 BCD 码数据,试编程序将这 4 个 BCD 码倒序排列。

分析:过程如下图所示 . 程序如下: MOV A , 41H SWAP A XCH A , 40H SWAP A MOV 41H , A

Page 23: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

§3-4 算术运算类指令 返回 MCS-51 单片机算术运算类指令包括+、-、 × 、 ÷ 、加 1 、减 1 、十

进制调整指令,共有 24 条,一般影响 PSW 中的 CY 、 AC 、 OV 、 P标志位。

一、加减法指令 1 、指令助记符: ADD ADDC SUBB 2 、操作数: 以 A 为目的操作数,如右图

Page 24: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

3 、指令描述举例: 不带进位加法 ADD 4 条 ADD A, Rn ;( A) ←( A) +( Rn) 带进位加法指令 ADDC 4 条 ADDC A, direct ;( A) ←( A) +( direct) +( C

Y) 带进位减法指令 SUBB 4 条 SUBB A,@Ri ;( A)←( A) - (( Ri)) - ( C

Y) SUBB A, #data ;( A)←( A) - #data - ( CY) 例 3-11 :设( A) =D3H,( 30H) =E8H 执行: ADD A, 30H 1101 0011 ( D3 ) +) 1110 1000 ( E8) 1 1011 1011 结果: CY=1 , AC=0, P=0, OV=0,( A) =BBH (补码真值 -69,正确)。

Page 25: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

例 3-12 :设( A ) =88H ,( 30H ) =99H , CY=1

执行: ADDC A , 30H 1000 1000 ( 88H ) 1001 1001 ( 99H ) + ) 1 10010 0010

结果: CY=1 , AC=1 , P=0 , OV=1 ,( A ) =22H

例 3-13 :设( A ) =49H , CY=1 , 执行: SUBB A , #54H 0100 1001 ( 49H ) 0101 0100 ( 54H ) - ) 1 1111 0100 (借位 1 ) 结果: CY=1 , AC=0 , P=0 , OV=0 ,( A ) =F4H

Page 26: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

例 3-14 :试编制 4 位十六进制数加法程序,假定和数超过双字节 ( 21H20H ) + ( 31H30H )→ 42H41H40H

分析:先低字节作不带进位求和,再作带进位高字节求和。 流程图(略),程序如下: MAIN : MOV A , 20H ADD A , 30H MOV 40H , A MOV A , 21H ADDC A , 31H ;带低字节进位加法 MOV 41H , A MOV A , #00H ;准备处理最高位

MOV ACC.0 , C MOV 42H , A SJMP $

Page 27: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

二、加 1 减 1 指令 1 、助记符: INC DEC 2 、操作数: A , direct , @Ri , Rn , DPTR 3 、指令描述: (不影响 PSW ,即使有进位或借位, CY 也不变,除 A影响 P

标志) ( 1 ) INC :加 1 5 条 INC A ;( A ) ←( A ) +1 INC Rn ;( Rn ) ←( Rn ) +1 INC @Ri ;(( Ri )) ←(( Ri )) +1 INC direct ;( direct ) ←( direct ) +1 INC DPTR ;( DPTR ) ←( DPTR ) +1 ( 2 ) DEC :减 1 4 条 DEC A ;( A ) ←( A )— 1 DEC Rn ;( Rn ) ←( Rn )— 1 DEC @Ri ;(( Ri )) ←(( Ri ))— 1 DEC direct ;( direct ) ←( direct )

Page 28: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

例 3-15 :编制下列减法程序,要求: ( 31H30H )—( 41H40H )→ 31H30H 分析:流程图(略),程序如下: MAIN : CLR C ` ; CY清零 MOV R0 , #30H MOV R1 , #40H MOV A , @R0 SUBB A , @R1 MOV @R0 , A ;存低字节 INC R0 ;指向 31H INC R1 ;指向 41H MOV A , @R0 SUBB A , @R1 MOV @R0 , A ;存高字节 ` HERE : SJMP HERE ;结束

Page 29: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

三、十进制调整指令 1 、格式: DA A 2 、功能: 指令用于两个 BCD 码加法运算的加 6修正,只影响 CY 位。 3 、指令的使用条件: ( 1 )只能紧跟在加法指令( ADD/ADDC )后进行 ( 2 )两个加数必须已经是 BCD 码 ( 3 )只能对累加器 A 中结果进行调整 加 6修正的依据:由 CPU判 CY 、 AC 是否 =1? A 中的高、低 4 位是否大于 9?

例如:( A ) =56H ,( R5 ) =67H ,( BCD 码)执行: ADD A , R5 DA A 结果:( A ) =23H ,( CY ) =1 例 3-16 :试编制十进制数加法程序(单字节 BCD 加法),假定和数为单

字节,要求: ( 20H ) + ( 21H )→ 22H 程序如下: MOV R0 , #20H MOV A , @R0 INC R0

Page 30: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

ADD A, @R0 DA A INC R0 MOV @R0, A 分析:流程如图

Page 31: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

例 3-17 :十进制减法程序(单字节 BCD 数减 法)要求:( 20H )—( 21H ) → 22H 分析:主要要考虑到, DA A 只能对加法调整, 故必须先化 BCD减法为加法做,关键为求两 位十进制减数的补码 ( 9AH-减数)流程如右 图,程序如下: CLR C MOV R0 , #20H MOV R1 , #21H MOV A , #9AH SUBB A , @R1 ;求补 ADD A , @R0 ;求差 DA A INC R1 MOV @R1 , A ;存结果

Page 32: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

四、乘除法指令 唯一两条单字节 4 机器周期的指令。 1 、 8 位无符号数乘法指令 MUL AB ;( B 15~8 )( A7~0)←( A)( B) PSW: 1 )若乘积大于 256 , OV=1 ;否则 OV=0; 2 ) CY 总是清“ 0” 。 例如:( A) =50H,( B) =A0H,执行 MUL AB后

结果:( B) =32H,( A) =00H,( OV) =1 2 、 8 位无符号除法指令 DIV AB ; ( A )←( A/B )的

(商) ( B )←( A/B ) 的

(余数) PSW: 1 ) CY、 OV,清“ 0” 2 )若( B) =0, OV=1 。 例如:( A) =2AH,( B) =05H,执行 DIV AB后

结果:( A) =08H,( B) =02H,( OV) =0 例 3-18 :双字节乘法程序,要求:

( R0R1 )×( R2 )→R3R4R5 分析:设( R0) =J,( R1 ) =K,( R2 ) =L,

Page 33: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

MOV A, R1 MOV B, R2

MUL AB MOV R5 , A

MOV R4 , B MOV A, R0

MOV B, R2 MUL AB ADD A, R4 MOV R4 , A MOV A, B ADDC A, #00H MOV R3 , A 例 3-19 :编制将 A 中的数转换成三位 BCD 码程序,百位放在 20H ,十位、个位放在 21H 中。

分析:( A ) /100→商(百位) →( 20H ); 余数 /10 →商(十位)→( 21H ) 7~4 ; 余数 (个位)→( 21H ) 3~0 ;

Page 34: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

流程如右图,程序如下: MOV B , #100 DIV AB MOV 20H , A MOV A , B MOV B , #10 DIV AB SWAP A ADD A , B MOV 21H , A SJMP $

Page 35: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

§3-5 逻辑运算及移位指令 逻辑运算类指令共 24 条,涉及 A时,影响 P 标志。

一、 基本与、或、异或运算指令 ( 1 )指令助记符: ANL 、 ORL 、 XRL ( 2 )操作数:如下图

Page 36: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

3 、指令描述举例: 逻辑“与”指令 6 条 ANL A , Rn ;( A )←( A )∧( Rn ) ANL A , direct ;( A )←( A )∧( direct ) 逻辑“或”指令 6 条 ORL A , @Ri ;( A )←( A )∨(( Ri )) ORL A , #data ;( A )←( A )∨ data 逻辑“异或”指令 6 条 XRL direct , A ;( direct )←( direct )⊕( A ) XRL direct , #data ;( direct )←( direct )⊕ data 当用于修改输出口( P0~ P3 )时, direct 指口锁存器的内容而不

是端口引脚电平。 二、 对 A 简单逻辑指令 1 、清零与取反 CLR A ;清 0 CPL A ;求反 2 、循环移位指令 RL A ; RLC A ; RR A ;

Page 37: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

RRC A ; 例 3-20 :按要求编程,完成下列各题: 1 )选通工作寄存器组中 0区为工作区。 2 )利用移位指令实现累加器 A 的内容乘 6 。 3 )将 ACC 的低 4 位送 P1口的低 4 位, P1口的高 4 位不变。 解: 1 ) ANL PSW , #11100111B ; PSW 的 D4 、 D3 位为 00 2 ) CLR C RLC A ;左移一位,相当于乘 2 MOV R0 , A CLR C RLC A ;再乘 2 ,即乘 4 ADD A , R0 ;乘 2 + 乘 4 = 乘 6 3 ) ANL A , #0FH ;高 4 位屏蔽(清 0 ) ANL P1 , #F0H ; P1低 4 位清 0 ORL P1 , A ;( P1.3~1.0 )←( A3~0 )

Page 38: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

例 3-21 :设在外 RAM 2000H 中放有两个 BCD 数,编程,使这 两个 BCD 码分别存到 2000H 和 2001H 的低 4 位中。 分析:流程如图 程序如下: MOV DPTR , #2000H MOVX A , @DPTR MOV R0 , A ANL A , #0FH MOVX @DPTR , A MOV A , R0 ANL A , #0F0H SWAP A INC DPTR MOVX @DPTR , A

Page 39: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

§3-6 控制转移指令 转移类指令都是用来改变程序计数器 PC 的值,使 PC 有条件、或者无

条件、或者通过其它方式,从当前位置转移到一个指定的地址单元去,从而改变程序的执行方向。

转移指令分为四大类:无条件转移、条件转移、调用指令及返回指令。 一、无条件转移指令

Page 40: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

指令执行时,注意其工作过程。 例如:有一指令本身位于 1000H 开始的单元中,要求跳转到 2345H取

指令执行程序 LJMP 2345H 机器指令为: 12 34 56 其执行过程为:

Page 41: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

无条件转移应用举例: 1 ) 1030H: AJMP 100H ;机器码为 2100H 目的地址: PC=1032H的高 5 位 +100H的低 11 位 =00010+00100000000 = 1100H 2 ) 0000H: AJMP 40H ;程序转移到 0040H 3 ) 1100H: SJMP 21H ;目标地址为 1123H 4 ) 1000H: SJMP NEXT ;目的地址 NEXT=1020H 则:相对地址 rel =1EH(补码数) 5 ) 0060H: SJMP FEH ;原地踏步指令

目的地址: PC =( PC ) + 2 + FEH =0060H +2 +FFFEH = 0060H 6 ) 0000H: LJMP 0030H ; 例 3-22 :执行下面的散转程序,程序将根据 A 中的内容(命令编号 0~

9 )转相应的命令处理程序。 ORG 1000H START : MOV R1 , A RL A ;乘 2 ADD A , R1 ;完成偏移量 A = ( A )

×3 MOV DPTR , #TABLE ;设定表格首地址

Page 42: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

JMP @A+DPRT TABLE: LJMP COMD0 ┇ LJMP COMD9 COMD0: ┇ COMD9: END 由于 LJMP占 3 个字节,因此,变址寄存器必须乘 3 。 二、条件转移指令 根据某种条件判断转移的指令,执行时: 条件满足时,转移执行; 条件不满足时,顺序执行; 目的地址:( PC ) =( PC ) + 指令字节数( 2 或 3 ) + rel 包括判A、判Bit、判 C 三种,共有 7 条: 1 、判A转移, 2 字节 JZ rel ;条件:( A) = 0 JNZ rel ;条件:( A)≠ 0

Page 43: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

2 、判Bit转移, 3 字节 JB bit, rel ;条件:( bit) = 1 JNB bit, rel ;条件:( bit) = 0 JBC bit, rel ;条件: (bit) = 1 转移,并清 bit位 例如:设P1 为输出口,执行下列程序,指出功能: ( 1 ) MOV C , 00H ORL C , 01H MOV P1.7 , C ( 2 ) MOV P1 , #00H LOOP: SETB P1.0 LCALL DELAY CLR P1.0 LCALL DELAY AJMP LOOP ( 3 ) LOOP: SETB C RLC A MOV P1 , A LCALL DELAY JNB ACC.7 , LOOP

Page 44: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

3 、判 C 转移, 2 字节 JC rel ;条件:( C ) = 1 JNC rel ;条件:( C ) = 0 例 3-23 利用 P1.0、 P1.1 作为外接发光二极管的启停按钮, P1.2 作为外接发光二极管端,试编制控制程序。

Page 45: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

程序如下: START: MOV P1 , #03H ;作 P1口输入时先置 1 WT1 : JB P1.0,WT1 SETB P1.2 WT2 : JB P1.1 ,WT2 CLR P1.2 SJMP WT1 三、比较不相等转移指令 CJNE A, direct, rel; CJNE A, #data, rel; CJNE Rn, #data, rel; CJNE @Ri, #data, rel; 执行时: 1 )两操作数相等,顺序执行,且 CY=0。 2 )两操作数不相等,转移执行,且对于无符号数若:

第一操作数<第二操作数, CY=1 ,否则 CY清“ 0” 。 目的地址:( PC ) = ( PC ) + 指令字节数 3 + rel

例如:下图所示的比较判断,可利用 CJNE和 JC 指令来完成。

Page 46: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

例 3-24 :内部RAM 30H开头的 20个 连续单元中,存放有 20个数,统计 等于 8的单元个数,结果放在 R2 中。 分析:取一个数与 8比较,相等 R2 加 1 ,不相等跳过。并作 20次重复 即可。 流程如右图,程序如下: ORG 1000H START: MOV R0, #30H MOV R7 , #20 MOV R2 , #0 LOOP: CJNE @R0, #08H, NEXT INC R2 NEXT: INC R0 DJNZ R7 , LOOP SJMP $

Page 47: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

四、减“ 1” 不为 0 转移指令 又称循环转移指令,主要用来构成循环结构,有 2 条: DJNZ Rn, rel ; 2 字节指令, 2 周期指令 DJNZ direct, rel ; 3 字节指令, 2 周期指令 目的地址:( PC ) = ( PC ) + 指令字节数 2 或 3 + rel 例 3-25 :利用 DJNZ指令设计循环延时程序,已知 fosc=12MHz 1 ) 单循环延时 DELAY: MOV R7 , #10 DJNZ R7 , $ △t=2us×10+1=21us 2 ) 双重循环延时 DELAY: MOV R7 , #0AH DL: MOV R6 , #64H DJNZ R6 , $ DJNZ R7 , DL △t=( 2us×100+2+1 )×10+1=2031us 3 ) 三重循环延时 DELAY: MOV R7 , #10 DL2 : MOV R6 , #200 DL1 : MOV R5 , #250

Page 48: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

DJNZ R5 , $ DJNZ R6 , DL1 DJNZ R7 , DL2 △t=(( 2us×250+2+1 )×200) +2+1 )×10+1 = 1006031us ≈ 1 秒 程序流程图如右图所示。 例 3-26 P1口控制发光二极管,延时节日灯组合。 LOOP: MOV P1 ,# 0AAH ;灯光 1 ACALL DELAY MOV P1 ,# 055H ;灯光 2 ACALL DELAY SJMP LOOP DELAY: MOV R7 , # 0FFH DL1 : MOV R6 , # 0FFH DL2 : NOP ;空操作 DJNZ R6 ,DL2 DJNZ R7 , DL1 RET

Page 49: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

五、调用指令与返回指令 1 、主程序和子程序结构 2 、 调用和返回 子程序是独立于主程序的具有特定功能的程序段,单独编写,能被主

程序调用,又能返回主程序。按两者的关系有两种调用情况,多次调用和子程序嵌套,如图所示。

3 、堆栈和 PC值的保留 调用子程序时, CPU自动将当前 PC值保留在堆栈中,其中高位放在 P

CH,子程序返回时,自动弹出,送入PC 。 4 、现场保护和恢复现场 现场保护 : 是指将需要保护的单元内容,在子程序的开始使用压栈指令

存放在堆栈中的过程。 恢复现场 : 是指在子程序返回前,通过出栈指令,将被保护内容送回原来的寄存器。

5 、调用与返回指令 ( 1 )短调用指令 : ACALL addr11 执行时 : 1 )( PC ) + 2 → PC ,并压入堆栈,先 PCL,后 PCH;

Page 50: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

2 ) PC15~ 11 a10 ~ 0 → PC ,获得子程序入口地址; 3 )转移范围同 AJMP。 ( 2 )长调用指令 LCALL addr16 执行时: 1 )( PC ) + 3 → PC ,并压入堆栈,先PCL,后PCH; 2 ) addr16 → PC ,获得子程序起始地址; 3 )可调用 64K地址范围内的任意子程序。 例如:已知( SP) =60H,执行下列指令后的结果: ①1000H: ACALL 100H ②1000H: LCALL 0800H 结果: ①: ( SP) =62H,( 61H) =02H,( 62H) =10H, ( PC ) =1100H ② : ( SP) =62H,( 61H) =03H,( 62H) =10H, ( PC ) =0800H ( 3 )子程序返回指令 RET 、中断返回指令 RETI RET :从堆栈中退出 PC 的高位和低位字节,栈指针减 2 ,即: 1 )( PCH)←(( SP)), ( SP)←( SP) - 1 ; 2 )( PCL) ←(( SP)), ( SP)←( SP) - 1 ; RETI :从堆栈中退出 PC 的高位和低位字节,栈指针减 2 ,同 时清除中断优先,开放低级中断。

Page 51: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

注意:程序调用指令必须与 RET返回指令配合使用,否则,由于原地址的保护,会使堆栈操作出现错误。

如:在 1000H 开始的单元中放有 LCALL LOOP 指令, LOOP 标号的子程序的入口地址为 3000H ,返回指令位于 3050H 中。

调用指令与返回指令的执行过程如下:

Page 52: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

六、空操作指令 NOP ;( PC )←( PC ) +1 空操作指令是一条单字节单周期指令,控制 CPU 不做任何操作,只

作时间上的消耗,因此常用于程序的等待或时间的延迟。 例 2-27 设计节日灯,通过 P1.0 ~ P1.7 控制 8个发光二极管, 先亮 1灯,隔 1秒闪烁 10次,然后左移 1 位闪 10次,如此循环。 分析:流程图如右图所示,程序如下: MAIN: MOV A, #01H LOOP1 : MOV R2 , #10 LOOP2 : MOV P1 , A ACALL DELAY MOV P1 , #00H ACALL DELAY DJNZ R2 , LOOP2 RL A AJMP LOOP1 DELAY: 1秒延时子程序(略) RET

Page 53: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

§3-7 布尔变变量操作类指令 布尔处理器 C ,可寻址内部 RAM 中的可寻址位: bit = 00~ FFH ,和 SFR 中的可寻址位。 位地址的描述形式: ( 1 )直接位地址,如 MOC C , 70H ( 2 )字节地址 + 位地址,如 20H.1 , ACC.4 , PSW.4 等 ( 3 )位寄存器名称,如 F0 , C , RS1 , RS0 等 ( 4 )伪指令定义过的位名称 注意: CY---- 直接地址,是位寻址; C ---- 位寄存器,为寄存器寻址。 例如: CLR CY ;机器码 C2 D7H CLR C ;机器码 C3H 一、位传送指令 MOV C , bit MOV bit, C 例如: MOV C , 06H MOV P1.0, C 二、位变量修改指令 CLR C ;( C ) ←0 CLR bit ;( bit) ←0

Page 54: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

CPL C ;( C ) ←( /C ) CPL bit ;( bit)←( /bit ) SETB C ;( C ) ← 1 SETB bit ;( bit)← 1 例如: SETB P1.0 三、位变量逻缉“与”指令 ANL C , bit ;( C )←( C )∧( bit) ANL C , / bit ;( C )←( C )∧( /bit) 例如:设P1 为输入口, P3 为输出口,执行程序 MOV C , P1.0 ANL C , P1.1 ANL C , /P1.2 MOV P3.0, C 结果: P3.0 = P1.0 ∧ P1.1 ∧ /P1.2 。 四、位变量逻缉“或”指令 ORL C , bit ;( C )←( C )∨( bit) ORL C , / bit ;( C )←( C )∨( /bit)

Page 55: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

例 3-28 将位地址 40H、 41H中的内容进行异或,结果存入 42H中。 分析:运算公式: Y= A⊕B=( 42H) =( 40H)⊕( 41H) 程序如下: MOV C , 41H ANL C , /40H MOV 42H, C MOV C , 40H ANL C , /41H ORL C , 42H MOV 42H, C

Page 56: 第三章  MCS-51 单片机指令系统 §3-1 MCS-51 指令系统概述   3-2 MCS-51 单片机的寻址方式 §3-3  数据传送类指令    §3-4  算术运算类指令

本章小结 1 、基本概念、寄存器寻址、寄存器间接寻址、直接寻址、

位寻址、基寄存器加变址寄存器间接寻址。 2 、数据传送指令、算术运算指令、逻缉运算指令、位操作

指令、控制转移指令 重点:寻址方式和指令系统,简单程序阅读 难点:寻址方式,控制转移指令中相对地址计算,堆栈操作,

以及简单汇编程序阅读