8051单片机指令系

合集下载

8051单片机的基本组成

8051单片机的基本组成
docin/sundae_meng
4. CPU标志寄存器
PSW CY AC F0 RS1 RS0 OV — P
CY:进位标志,有进位或借位时 为1,否则为0
AC:辅助进位标志,当D3向D4有
进位或借位时为1,否则为0
11
第3组
F0:用户标志
10
第2组
01
第1组
RS1、RS0:工作寄存器组选择 0 0 第 0 组
二.特殊功能寄存器(高128个单元)
MCS-51内部安排有21个特殊功能寄存器各特 殊功能寄存器的符号及地址(见 P22 表2-6 )。 分别组成以下各个功能模块:
CPU:ACC、B、PSW、SP、DPTR(由两 个8位寄存器DPL、DPH组成)(见P11图2-3)
并行口:P0、P1、P2、P3
中断系统:IE、IP
RAM位寻址区位地址表(P11)
单元地址
2FH 2EH 2DH 2CH 2BH 2AH 29H 28H 27H 26H 25H 24H 23H 22H 21H 20H
MSB
7FH 77H 6FH 67H 5FH 57H 4FH 47H 3FH 37H 2FH 27H 1FH 17H 0FH 07H
1-3 MCS-51系列单片机的内部资源 8051单片机的基本组成
时钟电路
CPU
T0 T1
ROM
RAM
定时计数器
控 制 电 路
并行接口 串行接口
中断系统
P0 P1 P2 P3 TXD RXD INT0 INT1
结构框图
docin/sundae_meng


并8中位行央的I/处OI/O口理口:P器40个、
... ...

51单片机指令周期,机器周期,时钟周期详解

51单片机指令周期,机器周期,时钟周期详解

51单片机指令周期,机器周期,时钟周期详解51单片机有指令周期,机器周期,时钟周期的说法,看似相近,但是又都不太一样,很容易混淆。

还是详细分析一下。

时钟周期:单片机外接的晶振的振荡周期就是时钟周期,时钟周期=振荡周期。

比方说,80C51单片机外接了一个11.0592M的晶体振荡器,那我们就说这个单片机系统的时钟周期是1/11.0592M,这里要注意11.0592M是频率,周期是频率的倒数。

机器周期:单片机执行指令所消耗的最小时间单位。

我们都知道51单片机采用的CISC(复杂指令指令集),所以有很多条指令,并且各条指令执行的时间也可能不一样(有一样的哦),但是它们执行的时间必须是机器周期的整数倍,这就是机器周期的意义所在。

8051系列单片机又在这个基础上进行细分,将一个机器周期划分为6个状态周期,也就是S1-S6,每个状态周期又由两个节拍组成,P1和P2,而P1=P2=时钟周期。

这也就是经常说的8051系列单片机的的时钟频率是晶振频率的12分频,或者是1/12,就是这个意思。

现在(截至2012)新的单片机已经能做到不分频了,就是机器周期=时钟周期。

指令周期:指令周期执行某一条指令所消耗的时间,它等于机器周期的整数倍。

传统的80C51单片机的指令周期大多数是单周期指令,也就是指令周期=机器周期,少部分是双周期指令。

现在(截至2012)新的单片机已经能做到不分频了,并且尽量单指令周期,就是指令周期=机器周期=时钟周期。

来看这张8051单片机外部数据,这里ALE和$PSEN$的变化频率已经小于一个机器周期,如果使用C语言模拟这个信号是没有办法做到的一一对应的,所以只能尽量和上面的时序相同,周期延长。

c8051f单片机教程

c8051f单片机教程

内容:西安科技大学科技创新实验班C8051F单片机教程之一作者:苗瑞日期:2009-12-8网站:/bbs一、认识C8051F并与51比较本节主要是让初学C8051F单片机的学员有个感性的认识,着重强调理论方面的知识,并通过与51单片机的比较,让大家能有更深刻的体会。

1、C8051F单片机简介C8051Fxxx 系列单片机是完全集成的混合信号系统级芯片,具有与8051 兼容的微控制器内核,与MCS-51 指令集完全兼容。

除了具有标准8052 的数字外设部件之外,片内还集成了数据采集和控制系统中常用的模拟部件和其它数字外设及功能部件MCU 中的外设或功能部件包括模拟多路选择器、可编程增益放大器、ADC、DAC、电压比较器、电压基准、温度传感器、SMBus/ I2C、UART、SPI、可编程计数器/定时器阵列(PCA)、定时器、数字I/O 端口、电源监视器、看门狗定时器(WDT)和时钟振荡器等。

所有器件都有内置的FLASH 程序存储器和256 字节的内部RAM,有些器件内部还有位于外部数据存储器空间的RAM,即XRAM。

C8051Fxxx 单片机采用流水线结构,机器周期由标准的12 个系统时钟周期降为1 个系统时钟周期,处理能力大大提高,峰值性能可达25MIPS。

C8051Fxxx 单片机是真正能独立工作的片上系统(SOC)。

每个MCU 都能有效地管理模拟和数字外设,可以关闭单个或全部外设以节省功耗。

FLASH 存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新8051 固件。

应用程序可以使用MOVC 和MOVX 指令对FLASH 进行读或改写,每次读或写一个字节。

这一特性允许将程序存储器用于非易失性数据存储以及在软件控制下更新程序代码。

片内 JTAG 调试支持功能允许使用安装在最终应用系统上的产品MCU 进行非侵入式(不占用片内资源)、全速、在系统调试。

该调试系统支持观察和修改存储器和寄存器,支持断点、单步、运行和停机命令。

8051单片机的体系结构

8051单片机的体系结构

(3)数据缓冲区
内部RAM的30H~7FH是数据缓冲区,也称为用户RAM区, 共80个单元。
52子系列内部有256个单元的数据存储器,用户RAM区范 围为30H~FFH,共208个单元。
工作寄存器区和位寻址区的地址及单元数与上述一致。
3、堆栈和堆栈指针 堆栈的概念:是一种数据项按序排列的数据结
构,采用后进先出,这种后进先出操作的缓冲器 区称为堆栈。
由内部控制信号产生输入锁存器两个输入缓冲器buf1和buf2推拉式io驱动器251p0口位图内部结构buf2buf15p0r2为读引脚信号执行movap0时该信号有效6读引脚端口时输出锁存器应为1qqdcvcc控制ad0p0r1p0r2d0p0w图1p0口内部结构读锁存器读引脚锁存器内部总线写锁存器地址数据p00多路开关10写数据读端口p03地址锁存器cbioa15a14a13a12a11a10a9a8a7a6a5a4a3a2a1a0d7d6d5d4d3d2d1d0dbabp10p11p12p13p14p15p16p17resetp30p31p33p34p35p36p37vssvccp00p01p02p05p06p07eaalepsenp27p26p25p24p23p22p21p20p32mcs51片外总线结构示意图返回mcs51单片机片外总线p04返回单片机8031p20p21p22a8a9a10alerd74ls373g6264a7a6a5a4a3a2a1a0o0o1o2o3o4o5o6o7p00p01p02p03p04p05p06p07oeceq0q1q2q3q4q5q6q7d0d1d2d3d4d5d6d7wewrp27p23p24a11a126264we单片机8031p20
P2.0
.P:2.4
单片机
8031 P0.0

8051芯片

8051芯片

8051芯片8051芯片是一款经典的单片机,由Intel公司研发,并于1980年首次推出。

它是一种8位MCU(Microcontroller Unit)芯片,主要应用于各种消费电子产品、家用电器、工业控制和自动化等领域。

8051芯片的特点之一是具有高度集成度,包括CPU、RAM、ROM、I/O接口、定时器/计数器、串行通信接口等核心功能,这使得它非常适合作为嵌入式系统的控制器。

8051芯片的CPU部分采用了经典的Harvard结构,包括一个8位的累加器(ACC)和16位的数据存储器(DPTR)。

它能够执行大多数基本指令,包括算术运算、逻辑运算、移位操作、跳转指令等。

此外,8051芯片还支持位操作指令,可以对单个位进行读写操作,非常灵活。

在存储器方面,8051芯片通常内置4K到64K的ROM用于存储程序代码,用于存储用户自定义的程序。

而RAM的容量通常在128字节到4K字节之间,用于存储程序运行时的数据。

8051芯片还具有多个I/O口,用于与外部设备进行通信。

这些I/O口可以配置为输入或输出,用于读取外部传感器的数据或控制外部执行器的动作。

此外,8051芯片还支持中断机制,能够及时响应外部事件和内部定时器的中断请求。

对于8051芯片的软件开发,最常用的是汇编语言和C语言。

汇编语言的编程方式相对底层,需要编写各种指令来控制芯片的操作。

而C语言则相对高层次,使用函数和变量的方式进行编程,更加易读易写。

尽管8051芯片已经有几十年的历史,但它依然广泛应用于各个领域。

这是因为8051芯片具有许多优势,如成本低、功耗低、易于集成和可靠性高等。

同时,8051芯片的学习资料和开发工具也非常丰富,可以轻松入手并进行开发。

总的来说,8051芯片是一款经典的单片机,具有高度集成度和广泛的应用领域。

无论是作为教育学习的对象还是实际应用的控制器,它都是一款非常值得研究和使用的芯片。

51单片机的基本参数

51单片机的基本参数

51单片机的基本参数单片机是一种集成电路芯片,其中包含了微处理器、存储器、输入输出接口等功能模块。

51单片机作为一种广泛应用于嵌入式系统开发的芯片,其基本参数对于开发者而言具有重要意义。

本文将介绍51单片机的基本参数,帮助读者更好地了解和应用该芯片。

1. 集成的微处理器51单片机,又称为8051单片机,其集成了一颗8位的微处理器,采用哈佛体系结构。

该微处理器具备高效的指令集和强大的运算能力,适用于各种嵌入式应用场景。

2. 存储器容量51单片机内部集成了多种类型的存储器,包括ROM、RAM和EEPROM。

其中,ROM用于存储程序代码,RAM用于存储数据,EEPROM用于存储不易丢失的配置信息。

具体的容量因型号而异,可以有2KB、4KB、8KB、16KB等不同的选项。

3. 时钟频率51单片机的工作频率对于其性能和响应速度至关重要。

不同型号的51单片机有不同的工作频率范围,常见的有12MHz、16MHz、20MHz等选项,开发者可以根据实际需求选择适合的时钟频率。

4. 输入输出接口51单片机内部集成了丰富的IO口,用于实现与外部设备的数据交互。

其中,一部分IO口可配置为输入模式,另一部分可配置为输出模式。

这些输入输出接口的数量和类型因型号而异,可以根据具体需求进行选择和配置。

5. 通信接口为了满足与其他设备的通信需求,51单片机通常支持多种通信接口,如串口、SPI和I2C等。

这些接口可以通过配置使用不同的通信协议,方便与其他设备进行数据交换和通信。

6. 中断系统中断是51单片机实现多任务处理和异步事件响应的关键机制。

51单片机具备灵活的中断系统,支持多级中断和外部中断。

开发者可以通过编程设置中断优先级和中断响应函数,实现对外部事件的快速响应。

7. 电压和功耗51单片机通常工作在3.3V或5V的电压下,不同型号的芯片可能有略微差异。

此外,功耗也是需要考虑的因素,低功耗设计可以延长系统的使用寿命和电池续航时间。

8051启动代码文件的主要内容

8051单片机是一种经典的微处理器,被广泛应用于各种嵌入式系统中。

在进行8051单片机的开发时,启动代码文件是至关重要的一部分,它包含了系统初始化、外设配置、中断管理等重要内容。

在本文中,我们将详细介绍8051启动代码文件的主要内容,帮助读者更好地理解和运用这一关键的部分。

一、系统初始化在8051单片机启动过程中,系统需要进行一系列的初始化操作,以确保其正常运行。

在启动代码文件中,通常包括以下内容:1. 时钟设置:8051单片机的时钟源有多种选择,包括外部晶体振荡器、内部振荡器等。

在启动代码文件中,需要设置时钟源的类型、频率等参数。

2. 中断向量表初始化:中断是8051单片机的重要功能之一,中断向量表包含了各类中断的入口位置区域。

在启动代码文件中,需要将中断处理函数的入口位置区域写入中断向量表中。

3. IO端口初始化:8051单片机的IO端口是与外部设备进行数据交换的重要接口,需要在启动过程中进行相应的初始化,包括设置端口的工作模式、输入输出方向等。

二、外设配置在实际应用中,8051单片机通常需要与各类外部设备进行通信,如LED、LCD、键盘、传感器等。

在启动代码文件中,需要对这些外部设备进行相应的配置,以便与单片机进行数据交换。

1. LED/LCD配置:LED和LCD是常见的显示设备,通过配置相应的引脚和显示参数,可以在启动过程中初始化这些设备。

2. 键盘/按键配置:键盘和按键是常见的输入设备,通过配置相应的端口和中断,可以在启动过程中实现对这些设备的初始化。

3. 传感器配置:传感器可以用于检测各类环境参数,如温度、湿度、光照等。

在启动代码文件中,需要配置相应的IO端口和中断,以实现对传感器的初始化。

三、中断管理中断是8051单片机的重要特性,通过中断可以实现对各类事件的及时响应。

在启动代码文件中,需要对中断进行相应的配置,以确保系统可以正常响应各类中断事件。

1. 中断向量表设置:在启动代码文件中,需要将各类中断处理函数的入口位置区域写入中断向量表中,以实现对中断的响应。

8051单片机的结构和原理

8051单片机的结构和原理中央处理器(CPU)是单片机的核心部分,由时钟发生器和控制单元组成。

时钟发生器提供CPU工作需要的时钟信号,控制单元负责指令的获取、译码和执行。

8051单片机的CPU有一个8位的累加器(ACC)和一个可分成两个4位寄存器的B寄存器。

它还具有一个地址总线和一个数据总线,用于与其他芯片进行通信。

存储器是单片机的重要组成部分,用于存储程序和数据。

8051单片机有不同类型的存储器,包括ROM(只读存储器)和RAM(随机存储器)。

ROM用于存储程序代码,而RAM用于存储变量和临时数据。

在一些高级型号的8051单片机中,还可以通过外部存储器接口扩展存储容量。

输入输出(I/O)是单片机与外部设备进行信息交互的接口。

8051单片机的I/O口有两类,即通用I/O口和特殊功能I/O口。

通用I/O口可以配置为输入口或输出口,用于与外部设备进行数字信号输入输出。

特殊功能I/O口具有特定的功能,如串行通信、定时器/计数器控制等。

定时器/计数器是8051单片机的重要辅助模块,用于生成定时延时和计数操作。

它包括两个定时器/计数器(T0和T1),可以用于测量时间、延时控制、产生波形等应用。

定时器/计数器可以通过编程设置工作模式、计数方式以及定时时间周期。

串行通信器是8051单片机与外部设备进行串行通信的接口。

它包括一个串口(UART),支持异步串行通信和同步串行通信。

通过串行通信器,8051单片机可以与计算机、终端设备、传感器等进行数据的发送和接收。

中断控制器是8051单片机的另一个重要模块,用于处理外部中断和内部中断。

当外部设备发生中断请求时,中断控制器会暂停当前任务,转而执行中断服务程序。

中断控制器包括外部中断INT0、INT1和内部中断IE0、IE1、TF0、TF1等。

8051单片机的原理是基于冯·诺依曼结构和哈佛结构的混合结构。

它具有单指令多数据流(SISD)并行处理特性,在一条指令周期内可以同时对多个数据进行处理。

经典:80C51单片机汇编语言程序设计


