第3章 MCS-51指令系统

发布时间:2024-08-09  

指令编码格式及分类

寻址方式

数据传送类指令

算术运算类指令

逻辑运算类指令

控制程序转移类指令

位操作类指令

学习指导和要求

理解和掌握指令的三种编码格式;

熟练掌握寻址方式;

熟记各种类型的指令格式及功能,并能编写简单程序。

§3-1 指令编码格式及分类

一、 指令编码格式

一条指令表示计算机所完成的某种操作。它通常由操作码和操作数两部分组成。例如:


MOV A,R1

本系统有下列三种指令编码格式:


单字节指令(49条)

格式1:


7 0

操作码

格式2:


7 0

操作码

双字节指令(46条)格式:

操作码

数据或地址

三字节指令(16条)格式:

操作码

数据或地址

数据或地址

例如:


一字节指令空操作NOP的编码格式为:

0 0 0 0 0 0 0 0

操作码

数据传送指令MOV A,R1的编码格式为:


1 1 1 0 1 0 0 1

操作码

两字节指令MOV A,#40H的编码格式为:

0 1 1 1 0 1 0 0 操作码74H

0 1 0 0 0 0 0 0 立即数40H

三字节指令MOV 20H,#3AH的编码格式为:

0 1 1 1 0 1 0 1 操作码75H

0 0 1 0 0 0 0 0 操作数的地址20H

0 0 1 1 1 0 1 0 立即数3AH

MOV DPTR,#1000H的编码格式为:


1 0 0 1 0 0 0 0 操作码90H

0 0 0 1 0 0 0 0 操作数高八位10H

0 0 0 0 0 0 0 0 操作数低八位00H

二、指令分类

按指令功能分为:


数据传送类指令(29条);算术运算类指令(24条);逻辑运算类指令(24条);控制转移类指令(17条);位操作指令(17条)。


在上述111条指令中,64条指令执行时间为一个机器周期,45条指令执行时间为两个机器周期,只有乘、除法指令执行时间为四个机器周期。当主频为12MHz时,典型指令执行时间为1us。


§3-2 寻址方式

寻址方式是指操作数存放存储单元地址的表示形式。


MCS-51指令系统共提供七种寻址方式:


立即寻址

该方式把操作数(即立即数)包含在指令字节中。在指令格式中,在立即数前冠以符号 "#"表示立即寻址方式。


例如:


MOV A,#40H ;A 40H

MOV DPTR,#1000H ; DPTR 1000H

存储格式为:


操作码

8位立即数

 

90H

10H

00H

 

操作码

高8位立即数

低8位立即数

直接寻址

该方式是把操作数的地址包含在指令字节中,而操作数本身则存放在该地址指示的数据存储单元中。在指令格式中,操作数的地址直接写在指令中。


例如:


MOV A,40H ;A (40H)

设:(40H)= 2BH


MOV A,40H 存储和执行示意图如图所示。


操作码

E5H A

 

直接地址

40H

 

40H

执行前,(40H)= 2BH

执行后,(40H)= 2BH,(A)= 2BH


寄存器寻址方式

该方式把操作数存放在指定的寄存器中。能实现这种寻址的寄存器有:R0~R7、A、B、DPTR。


例如:


MOV A,#30H ;A ←30H

立即寻址 寄存器寻址

 

MOV R0,R7 ;R0 (R7)

寄存器寻址寄存器寻址

寄存器间接寻址方式

该方式是把操作数的所在地址存放在指定的寄存器中。能实现这种寻址方式的寄存器有:R0、R1、DPTR。在指令格式中,在寄存器前面冠以符号"@"表示。


例如:


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

寄存器间接寻址

寄存器寻址

设:(R0)= 40H (40H)= 3FH

执行前:(R0)= 40H (40H)= 3FH

执行后:(R0)= 40H (40H)= 3FH (A)= 3FH


基址加变址寻址方式

该方式把DPTR或PC寄存器作为基址寄存器,累加器A作为变址寄存器,(A)+(PC)或(A)+(DPTR)的和作为操作数的16位地址。这种寻址方式的指令只有三条:


MOVC A,@A+DPTR ; A←((A)+(DPTR))

MOVC A, @A+PC ; A←((A)+(PC))

JMP @A+DPTR ;跳转至(A)+(DPTR)

前两条是程序存储器读指令,用MOCV助记符。


相对寻址方式

