第3章 MCS-51单片机指令系统 3.1 指令概述 3.2 寻址方式 3.3 MCS-51系列单片机的指令系统.

Slides:



Advertisements
Similar presentations
第7章 AT89S51单片机的 串行口 1.
Advertisements

本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
第四章 指令系统及汇编语言程序设计.
8051 指令.
第4章 MCS-51程序设计 4.1 汇编语言的格式与伪指令 4.2 汇编语言程序设计步骤 4.3 查表程序设计 4.4 循环程序设计
第四章 指令系统及汇编语言程序设计.
本章分为四节,主要介绍: 4.1 程序编制的方法和技巧 4.2 源程序的编辑和汇编 4.3 基本程序结构 4.4 常用程序举例.
项目2 2个LED发光二极管控制 知识与能力目标 熟悉单片机的I/O口功能与特性。
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
本章小结 C51单片机指令系统概述 C51单片机寻址方式 C51单片机指令系统
第3章 MCS-51指令系统 3.1 简 介 指令概述 一台微机所具有的所有指令的集合,就构成了指令系统。指令系统越丰富,说明CPU的功能越强。例如,Z80 CPU中,没有乘法和除法指令,乘法和除法运算必须用软件来实现,因此执行速度相对较慢;而MCS-51单片机提供了乘法和除法指令,实现乘法和除法运算时就要快得多。
单片机原理与应用.
第2章 MCS-51单片机指令系统与汇编语言程序设计
第2章 汇编语言与汇编程序 ——8086/8088指令系统 mov ax,12h call display Jmp 1234h.
单片机原理与应用.
報告者:朱耿育 紀翔舜 組員:詹以群 張永傑 指導老師:梁新潁
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
第二部分 微机原理 第4章 汇编语言 程序设计 主讲教师:喻红.
单片机应用技术 项目一 循环彩灯装置 第6讲 指令功能及汇编语言程序设计(一) 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
第四章 指令系统及汇编语言程序设计.
本章分为七节,主要介绍: 3.1 指令格式及常用符号 C51的寻址方式 3.3 数据传送类指令(29条) 3.4 算术运算类指令(24条)
第二部分 微机原理 第3章 MCS-51的 指令系统 主讲教师:喻红.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第3章 AT89C51指令系统 3.1基本概念内部结构和引脚功能 指令、指令系统、机器代码
第四章 指令系统及汇编语言程序设计.
逻辑运算类指令 包括与、或、非、异或、清0及移位等共24条;一般不影响PSW中的标志位;助记符有:ANL、ORL、XRL、RL、RLC、RR、RRC、CLR和CPL共9种。 一、逻辑与指令 ANL A,Rn ;A←(A)∧( Rn) ANL A,direct;A←(A)∧(direct)
单片机原理及应用 MCS-51系列单片机的基本硬件结构 MCS-51指令系统 MCS-51单片机的系统扩展与应用.
单片机原理及应用 ——基于Proteus与Keil C 哈工大出版社
4.A/D与D/A转换器 1).DAC0832与MCS-51接口
第2章 单片机的结构原理与 简单应用 (课时:10学时).
第八章 MCS-51与数码显示器和键盘的接口 一、MCS-51与数码显示器接口 数码显示器是单片机应用产品中最常用的廉价的输 出设备,它由8个发光二极管按一定规律排列而成, 当某一发光二极管导通时,则会被点亮,控制不同 组合的二极管导通,就能显示出各种字符。 1.显示器的结构.
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
单片机原理 单 片 机 单片机接口技术 单片机应用技术.
第三章 指令系统.
第3章 指令系统及程序设计举例 3.1 指令格式与寻址方式 一、指令格式 1. 指令 操作码 目标操作数,源操作数
第10章 综合实训 课题一 水温控制系统设计 一、实训目的 二、课题要求 熟悉常用温度传感器AD590的特性及接口电路的设计方法;
第2章 单片机系统组成原理 2.1 MCS-51单片机组成原理 2.2 单片机复位电路设计 2.3 MCS-51存储器配置
6.1 输入/输出 6.2 CPU与外设数据传送方式 6. 3 MCS-51中断系统 6. 4 中断应用举例
本 章 重 点 单片机的结构特点 单片机的存储器特点 I/O端口的特点 CPU时序 课时安排:3个课时.
第四章 指令系统及汇编语言程序设计.
第四章 指令系统及汇编语言程序设计.
单片机系统设计 教师:朱华贵 2016年03月01日
数码管数字时钟电路的设计 1. 系统硬件电路的设计
第3章 MCS-51指令系统 介绍MCS—51系列单片机的寻址方式 介绍MCS—51系列单片机的指令系统
第4章 80C51系列指令系统 教学目的:熟悉80C51系列单片机的寻址方式及 每一种寻址方式对应的寻址空间;掌 握每一条指令功能。
第3章 MCS-51的指令系统 介绍MCS-51汇编语言的指令系统。 3.1 指令系统概述
本章内容 MCS-51单片机指令系统的格式 MCS-51单片机寻址方式 指令系统的分析
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
CPU中的专用寄存器(SFR) 一、累加器Acc 二、通用寄存器B 三、程序计数器PC 四、堆栈指针SP 五、数据指针DPTR
第五讲:AT89C51单片机存储器结构 一、半导体存储器 二、存储器空间划分方法 三、数据存储器(RAM) 四、程序存储器(ROM)
3.1 指令系统简介 一、几个概念 二、汇编语言指令格式 三、指令的分类 四、指令的符号说明 主讲:吴政江 下一页.
第三章 计算机系统的组成与工作原理.
任务五 学习、应用控制转移类指令 单片机应用技术 认知1 掌握无条件转移指令格式及应用
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
单片机原理及应用 实践部分 主讲人:刘 强 四川工商学院单片机教学团队 单片机原理及应用 实践部分 主讲人:刘 强
四、手工汇编 完成汇编的方法有两种:手工汇编和汇编程序汇编 1.手工汇编步骤 A
单片机应用技术 项目一 循环彩灯装置 第5讲 MCS-51单片机指令系统及指令格式 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
单片机原理与应用.
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
简单芯片扩展I/O接口 8155可编程接口芯片及其使用 键盘及显示器接口设计 A/D和D/A转换接口技术
循环程序设计 在程序中包含重复执行的程序段称为循环程序设计。循环程序可以使程序结构性强、可读性好,从而大大提高了程序质量。
4.3 汇编语言程序设计 顺序程序设计 顺序程序设计是最基本的程序设计。它是按照指令排列的先后顺序依次执行,每条指令都必须执行,且只执行一遍。顺序程序设计一般比较单一、简单,常常作为复杂程序的一部分。
单片机应用技术 (C语言版) 第3章 MCS-51指令系统及 汇编程序设计
第二章 MCS-51单片机程序设计 第一章 8086程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
认知1 掌握“与”、“或”和“异或”指令格式及应用
第3章 80C51单片机指令系统 教学基本要求: (1)、了解单片机的指令系统、编程语言等基本概念;
第4章 MCS-51汇编语言程序设计 教学基本要求: (1)、了解MCS-51汇编语言程序设计的特点;
第2章 80C51单片机的硬件结构 教学基本要求: (1)、熟悉单片机的定义、名称、分类方法;
第1章 微型计算机基础.
Presentation transcript:

第3章 MCS-51单片机指令系统 3.1 指令概述 3.2 寻址方式 3.3 MCS-51系列单片机的指令系统

3.1 指令概述 3.1.1 指令的定义 3.1.2 指令的组成 3.1.3 指令的表示方法 返回子目录

3.1.1 指令的定义 1、指令:是人们向计算机发的一种命令;一条指令对应着一 种操作。 2、指令系统:CPU所能执行的全部指令的集合。 CPU能够执行多少条指令是由CPU的内部结构决定的。 不同的CPU,其指令系统不同。 返回

3.1.2 指令的组成 指令由操作码和操作数组成。 操作数是指参与运算的数。操作数及操作对象可以是一个数,也可以是数所在的地方。 操作码决定CPU执行何种操作。 REG或MEM 返回

3.1.3 指令的表示方法 返回 指令在机器中必须以机器码(二进制码)的形式出现。 人们在书写指令时,可以有二种方法: 3.1.3 指令的表示方法 指令在机器中必须以机器码(二进制码)的形式出现。 人们在书写指令时,可以有二种方法: 1 、在计算机发展的初期,人们用机器码书写指令,这一阶段成为机器语言阶段。 优点:用机器码书写的程序,计算机可以直接识别和运行。 缺点:书写时容易,不容易记忆。 2、为了克服机器语言的缺点,人们用符号书写指令: 指令由操作码和操作数组成。 这一阶段成为汇编语言阶段. 优点:容易理解和记忆。 缺点:计算机不能直接识别和运行。 汇编语言程序必须转换成机器语言程序,转换方法有二种: 手工转换: 查表 符号指令---机器码指令---Mem 汇编程序: 符号指令----机器----机器码指令---Mem 用助记符(指令功能的英文缩写)书写。 操作数用规定的符号书写。 返回

3.2 寻址方式 3.2.1 寻址方式的定义 3.2.2 MCS51单片机的寻址方式 返回子目录 习 题

3.2.1 寻址方式的定义 指令由操作码和操作数组成。 指出操作数所在地方的方式就是寻址方式。 返回 操作码决定CPU执行何中操作。 3.2.1 寻址方式的定义 指令由操作码和操作数组成。 指出操作数所在地方的方式就是寻址方式。 操作码决定CPU执行何中操作。 操作数就是操作对象。无论何种指令其操作的对象都是数据。 数据在指令中有2种表示方法: 1、数本身 2、数所在的地方(REG,MEM中)。 返回

3.2.2 MCS51单片机的寻址方式 每一种计算机都具有多种寻址方式。寻址方式的多少是 反映指令系统优劣的主要指标之一。 MCS51单片机有7种寻址方式。 1、立即寻址 2、直接寻址 3 、REG间址 4、 REG寻址 5 、变址寻址 6、相对寻址 7 、位寻址 返回

3.2.2 MCS51单片机的寻址方式 每一种计算机都具有多种寻址方式。寻址方式的多少是 反映指令系统优劣的主要指标之一。 MCS51单片机有7种寻址方式。 1、立即寻址 2、直接寻址 3 、REG间址 4、变址寻址 5 、REG寻址 6、相对寻址 7 、位寻址 ROM 74H 05H 05H 1、 操作数包含在指令字节中。 紧跟在操作码后面,存放于ROM中 。 例:MOV A,#05H ;(74H 05H) 2、跟在指令操作码后面的数就是参加运算的数, 称该操作数为立即数。 SFR A FFH FFH 返回

每一种计算机都具有多种寻址方式。寻址方式的多少是 反映指令系统优劣的主要指标之一。 3.2.2 MCS51单片机的寻址方式 每一种计算机都具有多种寻址方式。寻址方式的多少是 反映指令系统优劣的主要指标之一。 MCS51单片机有7种寻址方式。 1、立即寻址 2、直接寻址 3 、REG间址 4、变址寻址 5 、REG寻址 6、相对寻址 7 、位寻址 ROM E5H 32H 1、在指令中直接给出操作数的地址, 这种寻址方式就属于直接寻址方式。在这种方式中, 指令的操作数部分直接是操作数的地址。 例:MOV A,32H ;(E5H,32H) 2、在MCS -51 单片机指令系统中, 直接寻址方式中可以访问 2种存储器空间: (1) RAM的低 128 个字节单元(00H~7FH)。 (2) 特殊功能寄存器。 特殊功能寄存器只能用直接寻址方式进行访问。 RAM FFH 32H 06H 06H SFR A FAH FFH 返回

每一种计算机都具有多种寻址方式。寻址方式的多少是 反映指令系统优劣的主要指标之一。 3.2.2 MCS51单片机的寻址方式 每一种计算机都具有多种寻址方式。寻址方式的多少是 反映指令系统优劣的主要指标之一。 MCS51单片机有7种寻址方式。 1、立即寻址 2、直接寻址 3 、REG间址 4、变址寻址 5 、REG寻址 6、相对寻址 7 、位寻址 ROM E6H RAM FFH 1、在这种寻址方式中, 寄存器的内容为操作数的地址。 例:MOV A,@ R0 ;(E6H) 2、寄存器间接寻址只能使用寄存器R0、R1 作为地址指针,寻址内部RAM区的数据; 当访问外部RAM时, 可使用R0、 R1及DPTR作为地址指针。 寄存器间接寻址符号为“@”。 40H 22H 22H R0 40H SFR A FAH FFH 返回

每一种计算机都具有多种寻址方式。寻址方式的多少是 反映指令系统优劣的主要指标之一。 3.2.2 MCS51单片机的寻址方式 每一种计算机都具有多种寻址方式。寻址方式的多少是 反映指令系统优劣的主要指标之一。 MCS51单片机有7种寻址方式。 1、立即寻址 2、直接寻址 3 、REG间址 4、 REG寻址 5 、变址寻址 6、相对寻址 7 、位寻址 ROM EFH RAM FFH 22H 1、在该寻址方式中, 参加操作的数存放在寄存器里。 例:MOV A,R7 ;(EFH) 2、寄存器包括8个工作寄存器R0~R7, 累加器A, 寄存器B、数据指针DPTR。 R7 40H 40H SFR A FAH FFH 返回

3.2.2 MCS51单片机的寻址方式 每一种计算机都具有多种寻址方式。寻址方式的多少是 反映指令系统优劣的主要指标之一。 MCS51单片机有7种寻址方式。 1、立即寻址 2、直接寻址 3 、REG间址 4、 REG寻址 5 、变址寻址 6、相对寻址 7 、位寻址 这种寻址方式用于访问程序存储器中的数据表格, 它以基址寄存器DPTR或PC的内容为基本地址, 加上变址寄存器A的内容作为操作数的地。 例: MOVC A, @DPTR+A MOVC A, @ PC+A 返回

