目 录
第二章 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)含有操作数寄存器编号的单字节指令:这类指令的指令码由操作码字段和专门用来指示操作数所在寄存器号的字段组成。这个寄存器号一定是寄存器的编号,而不是符号(符号地址)。能对寄存器编号的有工作寄存器Rn。例如:mov a,Rn;其中的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种助记符表示操作码的功能外,还在操作数字段使用了一些符号: