第3章 AT89C51指令系统 3.1基本概念内部结构和引脚功能 指令、指令系统、机器代码

Slides:



Advertisements
Similar presentations
主讲人:刘利 交通大学网络控制课程系列 上海交通大学机电控制研究所 交通大学网络控制课程系列 考试课、专业基础课、必修课
Advertisements

第7章 AT89S51单片机的 串行口 1.
第三章 计算机系统 的组成与工作原理 本章学习目标 理解模型机的结构及工作过程 掌握单片机的结构 掌握单片机I/O口的使用
第5章 中断系统 5.1 中断的概念 5.2 MCS-51单片机的中断流程 5.3 MCS-51的中断响应条件和中断处理
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
第四章 指令系统及汇编语言程序设计.
8051 指令.
第四章 指令系统及汇编语言程序设计.
本章分为四节,主要介绍: 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单片机指令系统
单片机原理与应用.
第8章 AT89S52单片机外部 存储器的扩展 1.
第2章 MCS-51单片机指令系统与汇编语言程序设计
報告者:朱耿育 紀翔舜 組員:詹以群 張永傑 指導老師:梁新潁
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
第二部分 微机原理 第4章 汇编语言 程序设计 主讲教师:喻红.
单片机应用技术 项目一 循环彩灯装置 第6讲 指令功能及汇编语言程序设计(一) 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
6.3 定时器/计数器的应用 初始化 初始化的内容如下:
第二部分 微机原理 第3章 MCS-51的 指令系统 主讲教师:喻红.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第14章 单片机应用系统抗干扰 与可靠性设计 1.
第6章 MCS - 51单片机内部定时器/ 计数器 及串行接口 6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器
逻辑运算类指令 包括与、或、非、异或、清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 中断应用举例
单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传
本 章 重 点 单片机的结构特点 单片机的存储器特点 I/O端口的特点 CPU时序 课时安排:3个课时.
第四章 指令系统及汇编语言程序设计.
第3章 MCS-51单片机指令系统 3.1 指令概述 3.2 寻址方式 3.3 MCS-51系列单片机的指令系统.
第4章 中断技术 一个完整的微机系统是由硬件和软件共同构成的。微机系统的硬件有CPU、存储器和I/O口,外设组成。CPU与存储器之间的信息交换比较简单,而CPU与外设之间进行信息交换之前必须确定外设是否准备好,即选择I/O传送方式。I/O传送方式有4种:无条件、查询、中断和DMA。本章学习中断传送方式的有关内容。
第二章 单片机基础知识.
单片机系统设计 教师:朱华贵 2016年03月01日
数码管数字时钟电路的设计 1. 系统硬件电路的设计
第3章 MCS-51指令系统 介绍MCS—51系列单片机的寻址方式 介绍MCS—51系列单片机的指令系统
微机原理与接口技术 西安邮电大学计算机学院 王忠民.
第4章 80C51系列指令系统 教学目的:熟悉80C51系列单片机的寻址方式及 每一种寻址方式对应的寻址空间;掌 握每一条指令功能。
本章内容 MCS-51单片机指令系统的格式 MCS-51单片机寻址方式 指令系统的分析
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
CPU中的专用寄存器(SFR) 一、累加器Acc 二、通用寄存器B 三、程序计数器PC 四、堆栈指针SP 五、数据指针DPTR
2019/4/29 计算机组成原理 辅导教师:陆明强.
第五讲:AT89C51单片机存储器结构 一、半导体存储器 二、存储器空间划分方法 三、数据存储器(RAM) 四、程序存储器(ROM)
3.1 指令系统简介 一、几个概念 二、汇编语言指令格式 三、指令的分类 四、指令的符号说明 主讲:吴政江 下一页.
第三章 计算机系统的组成与工作原理.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
2. MCS-51单片机的组成及结构分析 2.1 MCS-51单片机的内部结构及结构特点
四、手工汇编 完成汇编的方法有两种:手工汇编和汇编程序汇编 1.手工汇编步骤 A
单片机原理与应用.
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
简单芯片扩展I/O接口 8155可编程接口芯片及其使用 键盘及显示器接口设计 A/D和D/A转换接口技术
单片机应用技术 (C语言版) 第3章 MCS-51指令系统及 汇编程序设计
第二章 MCS-51单片机程序设计 第一章 8086程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
第4章 MCS-51汇编语言程序设计 教学基本要求: (1)、了解MCS-51汇编语言程序设计的特点;
第2章 80C51单片机的硬件结构 教学基本要求: (1)、熟悉单片机的定义、名称、分类方法;
单片机原理及接口技术 前修课程:数模电、微机原理.
第1章 微型计算机基础.
Presentation transcript:

第3章 AT89C51指令系统 3.1基本概念内部结构和引脚功能 3.1.1 指令、指令系统、机器代码 3.1.1 指令、指令系统、机器代码 指令:是单片机CPU执行某种操作的命令。 指令系统:单片机CPU所能执行的全部指令的集合。指令用单 片机CPU能识别和执行的八位二进制机器代码表示;有 单字节、双字节、三字节指令。(参看书281~284页) 【例3-1】三字节、单字节、双字节指令举例 01110101 10010000 11110001 ;将数据11110001传送到内 RAM地址单元10010000中11111000 ;将寄存器A中的内容传送到 寄存器R0中 10000000 11111110 ;是短转移指令,11111110是 转移相对地址。

机器代码:由于指令用八位二进制机器代码表示,所以,指令又称为机器代码。机器代码也可用16进制表示。例3-1的指令用十六进制表示为(省去了“H”,本书对机器代码都如此处理) 75 90 F1 ;将数据F1传送到内RAM地址 单元90中 F8 ;将寄存器A中的内容传送到 寄存器R0中 80 FE ;是短转移指令,FE是转移 相对地址。 3.1.2 程序、程序设计、机器语言 程序:按人的要求又符合单片机指令系统规则而编排的指令序列被称为程序。编写程序的过程称程序设计。 机器语言:根据机器代码表编写出的单片机CPU能认识和直接执行的程序称为目标代码程序。也称机器语言。例3-1是由三条指令构成的机器语言程序段。

3.1.3 汇编语言、汇编语言指令格式、常用符号 1.汇编语言:汇编语言是用助记符、字符串和数字等来表示指令的程序语言。它与机器语言指令是一一对应的,比较接近人的自然语言。 汇编语言的助记符多是与指令操作相关的英文缩写;便于记忆、修改。若将例3-1的机器语言指令用汇编语言来写便是: MOV P1,#0F1H ;意思是将数(称立即数)F1H 传送到特殊功能寄存器P1中 MOV R0,A ;将寄存器A(累加器)中的内 容传送到寄存器R0中 SJMP $ ;是短转移指令,符号$表示该 条指令的首地址。 AT89C51单片机汇编语言指令系统有42种助记符,111种指令。按指令长度可分单字节指令,双字节指令和三字节指令。按指令执行时间可分为单机器周期指令(64种),双机器周期指令(45种)的四机器周期指令(只有乘、除法指令两种)。 汇编语言比机器语言易懂、方便;但单片机CPU是不认识的,必须要将它们转换成机器语言。

2.汇编语言指令的书写格式 [ 标号:]操作码 [操作数1][,操作数2][,操作数3] [;注释] AT89C51汇编语言指令系统的指令格式一般为 [ 标号:]操作码 [操作数1][,操作数2][,操作数3] [;注释] 标 号:用符号表示的该条指令的首地址,根据需要设置。位于一条指令(语句)的开头,以冒号结束。它以英文字母开头,由字母、数字、下划线等组成。 操作码:操作码规定指令实现何种功能(传送、加、减……)操作。是由助记符表示的字符串,是任一指令语句不可缺少的部分,是汇编软件生成目标代码的依据。 操作数:在汇编语言中,操作数可以是被传送的数(立即数),或数在内RAM中的地址,寄存器,转移的指令地址,……。可以采用字母、字符和数字等多种表示形式。操作数个数因指令的不同而不同,多至3个操作数,各操作数之间要用“,”号分开。 注 释:为便于阅读而对指令附加的说明语句。必须以“;”开始。可以采用字母、数字和汉字等多种表示形式。 注意事项: ①每条指令必须有操作码,而方括号所括内容可有可无,由指令、编程情况决定;②标号不能采用系统中已定义过的字符(如MOV,DB等);③标号与操作码之间要有“:”隔开;④操作码和操作数之间一定要有空格;⑤操作数之间必须用“,”隔开;⑥每行只能有一条指令。

3.汇编语言常用符号 指令系统中除表示操作码的42种助记符之外(如MOV,JB……),还使用了一些符号。这些符号的含义如下: Rn——当前选中的工作寄存器组中的8个寄存器R0~R7(n=0~7) Ri——当前选中的工作寄存器组中的2个寄存器R0、R1(i=0,1). direct——8位直接地址。可以是内部RAM单元的地址(00H~7FH)或特殊功能寄存器的地址。 #data8——包含在指令中的8位二进制数。 #data16——包含在指令中的16位二进制数。 Addr16——16位二进制地址,用于LCALL、LJMP……指令中,能调用或转移到64KB程序存储器地址空间的任何地方。 Addr11——用于ACALL和AJMP指令中,可在该指令的下条指令首地址所在页的2K字节内调用或转移地址的低十一位。其含意在相关汇编语言指令中讲解。 rel——在以下相关的汇编语言指令中讲解它的意义。

DPTR——数据指针,可用作16位二进制的地址寄存器。 bit——位,内部RAM(包括特殊功能寄存器)中的可寻址位。 A——累加器。 B——特殊功能寄存器,常用于乘除法指令MUL和DIV中。 C——进位标志或进位位,或位处理器中的累加器。也可用Cy表示。 @——间址寄存器或基址寄存器的前缀,如@ Ri,@DPTR 。 / ——位操作的前缀,表示对该位操作数取反,如 / bit 。 (×)——× 中的内容。 ((×))——×中内容为地址的其中的内容。 ← 用箭头右边的内容取代箭头左边的内容。 $ —— 指本条指令的首地址。

3.1.4 汇编(编译)和编程(固化) 用汇编语言编写的程序称源程 序。单片机是不认识的。故必 须转换成二进制格式(BIN)或 十六进制格式(HEX)文件(称目 标代码文件)。一般都用计算 机软件(例Keil、Wave)来实 现。该转换过程称“汇编”。 汇编后的BIN或HEX文件再通过 编程器编程(固化)到单片机 ROM中。有的单片机(例AT89S51) 可通过ISP下载到单片机FLASH ROM中。编程后,程序中第一 条指令必须安置在单片机ROM 中0000H单元开始的地址单元 中。单片机CPU从该地址开始 取指令并执行。 图3-1 程序机器码在ROM中的安排

3.2 指令寻址方式 3.2.1 寻址、寻址方式、寻址存储器范围 1.寻址、寻址方式 2.七种寻址方式及其寻址存储器范围 寻址就是单片机CPU寻找指令中参与操作的数据的地址 寻址方式就是单片机CPU寻找指令中参与操作的数据地址的方法。 2.七种寻址方式及其寻址存储器范围 AT89C51单片机的硬件结构是寻址方式的基础。“寻址”是单 片机CPU寻址。AT89C51单片机CPU有七种寻址方式,即立即寻址、 直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址 和位寻址。它们体现在机器语言的各机器代码指令之中。在汇编 语言指令中也有相应的表现形式。不同的寻址方式有不同的寻址 存储器范围。表3-2 列出了七种寻址方式及相应的寻址存储器范 围。

表3-2 寻址方式及相应的寻址存储器范围 寻 址 方 式 寻 址 存 储 器 范 围 立即寻址 程序存储器ROM 直接寻址 片内RAM低128B,特殊功能寄存器 寄存器寻址 工作寄存器R0~R7,A, C, DPTR,AB 寄存器间接寻址 片内RAM低128B,片外RAM 变址寻址 程序存储器ROM(@A+DPTR,@A+PC) 相对寻址 程序存储器ROM (相对寻址指令的下一指令PC值加-128~+127) 位寻址 片内RAM的20H~2FH字节地址中所有的位,可位寻址的特殊功能寄存器

3.2.2 直接寻址 特征:指令中直接给出参与操作的数据 的地址,该地址一般用direct表示。 机器代码:E5 direct ;双字节指令 对应汇编语言指令:MOV A,direct 若direct为40H,则 机器代码 :E5 40 对应汇编语言指令:MOV A,40H 该指令的功能操作是将片内RAM地址40H 单元中的内容(参与操作的数据)传送 到累加器A中。汇编语言中可用符号标 识法表示功能操作,即用符号 (A)←(40H)表示。 若该指令的机器代码首址在ROM中 0100H,且内RAM地址40H单元中的内容 为68H,则单片机CPU执行此指令的过程 与结果可用示意图3-2表示。 最后(A)=68H。 图3-2 直接寻址 MOV A,40H执行示意图, 执行结果 (A)=(40H)=68H