每一种计算机都具有多种寻址方式。寻址方式的多少是 反映指令系统优劣的主要指标之一。 3.2.2 MCS51单片机的寻址方式 每一种计算机都具有多种寻址方式。寻址方式的多少是 反映指令系统优劣的主要指标之一。 MCS51单片机有7种寻址方式。 1、立即寻址 2、直接寻址 3 、REG间址 4、 REG寻址 5 、变址寻址 6、相对寻址 7 、位寻址 在MCS -51 指令系统中设有转移指令, 分为直接转移和相对转移指令, 在相对转移指令中采用相对寻址方式。这种寻址方式是以PC的内容为基本地址, 加上指令中给定的偏移量作为转移地址。指令中给出的偏移量是一个 8 位带符号的常数, 可正可负, 其范围为-128~+127。 例:JNB ACC.7,UP 返回

1、该种寻址方式中, 操作数是内部RAM单元中某一位的信息。 例:MOV C,02H ;(92H,20H) 2、仅出现在对位进行操作的指令中。 3、位所在地址的表示方法: ① 直接用8位二进制数表示 ② 单元地址.位数 3.2.2 MCS51单片机的寻址方式 每一种计算机都具有多种寻址方式。寻址方式的多少是 反映指令系统优劣的主要指标之一。 MCS51单片机有7种寻址方式。 1、立即寻址 2、直接寻址 3 、REG间址 4、 REG寻址 5 、变址寻址 6、相对寻址 7 、位寻址 ROM 92H 20H RAM FFH 20 0 0 1 0 1 1 0 0 1 02H 1 1 0 0 1 1 1 0 40H SFR PSW 0 0 0 1 1 0 0 FFH 返回

习题与思考: 1、 什么是寻址方式?8051有几种寻址方式?是哪几种?对特殊功能寄存器应该使用什么寻址方式?对128B的RAM可以使用哪几种寻址方式? 2、 下列各条指令其源操作数的寻址方式是什么? (1)MOV A,#48H (2)ADD A,60H (3)ANL A,@R0 (4)XCHD A,@R0 (5)MOVX A,@DPTR (6)MOV A,R0 (7)MOVC A,@A+DPTR 返回

3.3 MCS-51系列单片机的指令系统 3.3.2 算术运算类 3.3.3 逻辑运算及移位类 3.3.4 位操作类 3.3.5 控制转移类 要求掌握: 指令的书写格式;指令的功能;指令对标志位的影响。 3.3.1 数据传送类 3.3.2 算术运算类 3.3.3 逻辑运算及移位类 3.3.4 位操作类 3.3.5 控制转移类 返回子目录

3.3.1 数据传送类 数据传送类指令可以实现片内RAM之间;A与片外RAM及ROM之间的数据传送,不影响标志位。 A XXXX XXXX 3.3.1 数据传送类 数据传送类指令可以实现片内RAM之间;A与片外RAM及ROM之间的数据传送,不影响标志位。 FFFFH 0000H FFFFH 0000H FFH 80H A XXXX 7FH 00H XXXX XX XX 真正RAM 和 SFR 外RAM ROM

3.3.1 数据传送类 2、A与外RAM和ROM之间的数据传送 3、堆栈操作 4、交换 5、16位操作指令 1、片内RAM之间的数据传送 3.3.1 数据传送类 1、片内RAM之间的数据传送 2、A与外RAM和ROM之间的数据传送 3、堆栈操作 4、交换 5、16位操作指令 习 题 返回

1、 片内RAM之间的数据传送 1) MOV A\Rn\direct\@Ri, #data8 2) MOV direct, A\Rn\direct\@Ri 3) MOV A\Rn\direct\@Ri, direct 4) MOV A, Rn\@Ri 5) MOV Rn\@Ri, A 返回

1、 片内RAM之间的数据传送 1) MOV A\Rn\direct\@Ri, #data8 2) MOV direct, A\Rn\direct\@Ri 3) MOV A\Rn\direct\@Ri, direct 4) MOV A, Rn\@Ri 5) MOV Rn\@Ri, A MOV A, #data8 MOV Rn, #data8 MOV direct, #data8 MOV @Ri, #data8 返回

1、 片内RAM之间的数据传送 1) MOV A\Rn\direct\@Ri, #data8 2) MOV direct, A\Rn\direct\@Ri 3) MOV A\Rn\direct\@Ri, direct 4) MOV A, Rn\@Ri 5) MOV Rn\@Ri, A MOV direct, A MOV direct, Rn MOV direct, direct MOV direct, @Ri 返回

1、 片内RAM之间的数据传送 1) MOV A\Rn\direct\@Ri, #data8 2) MOV direct, A\Rn\direct\@Ri 3) MOV A\Rn\direct\@Ri, direct 4) MOV A, Rn\@Ri 5) MOV Rn\@Ri, A MOV A, direct MOV Rn , direct MOV direct, direct MOV @Ri, direct 返回

1、 片内RAM之间的数据传送 1) MOV A\Rn\direct\@Ri, #data8 2) MOV direct, A\Rn\direct\@Ri 3) MOV A\Rn\direct\@Ri, direct 4) MOV A, Rn\@Ri 5) MOV Rn\@Ri, A MOV A, Rn MOV A, @Ri 返回

1、 片内RAM之间的数据传送 1) MOV A\Rn\direct\@Ri, #data8 2) MOV direct, A\Rn\direct\@Ri 3) MOV A\Rn\direct\@Ri, direct 4) MOV A, Rn\@Ri 5) MOV Rn\@Ri, A MOV Rn, A MOV @Ri, A 返回

2、 A与外RAM和ROM之间的数据传送 1) ROM的数据送A MOVC A, @A+PC MOVC A, @A+DPTR 2) A与外RAM之间的数据传送 MOVX A, @DPTR MOVX A, @Ri MOVX @DPTR,A MOVX @Ri, A 返回

3、堆栈操作 1) PUSH direct 2) POP direct 返回

4、交换 1)、XCH A,Rn\direct\@Ri XCH A,Rn XCH A,direct XCH A, @Ri 2) XCHD A,@Ri SWAP A 返回

5、16位数据传送 MOV DPTR , #data16 ROM ROM 87H 90H 12H 45H 12H 06H 06H 例 MOV DPTR , #1206H SFR DPH 40H DPL 43H R1 44H 返回

3.3.2 算术运算类 对操作数运行+、-、×、÷ 运算;绝大多数指令影响标志位。 参与运算的一个数一定在A中,运算结果也存于A中。 3.3.2 算术运算类 对操作数运行+、-、×、÷ 运算;绝大多数指令影响标志位。 参与运算的一个数一定在A中,运算结果也存于A中。 1、加法运算 2、减法运算 3、乘法运算 4、除法运算 5、BCD码调整指令 习 题 返回

1、加法运算 1) ADD A , #data8\direct\@Ri\Rn 2) ADDC A , #data8\direct\@Ri\Rn 3) INC A\direct\@Ri\Rn\DPTR 不影响标志位 返回

2、减法运算 1) SUBB A , #data8\direct\@Ri\Rn 2) DEC A\direct\@Ri\Rn 不影响标志位 返回

