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

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

目录

第二章MCS-51单片机指令系统 (2)

第一节概述 (2)

一、指令格式 (2)

二、指令的三种表示形式 (2)

三、指令的字节数 (3)

四、指令按功能分类 (3)

五、指令系统综述 (3)

第二节寻址方式 (4)

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

总学时8学时

教学目的:1、了解指令字节数、指令分类和指令中所用的符号含义。

2、掌握判别指令的寻址方式。

3、掌握各类指令的格式、功能、含义和特点。

教学重点:1、指令的寻址方式。

2、指令的格式、含义、特点和功能。

3、使用指令的限制条件。

教学难点:1、指令寻址方式的意义。

2、相对寻址的意义及偏移量的计算。

3、堆栈操作时SP和堆栈变化规律。

教学方法:讲授法

教学过程:MCS-51单片机指令系统

第一节概述

一、指令格式

1、指令:计算机用于控制各种功能部件,完成某一指定动作的指示和命令。

2、指令格式:是指指令码的结构形式。指机器码的结构形式。通常指令可分为操作码和操

作数两部分,操作码部分比较简单,操作数部分比较复杂。因为MCS-51采用了地址压缩技术,大部分指令采用单地址指令格式:操作码操作数或操作数地址。这种格式的指令码中除操作数外通常还给出了一个操作数或操作数地址,称为单地址指令格式。

3、程序:完成不同功能的指令的有序集合。

二、指令的三种表示形式

识别指令的标志就是指令的表示形式。有二进制、十六进制和助记符三种形式。

1、指令的二进制形式:指令的二进制形式是一种可以直接被计算机识别和执行的形式。故

又称为指令的机器码或汇编语言的源程序的目标代码。

2、指令的十六进制形式:用十六进制数代替二进制中的二进制数,形成的指令格式称为十

六进制形式。主要用于阅读和通过键盘输入指令码。

3、指令的助记符形式:又称指令的汇编语言形式。由英文单词或英文单词缩写字母形象表

征指令的功能的形式。用于编写汇编语言源程序。

计算机只能识别和执行二进制形式,十六进制和汇编语言形式都必须通过人工和机器翻译成机器码形式,才能被计算机执行。这一过程称为汇编。

MCS-51单片机中常用的就是汇编语言形式(助记符形式)。其格式为:

标号:操作码第二操作数及操作数结果,第一操作数;指令功能解释语句

前面已经介绍过,第二操作数和操作数结果是放在累加器A中的,故,其格式简化为:

标号:操作码A,第一操作数;指令功能解释语句

其中,除“操作码”外,其余项目均可省略。

三、指令的字节数

根据一条指令的操作码和操作数的二进制码之和的位数,可以把指令分成单字节指令,双字节指令和三字节指令。CPU在执行单字节指令时,PC加1,执行双字节指令时,PC加1两次,执行三字节指令是,PC加1三次。通常指令字节数越少,所占用的存储单元越少,指令执行的速度越快。在程序设计时应尽可能选用指令字节数少的指令。

1、单字节指令:指令中只有一个字节,由8位二进制数组成。共有49条。可分为两类:一类是无操作数的单字节指令;一类是含有操作数寄存器编号的单字节指令。

1)无操作数的单字节指令:这类指令的指令码中只有操作码字段没有操作数字段,或操作数字段隐含在操作码字段中。如NOP(没有操作数);INC DPTR(操作数隐

含在操作码中);像MUL AB;DIV AB等均属于此类指令。其中的DPTR,A,B等寄

存器中都放有操作数,而隐含在操作码中。

注:只要是专用寄存器作为操作数地址的,这个专用寄存器均隐含在操作码中。

2)含有操作数寄存器编号的单字节指令:这类指令的指令码由操作码字段和专门用来指示操作数所在寄存器号的字段组成。这个寄存器号一定是寄存器的编号,而不是符号(符号地址)。能对寄存器编号的有工作寄存器R n。例如:mov a,R n;其中的n取值范围为0~7,相应的指令格式为:11101rrr。前5位二进制数是操作码且隐含了累加器A,后面的rrr为操作数所在的寄存器编号,编号范围为000~111共8种。

