AT89C51单片机指令系统

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

第3章AT89C51单片机指令系统

难点

∙MCS-51单片机的寻址方式

∙数据传送指令和算术运算指令的使用

∙位操作和控制转移类指令的使用

要求

掌握:

∙MCS-51单片机的寻址方式

∙指令系统的基本格式

∙指令系统的操作功能

了解:

∙指令系统的基本格式

∙操作数的使用方法

∙指令系统的操作过程

3.1 MCS-51单片机指令格式

3.2 寻址方式

3.3 指令系统

3.1 MCS-51单片机指令格式

计算机的指令系统是表征计算机性能的重要指标,每种计算机都有自己的指令系统。MCS—51单片机的指令系统是一个具有255种代码的集合,绝大多数指令包含两个基本部分:操作码和操作数。操作码表明指令要执行的操作的性质;操作数说明参与操作的数据或数据所存放的地址。

MCS—51指令系统中所有程序指令是以机器语言形式表示,可分为单字节、双字节、三字节3种格式。

用二进制编码表示的机器语言由于阅读困难,且难以记忆。因此在微机控制系统中采用汇编语言指令来编写程序。本章介绍MCS—51指令系统就是以汇编语言来描述的。

表3-1汇编指令与指令代码

标号:操作码目的操作数,源源操作数;注释

标号与操作码之间“:”隔开;

操作码与操作数之间用“空格”隔开;

目的操作数和源源操作数之间有“,”分隔;

操作数与注释之间用“;”隔开。

标号是由用户定义的符号组成,必须用英文大写字母开始。标号可有可无,若一条指令中有标号,标号代表该指令所存放的第一个字节存储单元的地址,故标号又称为符号地址,在汇编时,把该地址赋值给标号。

操作码是指令的功能部分,不能缺省。MCS—51指令系统中共有42种助记符,代表了33种不同的功能。例如MOV是数据传送的助记符。

操作数是指令要操作的数据信息。根据指令的不同功能,操作数的个数有3、2、1或没有操作数。例如MOV A,#20H,包含了两个操作数A和#20H,它们之间用“,”隔开。注释可有可无,加入注释主要为了便于阅读,程序设计者对指令或程序段作简要的功能说明,在阅读程序或调试程序时将会带来很多方便。

3.2 寻址方式

所谓寻址方式,通常是指某一个CPU指令系统中规定的寻找操作数所在地址的方式,或者说通过什么的方式找到操作数。寻址方式的方便与快捷是衡量CPU性能的一个重要方面,MCS—51单片机有七种寻找方式。

3.2.1 立即数寻址

立即寻址方式是操作数包括在指令字节中,指令操作码后面字节的内容就是操作数本身,其数值由程序员在编制程序时指定,以指令字节的形式存放在程序存储器中。立即数只能作为源操作数,不能当作目的操作数。

例如:MOV A,#52H ;A←52H

MOV DPTR,#5678H ;DPTR←5678H

立即寻址示意图如3.1所示。

图3.1 立即寻址示意图

3.2.2直接寻址

在指令中含有操作数的直接地址,该地址指出了参与操作的数据所在的字节地址或位地址。

例如:MOV A,

52H ;把片内RAM字节地址

52H单元的内容送累加器A中。

MOV 52H,A;把A的内容传送给片内RAM的52H单元中。

MOV 50H,60H ;把片内RAM字节地址60H单元的内容送到50H单元中。

MOV IE,#40H ;把立即数40H送到中断允许寄存器IE。IE为专用功能寄存器,其字节地

址为0A8H。该指令等价于MOV 0A8H,#40H。

INC 60H ;将地址60H单元中的内容自加1。

图3.2直接寻址方式示意图在MCS-51单片机指令系统中,直接寻址方式可以访问2种存储空间:(1)内部数据存储器的低128个字

节单元(00H~7FH)(2)80H~FFH中的(SFR)特殊功能寄存器。

这里要注意,指令MOV A,#52H与MOV A,52H指令的区别,后者表示把片内RAM字节地址为52H单元的内容传送到累加器(A)。

3.2.3寄存器寻址

由指令指出某一个寄存器中的内容作为操作数,这种寻址方式称为寄存器寻址。寄存器一般指累加器A和工作寄存器R0~R7。例如:

MOV A,Rn ;A←(Rn)其中n为0~7之一,Rn是工作寄存器。

MOV Rn,A;Rn←(A)

MOV B,A;B←(A)

寄存器寻址方式的寻址范围包括:

·寄存器寻址的主要对象是通用寄存器,共有4组32个通用寄存器,但寄存器寻址只能使用当前寄存器组。因

此指令中的寄存器名称只能是R0~R7。在使用本指令前,需通过对PSW中RS1、RS0位的状态设置,来进行当前寄存器组的选择。

·部分专用寄存器。累加器A、B寄存器以及数据指针DPTR等。

3.2.4寄存器间接寻址方式

由指令指出某一个寄存器的内容作为操作数,这种寻址方式称为寄存器间接寻址。这里要注意,在寄存器间接寻址方式中,存放在寄存器中的内容不是操作数,而是操作数所在的存储器单元地址。

寄存器间接寻址只能使用寄存器Ro或Rl作为地址指针,来寻址内部RAM(00H~FFH)中的数据。寄存器间接寻址也适用于访问外部RAM,可使用R0,Rl或DPTR作为地址指针。寄存器间接寻址用符号“@”表示。例如:MOV R0,#60H ;R0←60H

MOV A,@R0 ;A ← ((R0))

MOV A,@R1 ;A ← ((R1))

指令功能是把Ro或R1所指出的内部RAM地址60H单元中的内容送累加器A。假定(60H)=3BH,则指令的功能是将3BH这个数送到累加器A。

例如,MOV DPTR,#3456H ;DPTR←3456H

MOVX A,@DPTR ;A ←((DPTR))

是把DPTR寄存器所指的那个外部数据存储器(RAM)的内容传送给A,假设(3456H)=99H,指令运行后(A)=99H。

同样,MOVX @DPTR,A;MOV @R1,A;也都是寄存器间接寻址方式。寄存器间接寻址方式的示意图如图3.3所示。

图3.3 寄存器间接寻址方式示意图

3.2.5位寻址

MCS-51单片机中设有独立的位处理器。位操作指令能对内部RAM中的位寻址区(20H~2FH)和某些有位地址的特殊功能寄存器进行位操作。也就是说可对位地址空间的每个位进行位状态传送、状态控制、逻辑运算操作。例如指令

SETB TR0 ;TR0←1

CLR 00H ;(00H)←0

MOV C,57H ;将57H位地址的内容传送到位累加器C中

ANL C,5FH ;将5FH位状态与进位位C相与,结果在C中

相关文档
最新文档