3、乘法运算 MUL AB 1、将累加器A的内容与寄存器B的内容相乘, 乘积的低 8 位存放在累加器A中, 高 8 位存放于寄存器B中。 2、对标志位的影响: Cy=0 P 由A中1的个数决定 如果乘积超过0FFH, 则溢出标志OV置“1”, 否则清“0”。 (若B=0,则OV=0 ;若 B不等于0 ,则OV=1) 返回

4、除法运算 DIV AB 1、将累加器 A中的内容除以寄存器 B中的8位无符 号整数, 所得商的整数部分存放在累加器A中, 余数部分存放在寄存器 B中。 2、对标志位的影响: Cy=0 P 由A中1的个数决定 若原来 B中的内容为 0, 则执行该指令后 A与 B中的内容不定, 并将溢出标志OV置“1”。 (若B=0,则OV=0 ;若 B不等于0 ,则OV=1 ) 返回

5、BCD码调整指令 DA A 这条指令对累加器A参与的BCD码加法运算所获得的 8 位结果进行十进制调整, 使累加器A中的内容调整为二位压缩型 BCD码的数。 使用时必须注意, 它只能跟在加法指令之后, 不能对减法指令的结果进行调整, 且其结果不影响溢出标志位。 执行该指令时, 判断 A中的低 4 位是否大于 9 和辅助进位标志 AC是否为“1”, 若两者有一个条件满足, 则低 4 位加 6 操作; 同样, A中的高 4 位大于 9 或进位标志 Cy为“1”两者有一个条件满足时, 高 4 位加 6 操作。 返回

3.3.3 逻辑运算与移位类 对操作数运行逻辑 运算;绝大多数指令不影响标志位。 1、逻辑与运算 2、逻辑或运算 3、逻辑异或运算 3.3.3 逻辑运算与移位类 对操作数运行逻辑 运算;绝大多数指令不影响标志位。 1、逻辑与运算 2、逻辑或运算 3、逻辑异或运算 4、逻辑非运算 5、移位 习 题 返回

1、逻辑与运算 1) ANL A , #data8\direct\@Ri\Rn 2) ANL direct , #data8\A 2、逻辑或运算 1) ORL A , #data8\direct\@Ri\Rn 2) ORL direct , #data8\A 3、逻辑异或运算 1) XRL A , #data8\direct\@Ri\Rn 2) XRL direct , #data8\A 4、逻辑非运算 1) CPL A 2) CLR A 返回

5、移位运算 对累加器A的内容进行移位操作。除了带进位标志位的移位指令外,其它都不影响Cy, AC, OV等标志。 1) RL A 2) RR A 3) RLC A 4) RRC A 返回

3.3.4 位操作类 1、在单片机中有的存储单元只能按字节操作,有的既可以按字节操作,又可以按位操作。 3.3.4 位操作类 1、在单片机中有的存储单元只能按字节操作,有的既可以按字节操作,又可以按位操作。 2、可以按位操作的区域是: 20H--2FH单元,一些SFG,如A,PSW,B,P0,P1,P2,P3,IP,IE,TCON,SCON。 3、每一位都有自己的位地址,位地址一的表示方法如下: 1) 20H--2FH单元: 直接用8位二进制数表示 由低到高,位地址依次为 00H—7FH 单元地址.位码 2) A,P0,P1,P2,P3,B: SFG名字.位码 3) PSW,IP,IE,TCON,SCON: 位名

3.3.4 位操作类 1、位传送 MOV C,bit MOV bit,C 2、位置位/复位 CLR C CLR bit SETB bit 3.3.4 位操作类 1、位传送 MOV C,bit MOV bit,C 2、位置位/复位 CLR C CLR bit SETB bit SETB C 3、位运算 ANL C,bit/ bit取反 ORL C,bit/ bit取反 CPL C CPL bit 习 题 返回

3.3.5 控制转移类 ROM 0000H 74H PC 00H 04H 80H FEH 功能:修改PC的值,实现程序的转移。 原因: 3.3.5 控制转移类 功能:修改PC的值,实现程序的转移。 原因: 1、程序是按着顺序在RON中存放的。 如:MOV A,#00H INC A SJMP $ 2、CPU执行程序时总是到PC所指示的 ROM单元去取指令并执行之。 3、PC具有自动加1功能,因此一般情况下CPU按顺序执行指令。 4、实际编程时,会遇到如下情况: 1) 反复执行某段程序 2)根据条件决定执行哪段程序 此时就要修改PC的值,以实现程序的转移。即用到转移指令。 ROM 0000H 74H PC 00H 04H 80H FEH

3.3.5 控制转移类 1、转移类 1)、无条件转移指令 2)、条件转移指令 2、调用/返回类 1)、调用指令 2)、返回指令 习 题 返回

1) MOV A\Rn\direct\@Ri, #data8 MOV A, #data8 MOV Rn, #data8 MOV direct, #data8 MOV @Ri, #data8 #data——指令中的 8 位常数。 例:MOV A,#33H (74H 33H) ROM 74H 33H 33H SFR A FFH FFH 返回

1) MOV A\Rn\direct\@Ri, #data8 MOV A, #data8 MOV Rn, #data8 MOV direct, #data8 MOV @Ri, #data8 ROM 7DH Rn——当前选定的寄存器区中的 8 个工作寄存器R0~R7, 即n=0~7。 例:MOV R5,#45H (7DH 45H) 45H 45H SFR A 33H FFH RAM FFH 22H R5 40H 返回

1) MOV A\Rn\direct\@Ri, #data8 MOV A, #data8 MOV Rn, #data8 MOV direct, #data8 MOV @Ri, #data8 ROM ROM 75H 75H 40H 81H 05H 05H 60H 60H direct—— 用8 位二进制数表示的内部RAM单元的地址, 它可以是一个内部数据区 RAM单元(00H~7FH)或特殊功能寄存器地址(I / O端口、 控制寄存器、 状态寄存器 80H~0FFH)。 例:MOV 40H, #05H (75H 40H 05H) MOV SP, #60H (75H 81H 60H) SFR SFR SP 33H SP 33H FFH FFH RAM RAM FFH FFH 40H 22H 40H 22H R5 40H R5 40H 返回

1) MOV A\Rn\direct\@Ri, #data8 MOV A, #data8 MOV Rn, #data8 MOV direct, #data8 MOV @Ri, #data8 ROM 60H FFH SFR Ri——当前选定的寄存器区中的 2 个寄存器R0、 R1, i=0、1。 例:MOV A,@R0 (E6H) A 33H FFH RAM FFH 40H 22H 22H R0 40H 返回

2)、MOV direct, A\Rn\direct\@Ri MOV direct, Rn MOV direct, direct MOV direct, @Ri ROM 例:MOV 40H, A ; (F5H 40H ) F5H 40H FFH SFR A 27H 27H FFH RAM FFH 40H 33H R5 40H 返回

2)、MOV direct, A\Rn\direct\@Ri MOV direct, Rn MOV direct, direct MOV direct, @Ri ROM 8EH 例:MOV 50H, R6 ; (8EH 50H ) 50H FFH SFR A 33H FFH RAM FFH 50H 27H R6 40H 40H 返回

2)、MOV direct, A\Rn\direct\@Ri MOV direct, Rn MOV direct, direct MOV direct, @Ri ROM 85H 50H 30H 例:MOV 50H, 30H (85H 50H 30H) SFR A 33H FFH RAM FFH 50H 27H 30H 40H 40H 返回