这种寻址方式是以程序计数器PC的当前值为基准,加上指令中给出的相对偏移量rel以形成目标地址。该寻址方式常用在条件转转指令中,相对偏移量rel给出相对于PC当前值的跳转范围,其值是一个带符号的8位二进制数,取值范为-128~127,以补码形式置于操作码之后存放。


位寻址方式

MCS-51具有位处理功能,可以对二进制"位"进行操作。


(1) 位寻址的寻址范围


内部RAM中的20H-2FH字节地址范围,共128位,位地址为00H-7FH。

特殊功能寄存器的可寻址位。可位寻址的特殊功能寄存器有B、ACC、PSW、IP、IE SCON、TCON、P0~P3,共81个。

PSW中的CY作为位累加器。

(2) 位寻址方式


位寻址方式使用直接寻址方式,有下列四种表示形式:


直接地址方式:在指令中直接给出位地址。

点操作符方式:在字节地址或寄存器名与位序号之间加一个点。

位名称方式:直接给出寄存器的位名称。

例如状态寄存器PSW的格式如下:


D7 D6 D5 D4 D3 D2 D1 D0 位地址

CY AC F0 RS1 RS0 OV / P D0H

位累加器

若将OV的内容传送到位累加器CY,可用下列指令完成。


MOV C ,0D2H MOV C,PSW.2

位地址 点方式

 

MOV C,0D0H.2 MOV C,OV

点方式 位名称

寻址方式与寻址存储空间:


寻址方式    符号表示    寻址存储空间

立  即      #data      程序存储器

直  接      direct     程序存储器和SFR

寄存器      寄存器名    R0~R7、A、B、DPTR

寄存器      @R0,@R1    内部RAM 00H~7FH

间  接      @DPTR      外部RAM 64KB

基址加      @A+PC      程序存储器

变  址      @A+DPTR

相对寻址    rel        程序存储器

指令表中符号意义的说明:


Rn: n=0~7,即R0~R7

Ri: i=0、1,即R0、R1

direct: 表示直接寻址方式

#data: 8位立即数

#data16: 16位立即数

addr16: 16位地址

addr11: 11位地址

rel: 相对偏移量

bit: 直接寻址位

§3-3 数据传送类指令

格式:MOV 目标,源;目标 源


特点:


(1) 指令中有数据源地址和传送数据目标地址, 传送方向由源地址中的数据传送到目的地址中,源地址中的内容不变。


(2) 数据传送类指令的执行结果不影响程序状态寄存器(PSW)中的各标志位。


数据传送类指令分为以下几种:


内部数据传送指令

数据传送在单片机内部进行,不通过外部总线,传送速度快。指令格式如下:


MOV A,#data ;A ←data

MOV Rn,#data ;Rn ←data

MOV direct,#data ;direct ← data

MOV @Ri,#data ;(Ri) ← data

MOV DPTR ,#data16 ;DPTR ← data16

MOV A , Rn ;A ←(Rn)

MOV Rn , A ;Rn ←A

MOV A , direct ;A←(direct)

MOV direct, A ;direct ← (A)

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

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

MOV Rn, direct ;Rn←(direct)

MOV direct , Rn ;direct←(Rn)

MOV @Ri ,direct ;(Ri)←(direct)

MOV direct, @Ri ;direct←((Ri))

MOV direct2,direct1 ;direct2←(direct1)

累加器与外部RAM之间的数据传送指令

(1)由Ri提供外部RAM的单元地址。格式:


MOVX A,@Ri ;A←((Ri)),i=0,1

MOVX @Ri, A ;(Ri) ←(A),i=0,1

只能访问外部RAM 00H-FFH256个存储单元。


(2)由DPTR提供外部RAM单元地址。格式:


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

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

可以访问外部RAM的任意一个存储单元。


程序存储器数据传送指令

包括内部程序存储器和外部程序存储器。只能读数据传送是单方向的。格式如下:


MOVC A,@A+DPTR ;A ←((A)+(DPTR))

MOVC A,@A+PC ;A←((A)+(PC))

这两条指令同常用于查找程序中的数据表格。


堆栈操作指令

堆栈是建立在内部RAM中,通过堆栈指示器SP进行读写操作。指令格式为:


PUSH direct ;SP←(SP)+1, (SP)←(direct)

POP direct ;direct←((SP)), (SP)←(SP)-1

数据交换指令