上例中,如果采用CJNE指令,应如何修改程序? 18
XAD EQU
1000H;
BUF EQU
2000H;
ORG 1000H
START:MOV DPTR, #XAD ;数据X的地址送数据指针DPTR
MOVX A,
@DPTR; A←取数据X
CJNE A, #0, ANZ ; X≠0转ANZ
SJMP SAV;
难度较大。要求使用者必须精通单片机的硬件系 统和指令系统。缺乏通用性,程序不易移植。
2
4.1.2 单片机使用的高级语言
对于8051单片机,现有4种语言支持,即汇编、 PL/M、C和BASIC。
C语言最终得到广泛应用。 可以大大提高单片机应用系统研制的开发效率。移 植性好。 高级语言的不足:生成的目标代码较长,导致应用程 序运行速度较慢。
分支程序
BR1: …
BRn: …
21
(2)通过转移指令表实现程序多分支
MOV A, n
RL A
;分支序号值乘以2
MOV DPTR, #BRTAB;转移指令表首址
JMP @A+DPTR
BRTAB: AJMP BR0
;转分支程序0
AJMP BR1
;转分支程序1
BR0: … BR1: …
AJMP BR127
顺序结构程序是最简单的程序结构。程序既无分支、 循环,也不调用子程序,程序执行时一条接一条地 按顺序执行指令。
6
2、程序设计的一般步骤
(1)分析任务 (2)确定算法 (3)画流程图 (4)编写程序 (5)上机调试
查错、改错, 用指令的形式
对程序进行 将程序流程图
优化。
实现出来。
当接到程序设计的任务后, 首先对任务进行详尽的分析, 搞清楚已知的数据和想要得 到的结果,程序应该完成何 种的功能。明确在程序设计 时应该 “做什么” 。

单片机毕业设计80c51

单片机毕业设计80c51本文的毕业设计主要涉及到80C51单片机的应用。

本篇文章将介绍单片机的基本原理、在数字电子钟的设计中的具体应用、硬件设计和软件编程,并给出程序设计流程与详细实现过程。

一、 80C51单片机的基本原理只要有些基础的理解,学习单片机并不难。

单片机是包含CPU、ROM、RAM和其他外设的一种集成电路(IC)芯片。

单片机因其体积小、功耗低、成本低而在实际应用中广泛使用。

具有代表性的是80C51单片机系列。

80C51单片机有多种不同的型号,每个型号内置指令集在某种程度上都有所不同。

最简单的80C51型号内置的指令集只有40多种指令。

可以想象,由于指令集非常简化、结构紧凑,这样设计出来的芯片具有性能非常稳定的特点。

二、数字电子钟的设计数字电子钟是指采用数字电路或数字电子技术设计的显示时间的钟。

数字电子钟广泛应用于生活中的种种需要,能够比较稳定地显示时间,其他功能还包括定时、闹钟、备忘等选项。

三、数字电子钟的硬件设计数字电子钟的硬件设计涵盖了三个方面:1. 显示电路的设计数字电子钟的显视屏幕通常是7片LED,其中6片是数字显示屏,第7片为冒号显示屏。

这个设计采用COS-8886电路,典型的应用范围是数码电子表、温度计等。

2. 时基方案的设计时基方案是指数字电子钟中的总体控制方案。

这里我们采用的是74HC4060的集成电路。

使用74HC4060,可以非常方便地进行时钟频率的分频设计。

3. 蓝牙通信模块的设计蓝牙通信模块的设计中,我们使用了常见的蓝牙串口传输模块,如HC-06,其工作电压在3.3V ~ 5V之间,具备良好的兼容性。

四、数字电子钟的软件编程数字电子钟的软件编程主要涉及以下两个方面:1. 定时计数器的设计采用80C51单片机设计定时计数器时,需要考虑到时钟频率、计时器精度、转换精度等问题。

借助于8051单片机提供的Timer/Counter模块,可以很方便地实现这个功能。

2. 蓝牙通信程序设计程序设计中需要考虑到串口通信协议,包括蓝牙模块的波特率,校验位和数据位等问题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第3章 指令系统
(2) 除法指令
(A)←(A)÷(B)之商,(B)←(A)÷(B)
DIV AB
(CY)←0, (OV)←0
除法指令的功能是把累加器 A中的8位无符号整数除以寄存器
B中的8位无符号整数, 所得商存于累加器A中, 余数存于寄存器B
中, 进位标志CY和溢出标志OV均被清零。 若除数B中的内容为0
CLR C
SUBB A, R3 MOV R5, A MOV A, R0 SUBB A, R2 MOV R4, A
; 清借位位
; 低字节相减 ; 保存差低字节 ; 取被减数高字节 ; 两高字节差减低位借位 ; 保存差高字节
第3章 指令系统
4. 加1、减1指令
加1指令:
INC A ; (A) ← (A)+1 INC direct ; (direct) ← (direct)+1
执行 INC @R0
;(R0)+1=(30H)+1→(R0),结果(30H)
=01H,R0中内容不变,仍为30H。
第3章 指令系统
减1指令: DEC A ; (A) ← (A)-1 ; ((Ri)) ← ((Ri))-1 DEC direct ; (direct) ← (direct)-1 DEC @Ri
; (A) ← (A)+((Ri)) ; (A) ← (A)+(Rn)
影响标志位CY、AC、OV、P 例如: 设(A)=49H, (R0)=6BH,
执行指令: ADD A, R0 ; (A) ← (A)+(R0)
结果为: (A)=B4H, OV=1, CY=0, AC=1, P=0。
第3章 指令系统
第3章 指令系统
逻辑“或”指令将两个指定的操作数按位
进行逻辑“或”操作。 它常用来使字节中某些位置“ 1” , 欲保留 (不变)的位用“0”与该位相或, 而欲置位的 位则用“1”与该位相或。 例如: 若(A)=C0H, (R0)=3FH, (3F)=0FH 执行指令: ORL A, @R0 ; (A) ← (A)∨((R0))
第3章 指令系统
例:编写计算1234H+0FE7H的程序,将结果存入内部RAM的41H 和40H单元,40H存低8位,41H存高8位。
MOV A, #34H ADD A, #0E7H MOV 40H, A ;被加数低8位数34H送A ;加数低8位数E7H与之相加,A=1BH,Cy=1 ;A→40H即34H+E7H结果存入40H中 ; (40H=1BH) MOV A, #12H ;被加数高8位数12H送A
SUBB A, @Ri ; (A) ← (A)-(CY)-((Ri))
SUBB A, Rn ; (A) ← (A)-(CY)-(Rn)
由于减法指令只有带借位减法指令, 因此, 若要进行
不带借位位的减法操作 , 需先清借位位 , 即置CY=0。清
CY有专门的指令,它属于位操作类指令,指令为: CLR C ; (CY) ← 0
第3章 指令系统
例: 双字节无符号数相减(R0 R1)-(R2 R3) → (R4 R5)。R0、 R2、 R4存放16位数的高字节, R1、 R3、 R5存放低字节, 先减低8 位, 后减高8位和低位的借位。 由于低位开始减时没有借位, 所以要 先清零。 其编程如下: MOV A, R1 ; 取被减数低字节
结果:A=06H, 30H地址内容不变,即(30H)=0FH 若执行ANL 30H, A (30H)=06H, A=F6H。 ;(30H)∩ A→(30H)
操作同上,结果放在30H地址中,A中内容不变,即
第3章 指令系统
2. 逻辑“或”运算指令
ORL direct, A ; (direct) ← (direct)∨(A)
1. 逻辑“与”运算指令
ANL direct, A; (direct) ← (direct)∧(A) ANL direct, #data ; (direct) ← (direct)∧#data
ANL A, #data; (A) ← (A)∧#data
ANL A, direct ; (A) ← (A)∧(direct) ANL A, @Ri ; (A) ← (A)∧((Ri)) ANL A, Rn ; (A) ← (A)∧(Rn)
乘法指令执行后进位标志CY总是清零, 即CY=0。
另外, 乘法指令本身只能进行两个8位数的乘法运算。 例如: 若(A)=4EH(78), (B)=5DH(93) 执行指令: MUL AB 结果为: 乘积为 (BA)=1C56H(7254) > FFH(255),
(A)=56H, (B)=1CH, OV=1, CY=0, P=0。
若上述程序执行前: (A)=B5H=10110101B, ( P1)=6AH=01101010B, 则执行程序后: (A)=15H=00010101B, (P1)=75H=01110101B。
第3章 指令系统
3. 逻辑“异或”运算指令
“异或”运算是当两个操作数不一致时结果 为1, 两个操作数一致时结果为0, 这种运算也 是按位进行。 XRL direct, A
ORL direct, #data; (direct) ← (direct)∨#data ORL A, #data ; (A) ← (A)∨#data ORL A, direct ; (A) ← (A)∨(direct) ORL A, @Ri ; (A) ← (A)∨((Ri ))
ORL A, Rn ; (A) ← (A)∨(Rn)
RLC A ;A与Cy内容一起循环左移一位,操作如下:
Cy A.7←A.6←A.5←A.4←A.3←A.2←A.1←A.0
RRC A ;A与Cy内容一起循环右移一位,操作如下:
Cy A.7→A.6→A.5→A.4→A.3→A.2→A.1→A.0
第3章 指令系统
例:A=01H, Cy=1
若执行一次 RRC A后,结果为:A=10000000B Cy=1 若执行一次 RLC A后,结果为:A=00000011B Cy=0
例:已知(50H)=05H 执行 XRL 50H, #06H 操作如下: 00000101 (05H) ⊕ 00000110 (06H) 00000011 (03H) ;(50H)⊕06H→(50H)
结果:(50H)=03H
第3章 指令系统
4. 累加器A清零与取反指令
CLR A ; (A) ← 00H CPL A ; (A) ←(A ) 第1 条是对累加器 A清零指令 , 第 2 条是把累加器 A 的内容取反后再送入A中保存。
XRL direct, #data
XRL A, #data XRL A, direct XRL A, @Ri XRL A, Rn
第3章 指令系统
逻辑“异或”指令常用来对字节中某些位进行取反操作, 欲 某位取反则该位与“1”相异或;欲某位保留则该位与“0”相异或。 还可利用异或指令对某单元自身异或, 以实现清零操作。
DEC Rn
; (Rn) ← (Rn)-1
第3章 指令系统
5. 乘、 除法指令
乘、 除法指令为单字节4周期指令, 在指令执行周期中是最长 的两条指令。
(1) 乘法指令
MUL AB
(B)←((A)×(B))15~8, (A)←((A)×(B))7~0 (CY)←0
第3章 指令系统
乘法指令的功能是把累加器A和寄存器B中的两个 8位无符号数相乘, 将乘积16位数中的低8位存放在A中, 高8位存放在B中。 若乘积大于FFH(255), 则溢出标 志OV置1, 否则OV清0。
结果为: (A)=CFH。
第3章 指令系统
例: 根据累加器A中4~0位的状态, 用逻辑与、 或
指令控制 P1口4~0位的状态, P1口的高3位保持不变。
ANL A, #00011111B ; 屏蔽A的高3位 ANL P1, #11100000B ; 保留P1的高3位 ORL P1, A ; 使P14~0按A4~0置位
逻辑“与”运算指令是将两个指定的操作数按位进行 逻辑“与”的操作。常用于使某些位清零。
第3章 指令系统
例:设A=F6H,(30H)=0FH
执行 ANL A, 30H 操作如下: 11110110 (F6H) ∩ 00001111 (0FH) 注意:按位相“与” ;A∩ (30H) →A
00000110 (06H)
第3章 指令系统
3.3 算术运算类指令
算术运算类指令共有24条,可分为:
加法
带进位加法 带借位减法 加 1减 1 乘除
十进制调整
第3章 指令系统
1. 加法指令
ADD A, #data ; (A) ← (A)+#data
ADD A, direct
ADD A, @Ri ADD A来自 Rn; (A) ← (A)+(direct)
第3章 指令系统
例:MOV A, #05H ADD A, #08H
;05H→A ;05H+08H→A=0DH
DA A
;结果调整A=13H,即是13
的BCD码
注意:DA A指令只能跟在ADD或ADDC加法指令 后,不适用于减法。
第3章 指令系统
3.4 逻辑运算及移位类指令
逻辑运算及移位指令共有 24 条 , 其中逻辑指令有“与”、 “或”、 “异或”、 累加器A清零和求反20条, 移位指令4条。
ADDC A, #0FH
MOV 41H, A
;加数高8位0FH和Cy与A相加,A=22H
;高8位与进位位之和存入41H中(41H)=22 ;总和为221BH,总结果在41H,40H单元中
第3章 指令系统
3. 带借位减法
SUBB A, #data ; (A) ← (A)-(CY)-#data SUBB A, direct ; (A) ← (A)-(CY)-(direct)
相关文档
最新文档