2)、MOV direct, A\Rn\direct\@Ri MOV direct, Rn MOV direct, direct MOV direct, @Ri ROM 87H 45H FFH RAM 例:MOV 45H, @R1 (87H 45H ) 45H 33H FFH FFH 30H 27H 27H R1 30H 返回

3)、MOV A\Rn\direct\@Ri ,direct MOV A, direct MOV Rn , direct MOV direct, direct MOV @Ri, direct ROM 例:MOV A ,40H ; (E5H 40H ) E5H 40H FFH SFR A 33H FFH RAM FFH 40H 27H 27H R5 40H 返回

3)、MOV A\Rn\direct\@Ri ,direct MOV A, direct MOV Rn , direct MOV direct, direct MOV @Ri, direct ROM ACH 50H 例:MOV R4,50H ; (ACH 50H ) FFH SFR A 33H FFH RAM FFH 50H 40H 40H R4 27H 返回

3)、MOV A\Rn\direct\@Ri ,direct MOV A, direct MOV Rn , direct MOV direct, direct MOV @Ri, direct ROM 85H 50H 30H 例: MOV 50H, 30H (85H 50H 30H) SFR A 33H FFH RAM FFH 50H 27H 30H 40H 40H 返回

3)、MOV A\Rn\direct\@Ri ,direct MOV A, direct MOV Rn , direct MOV direct, direct MOV @Ri, direct ROM A7H 45H FFH RAM 例:MOV @R1 ,45H (A7H 45H ) 45H 33H 33H FFH FFH 30H 27H R1 30H 返回

4)、 MOV A, Rn MOV A, @Ri MOV Rn, A MOV @Ri, A 例:MOV A ,R3 ; (EBH ) ROM EBH FFH FFH SFR A 33H FFH RAM FFH R3 27H 27H R0 40H 返回

4)、 MOV A, Rn MOV A, @Ri MOV Rn, A MOV @Ri, A 例:MOV A, @R0 (E6H ) ROM E6H FFH FFH SFR A 33H FFH RAM FFH 38H 27H 27H R0 38H 返回

5)、 MOV Rn, A MOV @Ri, A 例:MOV R2, A ;(FAH ) ROM ROM FAH 87H FFH 45H FFH FFH SFR A 27H 27H FFH RAM FFH 40H 40H R2 33H 返回

5)、 MOV Rn, A MOV @Ri, A 例:MOV @R1 ,A (F7H ) ROM F7H FFH FFH SFR A 33H 33H FFH RAM FFH 30H 27H R1 30H 返回

2、 A与外RAM和ROM之间的数据传送 1) ROM的数据送A MOVC A, @A+PC MOVC A, @A+DPTR(93H) 2) A与外RAM之间的数据传送 MOVX A, @DPTR MOVX A, @Ri MOVX @DPTR,A MOVX @Ri, A ROM 93H FFH 206AH 89H 89H FFH 以DPTR作为基址寄存器, 累加器A的内容作为无符号数与DPTR内容相加, 得到一个 16 位的地址, 并把该地址指出的ROM单元中的内容送到累加器A。 SFR A 33H DPH 20H DPL 37H 返回

2、 A与外RAM和ROM之间的数据传送 1) ROM的数据送A MOVC A, @A+PC MOVC A, @A+DPTR 2) A与外RAM之间的数据传送 MOVX A, @DPTR MOVX A, @Ri MOVX @DPTR,A MOVX @Ri, A ROM 93H FFH 外RAM 2001H 89H 89H FFH 把DPTR中的内容作为地址, 并把该地址指出的外RAM单元的内容送到累加器A。 SFR A 33H DPH 20H DPL 01H 返回

2、 A与外RAM和ROM之间的数据传送 1) ROM的数据送A MOVC A, @A+PC MOVC A, @A+DPTR 2) A与外RAM之间的数据传送 MOVX A, @DPTR MOVX A, @Ri MOVX @DPTR,A MOVX @Ri, A ROM 93H FFH 外RAM 把DPTR中的内容作为地址, 并把累加器A的内容送到该地址指出的外RAM单元。 2001H 89H 2002H FFH SFR A ABH ABH DPH 20H DPL 02H 返回

3、堆栈操作 1) PUSH direct 2) POP direct ROM ROM 87H C0H 40H 45H 1、在MCS -51 单片机的内部RAM中, 可以设定一个先进后出的区域, 称其为堆栈。 2、在特殊功能寄存器中有一个堆栈指针SP, 它指出栈顶的位置。 3、 进栈指令的功能是: 首先将堆栈指针SP的内容加1, 然后将直接地址所指出的内容送入SP指出的内部RAM单元。 例 PUSH 40H(C0H) FFH FFH SFR SP 50H 51H FFH RAM 51H 40H 50H FFH 40H 33H 33H 返回

3、堆栈操作 1) PUSH direct 2) POP direct ROM ROM D0H 87H 40H 45H FFH FFH 出栈指令的功能是: 将SP所指出的内部RAM单元的内容送入由直接地址所指出的字节单元, 接着将堆栈指针SP的内容减 1。 例 POP 40H(D0H) SFR SP 50H 51H FFH RAM 51H FFH FFH 50H 40H 40H 33H 返回

4、交换 1)、XCH A,Rn\direct\@Ri XCH A,Rn XCH A,direct XCH A, @Ri 2) XCHD A,@Ri ROM ROM 87H CFH 45H FFH FFH FFH 将累加器A的内容和Rn中的内容相互交换。 例 XCH A,R7 ( CFH) SFR A 51H 51H FFH RAM 51H 40H 50H FFH FFH R7 33H 33H 返回

4、交换 1)、XCH A,Rn\direct\@Ri XCH A,Rn XCH A,direct XCH A, @Ri 2) XCHD A,@Ri ROM ROM 87H C5H 45H 32H FFH FFH 将累加器A的内容和direct所指示的单元中的内容相互交换。 例 XCH A,32H (C5H 32H) SFR A CDH CDH FFH RAM 51H 40H 50H FFH FFH 32H F2H F2H 返回

4、交换 1)、XCH A,Rn\direct\@Ri XCH A,Rn XCH A,direct XCH A, @Ri 2) XCHD A,@Ri ROM ROM 87H C7H 45H FFH FFH FFH SFR 将累加器A的内容和RAM单元中的内容相互交换。 RAM单元的地址采用寄存器间接寻址方式给出。 例 XCH A, @R1;(C7H) A CDH CDH FFH RAM 45H 40H 44H B6H B6H R1 44H 返回

4、交换 1)、XCH A,Rn\direct\@Ri XCH A,Rn XCH A,direct XCH A, @Ri 2) XCHD A,@Ri ROM ROM D7H 87H 45H FFH FFH FFH SFR A C H D D FFH 将累加器A的内容和RAM单元中的内容相互交换。 RAM单元的地址采用寄存器间接寻址方式给出。 例 XCHD A, @R1;(D7H) RAM 45H 40H 44H 4 H 2 2 R1 44H 返回