2、双字节指令

双字节指令码中,一个字节为操作码字段,放在前,另一个字段为操作数字段,放在后面。它可以是立即数,也可以是片内RAM地址,共有45条。

3、三字节指令

三字节指令的指令码中,第一字节为操作码,第二和第三字节均为操作数或操作数地址。由于有2个字节的操作数或操作数地址。三字节指令共有17条4类:1)mov DPTR,#data16

2)mov direct,#data

3)CJNE A,#data,rel

4)LCALL addr16

四、指令按功能分类

MCS-51指令系统共有111条指令,操作码字节采用42种助记符,可以进行51中基本运算。按功能可分成5类:数据传输指令(29条);算术运算指令(24条);逻辑运算指令(24条);控制转移指令(17条);位操作指令(17条)。

五、指令系统综述

1、指令系统:某种单片机指令的集合或全体。

2、指令系统操作数字段使用的符号:

MCS-51指令系统中,除采用了42种助记符表示操作码的功能外,还在操作数字段使用了一些符号:

1)R n:工作寄存器。可以是R0~R7中的任意一个。

2)#data:立即数(8位二进制数)。即指令码中直接给出的8位二进制数,因此不占用内存单元。#是立即数的标志。

3)Direct:直接地址(8位二进制数)。是指片内RAM中的128B中的任何一个存储单元的地址以及SFR中的一个(可以使用符号地址,也可以使用物理地址)。

4)@R i:表示寄存器间址,即寄存器里的内容作为操作数的地址。其中R i表示当前选中的工作寄存器,且只能是R0或R1。@是寄存器间址的标志。

5)#data16:16位立即数。

6)@DPTR:表示以DPTR为数据指针的间址。用于访问片外的RAM/ROM。

7)Bit:位地址。可以是片内RAM位地址,SFR的位地址。

8)Addr11:11位目标地址。

9)Addr16:16位目标地址。

10)rel:补码形式表示的8位地址偏移量。

11)$:当前指令地址。

12)/:位操作数的取反操作前缀。

13)(⨯):表示内容,表示以“⨯”为地址的存储单元或寄存器中的内容(与direct比较,direct表示地址)。

14)((⨯)):(总的)表示内容。表示以“⨯”为地址的存储单元或寄存器中的内容作为地址的存储单元或寄存器中的内容。

15):表示将箭头右边的内容送入箭头左边的单元中。

第二节寻址方式

寻址方式:寻找操作数的方法称为寻址方式。

计算机执行指令的过程实际上就是不断寻找操作数和对操作数的过程。

在MCS-51系统中,操作数存放的范围是很宽的,可以在片外ROM/RAM中,也可以在片内ROM/RAM中,还可以在片内SFR中,这些地址的表示也是很丰富和灵活的,A,B,DPTR,PC等direct,Rn,Ri等C,bit等。寻址包括两方面内容:一是操作数的寻址,二是指令地址的寻址,(如转移指令,调用指令),其寻址的方式共有7种,寄存器寻址,直接寻址,立即数寻址,寄存器间址,变址寻址,相对寻址和位寻址。

对于两个操作数指令,若不特别声明,寻址方式均是指源操作数的寻址方式。

寻址方式所对应的寄存器和存储器空间见P40表3.1.

一、寄存器寻址

操作数存放在寄存器中,指令中直接给出该寄存器的名称(指寄存器的编号),这种寻址方式为寄存器寻址。如,mov A,Rn;把Rn中的内容传到A中。

采用寄存器寻址的有:1、工作寄存器组Rn;2、累加器A(用其编号,而不用其符号地址ACC或物理地址E0H)3、通用寄存器B;4、数据指针DPTR;5、C(布尔加法器)。

在形成的操作码中隐含有指示的寄存器的编号,

二、直接寻址

是指在指令中直接给出操作数所在存储单元的地址号,该地址指示了参与操作的数据所在的字节地址或位地址。这种寻址方式主要用于对特殊功能寄存器和内部RAM(低128B)的访问。如:MOV A,30H。

在直接寻址方式中,可以直接用符号地址代替。

三、立即寻址

相关文档
最新文档