3.2.3立即寻址 特征:指令中直接给出参与操作的数据,称 立即数。用data表示。汇编语言中,在该 对应汇编语言指令:MOV A,#data 若data为40H,则 机器代码 :74 40H 汇编语言指令:MOV A,#40H 该指令是将立即数40H传送到累加器A中。用 符号标识法表示功能操作,即 (A)← 40H。 若该指令的机器码首址在ROM中0100H,则执 行此指令可用示意图3-3表示。最后 (A)=40H。从图中看出,立即数所在 的地址就在ROM中;说明立即寻址范围为程 序存储器ROM。立即寻址实际上是寻找立即 数所在的ROM中的地址。 图3-3 立接寻址指令 MOV A,#40H执行示意图。结果(A)=40H

3.2.4寄存器寻址 特征:参与操作的数据存放在寄存器中 汇编指令中直接以寄存器名来表示参与 操作的数据的地址,寄存器包括工作寄 存器R0~R7、累加器A、数据指针… 。 机器代码:E8~ EF ;单字节指令 汇编语言指令:MOV A,Rn ;n=0~7 机器代码是单字节,用其低三位(范围 为000~111)表示寄存器R0~R7。若Rn 为R1,机器代码:E9 ;低三位为001 对应汇编语言指令:MOV A,R1 指令操作是将R1中的内容传送到累加器 A中。符号标识法表示功能操作为, (A)←(R1)。 若该指令的机器代码地址在ROM中 100H,且R1中内容为40H,则执行此指 令的过程与结果可用示意图3-4表示。 最后(A)=40H。 图3-4 寄存器寻址 MOV A,R1执行示意图。 结果(A)=40H

3.2.5寄存器间接寻址 特征:为二次寻址。第一次寻址得到寄存器 的内容为(Ri)或(DPTR),第二次寻址是 将第一次寻址所得的寄存器内容为地址并在 其中取参与操作的数据。汇编语言中,寄存 器的前缀@是寄存器间接寻址的标志,有 @Ri、@DPTR等。 例:机器代码:E6~E7 ;单字节指令 对应汇编语言指令:MOV A,@Ri ;i=0、1 对@Ri而言为寄存器间接寻址。若i=1,则 机器代码 :E7 ;单字节指令 对应汇编语言指令:MOV A,@R1 指令操作是将R1中的内容作为地址,再将该 地址中的内容传送到累加器A中。用符号标识 法表示功能操作为:(A)←((R1))。 若该指令的机器代码首址在ROM中0100H,并 设R1中的内容为40H,地址40H中的内容为 59H,则执行此指令的过程与结果可用示意图 3-5表示。 最后(A)=59H。 图3-5 寄存器间接寻址 MOV A,@R1执行示意图。 结果(A)=59H

3.2.6 变址寻址 特征:间接地址由两个寄存器提供。若由A、PC提供,汇编语言中为 @A+PC;若 由A和DPTR提供,汇编语言中表示为@A+DPTR。其中PC或DPTR称基址寄存器,A称 变址寄存器。相加为十六位无符号加法。若变址寄存器A中内容加基址寄存器 DPTR(或PC)中内容,低8位有进位, 该进位直接加到高位,不影响进位标志。例如机器代码 : 93 ;单字节指令 对应汇编语言指令: MOVC A,@A+DPTR。该指令操作是将DPTR中的内容加上A中 的内容作为地址,再将该地址中的内容传送到累加器A中。符号标识法表示为 (A)← ((A)+(DPTR))。 图3-6 变址寻址 MOVC A,@A+DPTR执行示意图。 结果(A)=18H 因指令多用于查表,故常称它为查表指令。 若该指令的机器代码地址在ROM中100H,并设DPTR中的内容为0500H,A中内容为0EH,而ROM地址050EH中的内容为18H, 则指令执行可用示意图3-6表示。最后A中内容由0EH改为18H, 即(A)=18H。