4、交换 1)、XCH A,Rn\direct\@Ri XCH A,Rn XCH A,direct XCH A, @Ri 2) XCHD A,@Ri SWAP A ROM ROM 87H C4H 45H FFH FFH FFH SFR A H C D FFH 将累加器A的高 4 位与低 4 位之间进行交换。 返回

1、加法运算 1) ADD A , #data8\direct\@Ri\Rn ADD A ,#30H ADD A ,30H ADD A ,@R0 ADD A ,R5 返回

1、加法运算 1) ADD A , #data8\direct\@Ri\Rn ADD A ,#30H ROM ROM 24H 87H FFH FFH SFR A CDH CDH + FFH FDH 返回

1、加法运算 1) ADD A , #data8\direct\@Ri\Rn ADD A ,30H ROM ROM 24H 87H 3 0H FFH FFH RAM 31H 40H 30H B6H B6H R1 44H SFR A 2DH 2DH + FFH F3H 返回

1、加法运算 1) ADD A , #data8\direct\@Ri\Rn ADD A ,@R0 ROM ROM 24H 87H 3 0H FFH FFH RAM 45H 40H 44H B6H B6H R0 44H SFR A 2DH 2DH + FFH F3H 返回

1、加法运算 1) ADD A , #data8\direct\@Ri\Rn ADD A ,R5 ROM ROM 24H 87H 3 0H FFH FFH RAM 45H 40H 44H 44H R5 B6H B6H SFR A 2DH 2DH + FFH F3H 返回

1、加法运算 1) ADD A , #data8\direct\@Ri\Rn 2) ADDC A , #data8\direct\@Ri\Rn ADDC A ,#30H ADDC A ,35H ADDC A ,@R1 ADDC A ,R4 返回

1、加法运算 1) ADD A , #data8\direct\@Ri\Rn 2) ADDC A , #data8\direct\@Ri\Rn ROM ROM 34H 87H ADDC A ,#30H 3 0H 3 0H FFH FFH SFR A CDH CDH + FFH FFH FDH PSW 0 0 0 1 1 0 0 1 1 + FFH FEH 返回

1、加法运算 1) ADD A , #data8\direct\@Ri\Rn 2) ADDC A , #data8\direct\@Ri\Rn ROM ROM 87H 24H 3 0H 3 0H ADDC A ,35H FFH FFH RAM 35H 30H 30H 34H B6H B6H SFR A CDH CDH + FFH FFH FDH PSW 1 0 0 0 1 1 0 0 1 + FFH FEH 返回

1、加法运算 1) ADD A , #data8\direct\@Ri\Rn 2) ADDC A , #data8\direct\@Ri\Rn ROM ROM 87H 24H 3 0H 3 0H ADDC A , @R0 RAM 35H 30H 30H 34H B6H B6H R0 35H SFR A CDH CDH + FFH FFH FDH PSW 0 0 0 1 1 0 0 1 1 + FFH FEH 返回

1、加法运算 1) ADD A , #data8\direct\@Ri\Rn 2) ADDC A , #data8\direct\@Ri\Rn ADDC A , R0 RAM ROM ROM 35H 35H 87H 24H 34H B6H B6H 3 0H 3 0H R0 30H 30H SFR A CDH CDH + FFH FFH FDH PSW 0 0 0 1 1 0 0 1 1 + FFH FEH 返回

1、加法运算 1) ADD A , #data8\direct\@Ri\Rn 2) ADDC A , #data8\direct\@Ri\Rn 3) INC A\direct\@Ri\Rn\DPTR INC A INC direct INC @Ri INC Rn INC DPTR 返回

1、加法运算 1) ADD A , #data8\direct\@Ri\Rn 2) ADDC A , #data8\direct\@Ri\Rn 3) INC A\direct\@Ri\Rn\DPTR RAM ROM ROM INC A 35H 35H 04H 87H 34H B6H B6H FFH R0 30H 30H SFR A CDH CDH FFH + 1 FFH PSW 0 0 0 1 1 0 0 1 1 CEH FFH 返回

1、加法运算 1) ADD A , #data8\direct\@Ri\Rn 2) ADDC A , #data8\direct\@Ri\Rn 3) INC A\direct\@Ri\Rn\DPTR ROM ROM 05H 87H 34H RAM INC 34H 35H 35H 34H B6H B6H + 1 R0 30H B6H 30H B7H SFR A CDH CDH FFH FFH PSW 1 1 0 0 0 1 1 0 0 FFH 返回

1、加法运算 1) ADD A , #data8\direct\@Ri\Rn 2) ADDC A , #data8\direct\@Ri\Rn 3) INC A\direct\@Ri\Rn\DPTR ROM ROM 06H 87H FFH RAM INC @R0 35H 35H 34H B6H B6H + 1 R0 34H B7H SFR A CDH CDH FFH FFH PSW 0 0 0 1 1 0 0 1 1 FFH 返回

1、加法运算 1) ADD A , #data8\direct\@Ri\Rn 2) ADDC A , #data8\direct\@Ri\Rn 3) INC A\direct\@Ri\Rn\DPTR ROM ROM 87H 08H FFH RAM INC R0 35H 35H 34H B6H B6H R0 34H 34H SFR + 1 A CDH CDH 35H FFH FFH PSW 1 0 0 0 1 1 0 0 1 FFH 返回

1、加法运算 1) ADD A , #data8\direct\@Ri\Rn 2) ADDC A , #data8\direct\@Ri\Rn 3) INC A\direct\@Ri\Rn\DPTR INC DPTR ROM ROM 08H 87H FFH SFR DPH 35H 35H DPL B6H B6H A 34H 34H 1 + 35H B7H 返回

2、减法运算 1) SUBB A , #data8\direct\@Ri\Rn SUBB A ,#30H SUBB A ,35H SUBB A ,@R1 SUBB A ,R4 返回

2、减法运算 1) SUBB A , #data8\direct\@Ri\Rn ROM ROM 34H 87H SUBB A ,#30H FFH FFH SFR A CDH CDH FFH - FFH FFH 9DH PSW 1 1 0 0 0 1 1 0 0 - FFH 9CH 返回

2、减法运算 1) SUBB A , #data8\direct\@Ri\Rn ROM ROM 87H 34H 3 0H 3 0H RAM SUBB A ,35H FFH FFH 35H 30H 30H 34H B6H B6H SFR A CDH CDH FFH - FFH FFH 9DH PSW 1 0 0 0 1 1 0 0 1 - FFH 9CH 返回

2、减法运算 1) SUBB A , #data8\direct\@Ri\Rn ROM ROM 87H 24H 3 0H 3 0H SUBB A , @R0 RAM 35H 30H 30H 34H B6H B6H R0 35H SFR A CDH CDH FFH - FFH 9DH PSW 0 0 0 1 1 0 0 1 1 - FFH 9CH 返回

2、减法运算 1) SUBB A , #data8\direct\@Ri\Rn ROM ROM 87H 24H 3 0H 3 0H SUBB A ,R6 RAM 35H 35H 34H B6H B6H R6 30H 30H SFR A CDH CDH FFH - FFH 9DH PSW 0 0 0 1 1 0 0 1 1 - FFH 9CH 返回

2、减法运算 1) SUBB A , #data8\direct\@Ri\Rn 2) DEC A\direct\@Ri\Rn DEC A DEC direct DEC @Ri DEC Rn 返回

2、减法运算 1) SUBB A , #data8\direct\@Ri\Rn 2) DEC A\direct\@Ri\Rn RAM ROM 35H 35H 04H 87H 34H B6H B6H FFH R0 30H 30H SFR A CDH CDH FFH - 1 FFH PSW 0 0 0 1 1 0 0 1 1 CCH FFH 返回

2、减法运算 1) SUBB A , #data8\direct\@Ri\Rn 2) DEC A\direct\@Ri\Rn ROM ROM 05H 87H 34H RAM INC 34H 35H 35H 34H B6H B6H - 1 R0 30H B6H 30H B5H SFR A CDH CDH FFH FFH PSW 1 1 0 0 0 1 1 0 0 FFH 返回

2、减法运算 1) SUBB A , #data8\direct\@Ri\Rn 2) DEC A\direct\@Ri\Rn ROM ROM 06H 87H FFH RAM DEC @R0 35H 35H 34H B6H B6H - 1 R0 34H B5H SFR A CDH CDH FFH FFH PSW 0 0 0 1 1 0 0 1 1 FFH 返回

2、减法运算 1) SUBB A , #data8\direct\@Ri\Rn 2) DEC A\direct\@Ri\Rn ROM ROM 87H 08H FFH RAM INC R0 35H 35H 34H B6H B6H R0 34H 34H SFR - 1 A CDH CDH 33H FFH FFH PSW 1 0 0 0 1 1 0 0 1 FFH 返回

3、乘法运算 MUL AB ROM ROM 87H 24H 3 0H 3 0H FFH FFH SFR B 02H 02H FFH A × PSW 1 0 0 0 1 1 0 0 00H 00H 0CH 0CH 返回

1、逻辑与运算 1) ANL A , #data8\direct\@Ri\Rn ANL A,#0FH ROM ROM 54H 87H 00001111B 00001111B SFR A 01101011B 01101011B ∩ FFH 00001011B 00001011B FFH FFH 返回

1、逻辑与运算 1) ANL A , #data8\direct\@Ri\Rn 2) ANL direct , #data8\A ROM ROM ANL 30H,#0FH 54H 87H 30H 00001111B 00001111B 00001111B RAM 30H 01101011B 01101011B ∩ FFH 00001011B 00001011B FFH FFH 返回

2、逻辑或运算 1) ORL A , #data8\direct\@Ri\Rn ORL A,#0FH ROM ROM 54H 87H 00001111B 00001111B SFR A 01101011B 01101011B ∪ FFH 01101111B 01101111B FFH FFH 返回

2、逻辑或运算 1) ORL A , #data8\direct\@Ri\Rn 2) ORL direct , #data8\A ROM ROM ORL 30H,#0FH 54H 87H 30H 00001111B 00001111B 00001111B RAM 30H 01101011B 01101011B ∩ FFH 01101111B 01101111B FFH FFH 返回

3、逻辑异或运算 1) XRL A , #data8\direct\@Ri\Rn XRL A,#0FH ROM ROM 54H 87H 00001111B 00001111B SFR A 01101011B 01101011B ⊙ FFH 01100100B 01100100B FFH FFH 返回

3、逻辑或运算 1) XRL A , #data8\direct\@Ri\Rn 2) XRL direct , #data8\A ROM ROM XRL 30H,#0FH 54H 87H 30H 00001111B 00001111B 00001111B RAM 30H 01101011B 01101011B ⊙ FFH 01100100B 01100100B FFH FFH 返回

5、移位运算 1) RL A ROM ROM 24H 87H 3 0H 3 0H FFH FFH SFR A 1 1 1 1 1 1 1 1 返回

5、移位运算 1) RL A 2) RR A ROM ROM 87H 24H FFH SFR A 1 1 1 1 1 1 1 1 返回

5、移位运算 1) RL A 2) RR A 3) RLC A ROM ROM 24H 87H 3 0H 3 0H FFH FFH SFR A 1 1 1 1 1 1 1 1 PSW 1 1 1 1 1 1 返回

5、移位运算 1) RL A 2) RR A 3) RLC A 4) RRC A ROM ROM 24H 87H 3 0H 3 0H FFH FFH SFR A 1 1 1 1 1 1 1 1 PSW 1 1 1 1 1 返回

3.3.4 位操作类 1、位传送 MOV C,bit MOV C,03H ROM ROM 24H 87H 3 0H 3 0H FFH FFH 3.3.4 位操作类 1、位传送 MOV C,bit MOV C,03H ROM ROM 24H 87H 3 0H 3 0H FFH FFH SFR PSW 1 1 1 1 1 RAM 20H 1 1 1 1 1 1 1 1 返回

3.3.4 位操作类 1、位传送 MOV C,bit MOV bit,C ROM ROM MOV 02H,C 24H 87H 3 0H 3.3.4 位操作类 1、位传送 MOV C,bit MOV bit,C ROM ROM MOV 02H,C 24H 87H 3 0H 3 0H FFH FFH SFR PSW 1 1 1 1 1 RAM 20H 1 1 1 1 1 1 1 1 返回

3.3.4 位操作类 1、位传送 MOV C,bit MOV bit,C 2、位置位/复位 CLR C CLR bit ROM ROM 3.3.4 位操作类 1、位传送 MOV C,bit MOV bit,C 2、位置位/复位 CLR C CLR bit ROM ROM 24H 87H 3 0H 3 0H FFH FFH CLR 10H SFR PSW 1 1 1 1 1 RAM 22H 1 1 1 1 1 1 1 返回

3.3.4 位操作类 1、位传送 MOV C,bit MOV bit,C 2、位置位/复位 CLR C CLR bit SETB bit 3.3.4 位操作类 1、位传送 MOV C,bit MOV bit,C 2、位置位/复位 CLR C CLR bit SETB bit ROM ROM 87H 24H 3 0H 3 0H FFH FFH SFR PSW 1 1 1 1 1 SETB 17H RAM 22H 1 1 1 1 1 1 1 返回

3.3.5 控制转移类 1、转移类 1)、无条件转移指令 LJMP addr16 AJMP addr11 SJMP rel 3.3.5 控制转移类 1、转移类 1)、无条件转移指令 LJMP addr16 AJMP addr11 SJMP rel JMP @A+DPTR 返回

3.3.5 控制转移类 1、转移类 LJMP addr16 1)、无条件转移指令 例1 LJMP addr16 AJMP addr11 3.3.5 控制转移类 1、转移类 1)、无条件转移指令 LJMP addr16 1、addr16——16 位的目的地址。 2、将 16 位目标地址addr16 装入PC, 程序无条件转向指定的目标地址。转移的目标地址可以在 64 KB程序存储器地址空间的任何地方, 不影响任何标志。 3、通常目标地址用标号表示。(指令的符号地址) 如: MOV A,#00H UP: INC A LJMP UP 例1 LJMP addr16 AJMP addr11 SJMP rel JMP @A+DPTR 例2 返回