(1) 字节交换指令格式为:


XCH A, Rn ;(A)←→(Rn),n=0~7

XCH A, direct ;(A)←→(direct)

XCH A, @Ri ;(A)←→((Ri)),i=0,1

(2) 半字节交换指令格式为:


XCHD A,@Ri ;(A3~0)←→((Ri)3~0)

SWAP A ;(A3~0)←→(A7~4)

这两条指令通常用于十六进制数或BCD码的数位交换。


§3-4 算术运算类指令

该类指令有加、减、乘、除四种,其特点是运算结果影响程序状态寄存器PSW中的标志位。


一、加法类运算指令

加法指令(影响CY、OV、AC、P)

ADD A, #data ; A (A)+data

ADD A,Rn ; A (A)+(Rn)

ADD A,direct ; A (A)+(direct)

ADD A,@Ri ; A (A)+((Ri))

带进位位CY的加法(影响CY、OV、AC、P)

ADDC A,#data ; A (A)+data+CY

ADDC A,Rn ;  ; A (A)+(Rn)+CY

ADDC A,direct ; A (A)+(direct)+CY

ADDC A,@Ri ; A (A)+((Ri))+CY

加1指令

INC A ; A (A)+1(影响P)

INC Rn ; Rn (Rn)+1

INC direct ; direct (direct)+1

INC @Ri ; (Ri) ((Ri))+1

二.减法运算指令

带借位位CY的减法(影响CY、OV、AC、P)

SUBB A,#data ; A (A) - data - CY

SUBB A,Rn ; A (A) - (Rn) - CY

SUBB A,direct ; A (A) - (direct) - CY

SUBB A,@Ri ; A (A) - ((Ri)) - CY

减1指令

DEC A ; A (A) - 1(影响P)

DEC Rn ; Rn (Rn) - 1

DEC direct ; direct (direct) -1

DEC @Ri ;(Ri) ((Ri)) - 1

三、乘除指令

乘法指令

MUL AB ;B、A (A)×(B),影响OV、P

若(B)﹥ 0,则OV=1;否则OV=0。


除法指令

DIV AB  ;A、B (A)/(B),影响OV、P

A中存放被除数,B中存放除数,执行之后A中存放商,B中存放余数。若除数为0,则OV=1,表示除法无意义。


四、十进制调整指令

十进制调整指令用于对BCD码十进制数加法运算的结果进行调整。


格式: DA A


调整方法为:


A中低四位大于9或标志位AC=1,则低四位加6调整,即A (A)+06H。

A中高四位大于9或标志位CY=1,则高四位加6调整,即A (A)+60H。

§3-5 逻辑运算类指令

一.单操作数逻辑运算指令

累加器清零

CLR A ; A 0

累加器取反

CPL A ; A ( A )

累加器循环左移

RL A ;

累加器循环右移

RR A ;

累加器带进位CY循环左移

RLC A ;

 

CY A7 A0

An+1 An ,CY A7 , A0 CY

累加器带进位CY循环右移

RRC A ;

 

CY A7 A0

A0 CY, CY A7 , An+1 An

二.双操作数逻辑运算指令

逻辑与

ANL A,#data ; A (A)^data

ANL A,Rn ; A (A)^(Rn), n=0-7

ANL A,direct ; A (A)^(direct)

ANL A,@Ri ; A (A)^((Ri)), i=0,1

ANL direct,A ; direct (direct)^(A)

ANL direct,#data ; direct (direct)^data

逻辑或

ORL A,#data ; A (A)Vdata

ORL A,Rn ; A (A)V(Rn), n=0-7

ORL A,direct ; A (A)V(direct)

ORL A,@Ri ; A (A)V((Ri)), i=0,1

ORL direct,A ; direct (direct)V(A)

ORL direct,#data ; direct (direct)Vdata

逻辑异或

XRL A,#data ; A (A)data

XRL A,Rn ; A (A)(Rn),n=0-7

XRL A, direct ; A ( A)( direct)

XRL A,@Ri ; A (A)((Ri)),i=0,1

XRL direct,A ; direct (direct)(A)

XRL direct,#data ; direct (direct)data

§3-6 控制转移类指令

共分三种:无条件转移、条件转移和循环转移。


无条件转移

(1) 长转移指令


格式:LJMP 标号;转移至标号处执行,转移范围为64KB。


(2) 短转移指令


格式:SJMP 标号;转移至标号处执行,转移范围为256B。


(3) 绝对转移指令


格式:AJMP 标号 ;转移范围为2KB


(4) 相对转移指令


格式: JMP 标号 ;转移目标地址为(A)+(DPTR) PC。


条件转移指令

(1) 累加器判零转移指令


JZ 标号;若(A)=0,转至标号执行。

JNZ 标号;若(A) 0,转至标号执行。

(2) 比较转移指令


CJNE A,#data,标号;(A)  data,转至标号执行

CJNE A,direct,标号;(A)  (direct),转至标号执行

CJNE Rn,#data,标号;(Rn)  data,转至标号执行

CJNE @Ri,#data,标号;((Ri))  data,转至标号执行

(3) 减'1'不为零转移指令


DJNZ Rn,标号;Rn (Rn) -1 , 若(Rn) 0,转至标号执行。

DJNZ direct,标号;direct (direct)-1,若(direct) 0,转至标号执行。

空操作指令

NOP ;PC (PC)+1,不作任何操作,只消耗一个机器周期的时间,常用于程序的等待和延时。

§3-7 位操作指令

位传送指令

MOV C,bit ; CY (bit)

MOV bit, C ; bit (CY)

位置位和清除指令

SETB C ;CY 1

CLR C ;CY 0

SETB bit ;bit 1

CLR bit ;bit 0

位运算指令

ANL C,bit ;CY (CY)( bit)

ANL C,/bit ;CY (CY)( bit)

ORL C,bit ;CY (CY)V( bit)

ORL C,/bit ;CY (CY)V( bit)

CPL C ;CY  (CY)

CPL  bit ; bit   ( bit )

位控制转移指令

JC 标号 ;若(CY)=1,转至标号处执行

JNC 标号 ;若(CY)=0,转至标号处执行

JB bit,标号 ;若(bit)=1,转至标号处执行

JNB bit, 标号 ;若(bit)=0 , 转至标号处执行

JBC bit,标号 ;若(bit)=1,转至标号处执行,并且0 bit。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    优势: ① EMB系统全称电子机械制动系统。作为下一代的制动系统解决方案,与目前液压制动系统相比的优势在于:结构简洁,节省空间,更快速的制动响应,更易满足高级自动驾驶等。  ② 在EMB系统......
    功能安全要求ASILD的条件下,传感器完全满足ASILC的要求。 独特优势: ①EMB系统全称电子机械制动系统。作为下一代的制动系统解决方案,与目前液压制动系统相比的优势在于:结构简洁,节省空间,更快......
    、8051、8751,以及对应的低功耗型号80C31、8051、87C51,因而MCS-51特指Intel的这几种型号。 在计算机领域,系列机是指同一厂家生产的具有相同系统结构的机器。20世纪80年代......
    MCS-51系列单片机各种不用的类型特点介绍;MCS是Intel公司生产的单片机的系列符号,例如,Intel公司的MCS-48、MCS-51、MCS-96系列单片机。MCS-51系列......
    口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。   这篇文章主要和大家介绍一下关于MCS......
    作为移位器使用。RXD( P3.0)脚为接收端口,TXD(P3.1)脚为发送端口。中断控制系统 MCS-51单片机的中断功能较强,以满足不同控制应用的需要。51系列有5个中断源(52系列有6个中断源),即外......
    MCS-51单片机的前缘后世;其中关于intel发展史部分摘自百度。 单片机,是一种采用超大规模集成电路技术把CPU、RAM、ROM、IO、中断系统、定时器/计时器等电路模块集成到一块硅片上构成的计算机系统......
    机外设、智能仪器仪表、通讯设备、家用电器等。特别适合于嵌入式微型机应用系统。 单片机开发系统有单片单板机和仿真器。实现单片机应用系统的硬、软件开发。 单片机 单片机的历史及发展概况 第一阶段(1974......
    第2章 MCS-51单片机的结构与原理;2.1 MCS-51单片机的硬件功能 2.2 MCS-51硬件系统结构 2.3 存储器结构 2.4 I/O端口 2.5 复位电路 2.6 CPU时序 2.7......
    机驱动LED点阵的电子制作 51单片机只是爱好者们的一种“爱称”,51单片机指的是所有搭载可执行INTEL 8031指令系统的MCU的单片机。这里,我们需要澄清单片机实际使用方面的一个产品概念,MCS......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>