3.2.7相对寻址 特征:以相对寻址指令的下一条指令的程序计数器PC的内容为基值,加上指令机器代码中“相对地址”形成新的PC值(要转移的指令地址)的寻址方式。例如 机器代码 :80 相对地址 ;双字节指令 对应汇编语言指令:SJMP rel 指令机器代码中“相对地址”指的是用一个带符号的八位二进制补码表示的偏移字节数,其取值范围为 -128~+127。负数表示向后转移,正数表示向前转移。 若(PC)表示该指令在ROM中的首地址,该指令字节数为2;执行 该指令的操作为两步: (PC)←(PC)+ 2 ;得到下条指令首址 (PC)←(PC)+ 相对地址 。 第一步完成后,PC中的值为该指令的下一条指令的首地址。第二步完成后,PC中的内容(PC)为转移的目标地址。所以,转移的目标地址范围是该相对寻址指令的下一条指令首址加-128~+127字节的地址。汇编语言相对寻址指令中的往往是一个标号地址,表示ROM中某转移目标地址。汇编软件对该汇编语言指令进行汇编时,自动算出“相对地址”并填入机器代码中。

所以,应将汇编语言中 “rel” 理解 为“带有相对意义的转移 目标地址”。“相对地址”与“rel”的关系如下式表示 “rel”=(PC)+相对寻址指令字节数+“相对地址”; 或: “相对地址”= rel-[(PC)+相对寻址指令字节数]。 其中(PC)为该指令所在ROM中的首地址。 若该指令机器代码在ROM中的首址为0100H,并设“相对地址”为 21H,它是带符号二进制补码表示的偏移字节数。则 机器代码: 80H 21 执行该指令的过程与结果可用示意图3-7表示。最后转移的目的地址为0123H。 可由上式算出对应汇编语言指令SJMP rel 中的 “rel”=0100H+0002H +0021H=0123H 图3-7 相对寻址指令80 21 执行示意图。结果转移目的地址为0123H

3.2.8 位寻址“bit” 特征:参与操作的数据为“位”,不是字节。是对片内数据存储器RAM和 SFR中可位寻址单元的位进行操作的寻址方式。例如 机器代码 :82 bit 对应汇编语言指令:ANL C,bit 对指令中bit而言,为位寻址。该指令的功能操作是将bit(位地址)中的 内容(0或1)与C中的内容相与,再将相与的结果传送到PSW中的进位标志C 中。汇编语言中可用符号标识法表示功能操作,即用符号 (C)←(C)∧(bit)表示。 图3-8 位寻址 ANL C,26H执行示意图。结果(C)=1 若bit为位地址26H,且(26H)=1。则指令为 机器代码 :82 26 对应汇编语言指令: ANL C,26H 若该指令机器代码在ROM中的首址为0100H,设(C)=1。执行该指令的过程与结果可用示意图3-8表示。 执行结果是进位标志(C)=1。 应注意位地址26H是字节地址24H中的D6位(即次高位)的位地址。

3.3 汇编语言的指令系统 按指令功能可把111种指令分为五类: ① 数据传送类(29种); ② 算术操作类(24种); ③ 逻辑操作类(24种); ④ 控制程序转移类(17种); ⑤ 布尔变量操作类(17种),即位操作类指令。 3.3.1数据传送指令 数据传送类指令有29种。可分为内部RAM数据传送指令 (MOV类)、外部数据RAM传送指令(MOVX类)、程序存 储器ROM数据传送指令(MOVC类)、堆栈操作指令、数 据交换指令。数据传送指令操作数一般为两个,即“操 作数1”和“操作数2”。这时,“操作数2”可称为 “源操作数”,“操作数1”可称为“目的操作数”。

1.内部RAM数据传送指令 2.外部RAM数据传送指令 表3-3列出了内部RAM数据传送指令、功能操 作、机器代码和执行机器周期数。此类指令 的特征是操作码为“MOV” 2.外部RAM数据传送指令 表3-4列出了外部RAM数据传送指令、功能操作、机器代码和执行机器周期数,它们都是与外RAM有关的数据传送指令,其特征是操作码为“MOVX”。 该类指令均涉及对外RAM 64K地址单元操作,而指令MOVX @Ri,A MOVX A,@Ri中Ri只提供外RAM地址的低8位地址,所以高8位应由P2提供。

3.ROM数据传送指令(查表指令) 表3-5列出了ROM数据传送指令、功能操作、机器代码和执行机器周期数。这类指令共有两条,其特征是操作码为“MOVC”。均属变址寻址指令,涉及ROM的寻地址空间均为64K。它们在程序中多用于查数据表,故又称查表指令。一般,A中内容称变址,DPTR、PC中内容称基地址。 4.堆栈操作指令 表3-6列出了堆栈操作指令、功能操作、机器代码 和执行机器周期数。 5.数据交换指令 表3-7列出了数据交换指令、功能操作、机器代码和执行机器周期数。

3.3.2 算术运算类指令 算术运算类指令有24种。包括加减乘除四种基本算术指令, 能对 8位的无符号数进行直接的运算。有些算术运算类指令执行后将 会影响程序状态字(PSW)中的标志位C、AC、OV。但是加1和减1 指令不影响这些标志。表3-8列出了对进位标志位C(也可用Cy表 示)、辅助进位标志位AC、溢出标志OV位有影响的所有指令,包 括一些非算术类操作的指令。 表3-8 影响标志位C、OV、AC的指令 指 令 影响标志 C OV AC ADD,ADDC,SUBB √ CPL C MUL,DIV CJNE DA ANL C,bit SETB C 1 ORL C,bit CLR C ANL C,/bit MOV C,bit ORL C,/bit RRC,RLC √:表示根据运行结果使该位置位或复位。

2.带进位C的加法指令(C是此指令执行前的C) 1.加法指令 表3-9列出了加法指令、功能操作、机器代码和执行机器周期数。这些指令分别将工作寄存器中的数、内部RAM单元中的数、以Ri内容为地址中的数或8位二进制立即数与累加器A中的数相加,并将“和”存放在A中。 2.带进位C的加法指令(C是此指令执行前的C) 表3-10列出了带进位C的加法指令、功能操作、机器代 码和执行机器周期数。若相加时第3位或第7位有进位 时,则分别将AC、C标志位置1,否则为0。 3.加1指令 表3-11列出了加1指令、功能操作、机器代码和指令执行机器周期。这些指令执行后,不影响PSW中的标志位C、AC、OV。

4.带进位C减法指令 表3-12列出了带进位C减法指令、功能操作、机器代码和执行机器周期。减法操作会对PSW中标志位C、AC、OV产生影响。 5.减1指令 表3-13列出了减1指令、功能操作、机器代码和指令执行机器周期数。这些指令执行后,不影响标志位C、AC、OV。 6.十进制调整指令 表3-14列出了十进制调整指令、功能操作、机器代码和执行机器周期数。指令将A中按二进制相加后的结果调整成按BCD数相加的结果。 7.乘除法指令 表3-15列出了乘除法指令、功能操作、机器代码和和执行机器周期。

3.3.3 逻辑运算指令 逻辑运算指令对两个8位二进制数进行与、或、非和 异或等逻辑运算。逻辑运算是按位进行的。运算符 分别为∧、∨、!、⊕,其中与、或、异或的运算 法则如表3-16所示 表3-16与、或、异或的运算法则表 参与运算的两位数据 与(∧) 或(∨) 异或(⊕) 1

1.逻辑与指令 表3-17列出了逻辑与指令、功能操作、机器代码和执行机器周期。 2.逻辑或指令 表3-18列出了逻辑或指令、功能操作、机器代码和执行机器周期数。 3.逻辑异或指令 表3-19列出了逻辑异可指令、功能操作、机器代码和执行机器周期数。 4.累加器清零、取反指令 表3-20列出了累加器清零、取反指令、功能操作、机器代码和执行机器周期数。这两类指令皆为单字节单周期指令。

5.移位指令 表3-21列出了移位指令、功能操作、机器代码和执行机器周期数。图3-9为四条移位指令的功能操作示意图。 3.3.4控制转移指令 控制转移指令通过修改PC的内容来控制程序的执行 的流向。这类指令包括无条件转移指令、条件转移 指令、比较转移指令、循环转移指令、子程序调用 和返回指令、空操作指令等。 1.无条件转移指令 表3-22列出了无条件转移指令、功能操作、机器代码和执行机器周期数。

2.条件转移指令 有累加器A判零转移、比较条件转移和循环转移(减1条件)指令等。 3.子程序调用和返回 表3-27列出了子程序调用和返回指令、功能操作、 机器代码和执行机器周期数。 4.空操作指令 NOP ;(PC)←(PC)+1;机器代码:00 这是一条单字节单周期控制指令。机器执行这条指令仅使(PC)加1,不进行任何操作,耗时1个机器周期,常用来延时 。

3.3.5位操作指令 表3-28列出了位操作指令、功能操作、机器代码和执行机器周期数。位操作指令的操作数不是字节,而只是字节中的某一位,每位取值只能是0或1。位操作指令有位传送、位置位和位清零操作,位运算以及位控制转移指令。 点击进下章点击进上章 习题与思考3 1,2,3,4,5,6,9, 10,11