例1:设指令 LJMP 1000H存于0000H单元,问CPU执行上述指令后PC的值是多少? ROM 0000H 02H PC 00H 00H 10H 10H 00H 00H 1000H FEH 10H 00H 返回

3.3.5 控制转移类 1、转移类 AJMP addr11 1)、无条件转移指令 1、addr11——11位的目的地址。 3.3.5 控制转移类 1、转移类 1)、无条件转移指令 AJMP addr11 1、addr11——11位的目的地址。 2、执行该指令时, 先将PC+2, 然后将addr11送入PC10~PC0, 而PC15~PC11保持不变。 这样得到跳转的目的地址。 需要注意的是, 目标地址与AJMP后面一条指令的第一个字节必须在同一个 2 KB区域的存储器区内。 3、通常目标地址用标号表示。(指令的符号地址) 如: MOV A,#00H UP: INC A AJMP UP 例1 LJMP addr16 AJMP addr11 SJMP rel JMP @A+DPTR 例2 返回

例1:设指令 AJMP 00000000000B存于1200H单元,问CPU执行上述指令后PC的值是多少? ROM 1000H FEH 1200H 1 PC 1 1 02H 00H 00H 00H FFH 返回

3.3.5 控制转移类 SJMP rel 1、 rel—— 8 位带符号的偏移量字节, 用于SJMP和所有条件转移指令中。 偏移量相对于下一条指令的第一个字节计算, 在-128~+127 范围内取值。用8位补码表示。 2、执行该指令时, 先将 PC+2, 再把指令中带符号的偏移量加到PC上, 得到跳转的目标地址送入PC。 需要注意的是, 目标地址与SJMP后面一条指令的第一个字节必须在同一个 256B区域的存储器区内。 3、通常目标地址用标号表示。(指令的符号地址) 如: UP: MOV A,#00H INC A SJMP UP 1、转移类 1)、无条件转移指令 LJMP addr16 AJMP addr11 SJMP rel JMP @A+DPTR 例1 例2 返回

例1:设指令 SJMP FCH存于1000H单元,问CPU执行上述指令后PC的值是多少? ROM 0FFCH FEH 1000H 1 PC 10H 00H 02H FCH FCH FFH - 06H PC 0FH FCH 返回

3.3.5 控制转移类 1、转移类 1)、无条件转移指令 JMP @A+DPTR 3.3.5 控制转移类 1、转移类 1)、无条件转移指令 JMP @A+DPTR 执行该指令时, 把累加器 A中的 8 位无符号数与数据指针中的 16 位数相加, 结果作为下条指令的地址送入PC, 不改变累加器 A和数据指针DPTR的内容, 也不影响标志。 利用这条指令能实现程序的散转。 LJMP addr16 AJMP addr11 SJMP rel JMP @A+DPTR 例 返回

例:设A=34H,DPTR=10B6H, 问CPU执行指令 JMP @A+DPTR后,PC的值是多少? ROM 0000H 73H PC 00H 01H 00H FFH FFH FFH FFH 10EAH FEH SFR DPH 10H 10H DPL B6H B6H + A 34H 34H 10H EAH 返回

3.3.5 控制转移类 例1 例2 例3 例4 例5 返回 1、转移类 1)、无条件转移指令 2)、条件转移指令 3.3.5 控制转移类 1、转移类 1)、无条件转移指令 2)、条件转移指令 由条件决定是否转移。若满足条件就转移;若不满足条件就顺序执行。 1、JZ rel 若A=0则转移 ;若A≠0则顺序执行下一条指令 JNZ rel 2、JC rel 若Cy=0则转移 ;若Cy≠0则顺序执行下一条指令 JNC rel 3、JB bit, rel 若bit =0则转移 ;若bit ≠0则顺序执行下一条指令 JNB bit, rel JBC bit, rel 4、CJNE A,#data8,rel CJNE A,direct,rel CJNE Rn,#data8,rel CJNE @Ri,#data8,rel 5、 DJNZ Rn, rel DJNZ direct, rel 例1 例2 例3 例4 例5 返回

3.3.5 控制转移类 1、转移类 1)、无条件转移指令 2)、条件转移指令 2、调用/返回类 1)、调用指令 主程序 2)、返回指令 在程序设计中, 通常把具有一定功能的公用程序段编制成子程序, 当主程序需要使用子程序时用调用指令, 而在子程序的最后安排一条子程序返回指令,以便执行完子程序后能返回主程序继续执行。 3.3.5 控制转移类 1、转移类 1)、无条件转移指令 2)、条件转移指令 2、调用/返回类 1)、调用指令 2)、返回指令 主程序 ROM 74H 03H 子程序 24H 24H 05H AAH 调用指令 7FH 74H 45H 55H 71H 7FH 返回指令 调用指令 80H FBH 返回

3.3.5 控制转移类 1、转移类 1)、无条件转移指令 2)、条件转移指令 2、调用/返回类 1)、调用指令 2)、返回指令 3.3.5 控制转移类 1、转移类 1)、无条件转移指令 2)、条件转移指令 2、调用/返回类 1)、调用指令 2)、返回指令 LCALL addr16 ACALL addr16 返回

LCALL addr16 返回 1、这条指令无条件调用位于 16 位地址addr16的子程序。 2、执行该指令时,先将PC+3以获得下一条指令的首地址, 并把它压入堆栈(先低字节后高字节), SP内容加 2, 然后将 16 位地址放入 PC中, 转去执行以该地址为入口的程序。 3、通常目标地址用标号表示。 4、 LCALL指令可以调用 64 KB范围内任何地方的子程序。 5、指令执行后不影响任何标志。 返回

3.3.5 控制转移类 ACALL addr11 这是一条 2 KB范围内的子程序调用指令。执行该指令时,先将 PC+2 以获得下一条指令的地址, 然后将 16 位地址压入堆栈(PCL内容先进栈, PCH内容后进栈), SP内容加 2, 最后把 PC的高 5 位PC15~PC11与指令中提供的 11 位地址addr11相连接(PC15~PC11, A10~A0), 形成子程序的入口地址送入PC, 使程序转向子程序执行。所用的子程序的入口地址必须与 ACALL下面一条指令的第一个字节在同一个 2 KB区域的存储器区内。 1、转移类 1)、无条件转移指令 2)、条件转移指令 2、调用/返回类 1)、调用指令 2)、返回指令 返回

3.3.5 控制转移类 RET 这条指令的功能是: 恢复断点, 将调用子程序时压入堆栈的下一条指令的首地址取出送入PC, 使程序返回主程序继续执行。  4. 中断返回指令 RETI 这条指令的功能与RET指令相似, 不同的是它还要清除MCS -51 单片机内部的中断状态标志。 1、转移类 1)、无条件转移指令 2)、条件转移指令 2、调用/返回类 1)、调用指令 2)、返回指令 返回

数据传送类指令一览表

数据传送类指令一览表

3.2.3 算术运算类指令 算术运算指令

算术运算指令

逻辑运算指令

控 制 转 移 指 令

3.2.6 位操作类指令 位 操 作 指 令

影响标志位的指令

影响标志位的指令