ImageVerifierCode 换一换
格式:PPT , 页数:77 ,大小:490KB ,
文档编号:6043571      下载积分:22 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-6043571.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(ziliao2023)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(第三章MCS-51单片机指令系统课件.ppt)为本站会员(ziliao2023)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

第三章MCS-51单片机指令系统课件.ppt

1、123-1 汇编语言汇编语言一、指令系统一、指令系统指令:是CPU能够识别并指挥计算机执行 某种操作的命令。指令系统:CPU所有指令的集合,称为该计 算机的指令系统。3二、汇编语言二、汇编语言 (参见参见P97)编写程序时使用的程序设计语言有编写程序时使用的程序设计语言有3种:机器语种:机器语言、汇编语言和高级语言。言、汇编语言和高级语言。机器语言机器语言:用二进制代码表示,故又称指令代码或机器代:用二进制代码表示,故又称指令代码或机器代码(机器码),机器语言是计算机本身固有的软件,能码(机器码),机器语言是计算机本身固有的软件,能被主机直接识别并加以分析和执行之。被主机直接识别并加以分析和执

2、行之。缺点:不易阅读、不便于记忆、编程烦难且易出错。缺点:不易阅读、不便于记忆、编程烦难且易出错。汇编语言汇编语言:助记符:助记符 用以反映指令的功能和主要特征,用它来代替机器指令,用以反映指令的功能和主要特征,用它来代替机器指令,便于人们对指令的理解和记忆。便于人们对指令的理解和记忆。4n例:例:要将一个立即数要将一个立即数80H送入累加器送入累加器A,其指令为:,其指令为:机器码:机器码:74H 80H 汇编语言:汇编语言:MOV A,#80Hn汇编:汇编语言汇编:汇编语言机器语言机器语言n反汇编:机器语言反汇编:机器语言汇编语言汇编语言51.机器码指令机器码指令(P60)以以8位二进制数

3、(字节)为基础,位二进制数(字节)为基础,分单字节、双字节和三分单字节、双字节和三字节指令。其格式为:字节指令。其格式为:单字节指令:单字节指令:双字节指令:双字节指令:三字节指令:三字节指令:2汇编语言格式汇编语言格式(P99)标号标号:操作码操作码 操作数操作数1,操作数操作数2,操作数操作数3;注释注释 只有操作码是必须的只有操作码是必须的 操作码操作码 地址码地址码操作码操作码 地址码地址码数据或地址码数据或地址码操作码操作码数据或地址码数据或地址码数据或地址码数据或地址码6n标号标号:可无,由用户定义,根据需要设置。以字母开始,后面:可无,由用户定义,根据需要设置。以字母开始,后面

4、加加0 7个字母或数字,并允许有一个下划线;另外,系个字母或数字,并允许有一个下划线;另外,系 统保留使用的字符或字符组不能用作标号。统保留使用的字符或字符组不能用作标号。标号标号代表该指令所在的地址(符号地址)代表该指令所在的地址(符号地址),可作为其它指可作为其它指 令的操作数,与操作码之间用令的操作数,与操作码之间用“:”分隔。分隔。n操作码操作码:决定:决定(命令命令)主机做何操作。主机做何操作。25个字母或数字个字母或数字,用助记用助记 符表示,一般为英语单词的缩写。符表示,一般为英语单词的缩写。n操作数操作数:03个,中间用个,中间用“,”隔开,是指令操作的对象,分目隔开,是指令操

5、作的对象,分目 的操作数和源操作数。的操作数和源操作数。操作码和操作数是指令的核心部分,二者之间操作码和操作数是指令的核心部分,二者之间需用空需用空 格分离格分离。n注释注释:对指令或程序的解释,可有可无,其作用是便于阅读对指令或程序的解释,可有可无,其作用是便于阅读 理解程序。注释必须以理解程序。注释必须以“;”开始。开始。73伪指令伪指令(P100)用于提供汇编控制信息,可以定义程序段的首地用于提供汇编控制信息,可以定义程序段的首地址、变量、参数、表格等。址、变量、参数、表格等。不是不是CPU能执行的指令,为汇编程序所识别并指导能执行的指令,为汇编程序所识别并指导汇编如何进行。汇编如何进行

6、。8定位伪指令定位伪指令(起始地址伪指令)(起始地址伪指令)n格式:格式:ORG addr16n作用:指出该伪指令后面的程序编译后的机器码作用:指出该伪指令后面的程序编译后的机器码指令存贮地址的起始值指令存贮地址的起始值addr16。定义字节常数伪指令定义字节常数伪指令n格式:格式:DB X1,X2,X3,Xnn作用:定义一个常数表(作用:定义一个常数表(8bit););Xi为单字节数据,为单字节数据,也可以是单引号括起来的字符串,还可以是用户也可以是单引号括起来的字符串,还可以是用户定义的数据符号。定义的数据符号。9例例:ORG 1000H DB 30H,31H,32H,33H DB 4,5

7、,0011B 结果:结果:地址地址1000H 1001H 1002H 1003H 1004H 1005H 1006H 数据数据 30H 31H32H33H 34H03H35H 10 定义字伪指令定义字伪指令n格式:格式:DW Y1,Y2,Y3,Ymn作用:定义一个常数表(作用:定义一个常数表(16bit),),Yi为双字节数据为双字节数据例:例:ORG 1000H DW1122H,5566H,30H 依出现的先后顺序存,高位依出现的先后顺序存,高位 存低地址单元,低位存高地址单元存低地址单元,低位存高地址单元(先存高八位,后存低八位)(先存高八位,后存低八位)结果结果:1000H 1001H

8、1002H 1003H 1004H 1005H 11H00H22H 66H55H30H11位定义伪指令位定义伪指令(BIT)格式:格式:X BIT 位地址位地址 其中,位地址可以是绝对地址,也可以是符号地址。其中,位地址可以是绝对地址,也可以是符号地址。例:例:ABC BIT P0.6 ;把把P0.6位地址赋值给位地址赋值给ABC 即:在后面的编程中,即:在后面的编程中,ABC即可作为位地址即可作为位地址P3.1使用。使用。12等效伪指令等效伪指令 格式:格式:X EQU Y 作用:将作用:将X与与Y等效,便于阅读和修改程序。等效,便于阅读和修改程序。X为代号,以字母开头,为代号,以字母开头,

9、18个字符,个字符,Y为地址或立即数。为地址或立即数。n例例:定义一个单元:定义一个单元 K=35H,则:,则:K EQU 35H 1)MOV A,K ;等价于等价于MOV A,35H ;实现的功能是实现的功能是A(35H)此处此处K表示内部表示内部RAM中中35H字节字节单元单元(K代表地址代表地址)2)MOV C,K ;等价于等价于MOV C,35H ;实现的功能是实现的功能是C(35H位)位)此处此处K表示内部表示内部RAM中中35H位位单元单元(K代表地址代表地址)13有些汇编系统定义参数也采用以下有些汇编系统定义参数也采用以下 形式:形式:例:例:CODE EQU 45H MOV A

10、,#CODE 等价于等价于MOV A,#45H(6)汇编结束伪指令汇编结束伪指令n格式:格式:ENDn作用:通知汇编程序需汇编的源程序到此结束,汇编作用:通知汇编程序需汇编的源程序到此结束,汇编程序对程序对END后的所有语句均不汇编。汇编语言程序的后的所有语句均不汇编。汇编语言程序的最后一句必须是最后一句必须是END,一个程序中只允许出现一条,一个程序中只允许出现一条END语句。语句。14三、数据形式三、数据形式 二进制数二进制数:0、1表示表示,后带后带字母字母B,例:例:10101100B十进制数十进制数:09组成,后什么都组成,后什么都不带或带不带或带D,例:,例:37十六进制数十六进制

11、数:0F组成,后带组成,后带字母字母H,例:例:2AH 立即数立即数:“#”开头开头,后跟数值,后跟数值,例:例:23,12H 行标号行标号:对应程序空间的:对应程序空间的16位地址,汇编时翻译成相位地址,汇编时翻译成相 应的数据(即:地址),可直接用于程序应的数据(即:地址),可直接用于程序中中 SFR符号符号:可作为直接地址用于程序:可作为直接地址用于程序 例:例:MOV A,#01H 等价于等价于MOV 0E0H,#01H;因为因为A的地址是的地址是 ;0E0H153-2 寻址方式寻址方式(P54)定义定义:数据、指令代码在存贮器中存放的位置称为数据、指令代码在存贮器中存放的位置称为地址

12、地址。存放指令代码的地址称为存放指令代码的地址称为指令地址指令地址。存放数据的地址称为存放数据的地址称为操作数地址操作数地址。把寻找操作数地址的方式称为把寻找操作数地址的方式称为寻址方式寻址方式。寻找操作数地址的过程称为寻找操作数地址的过程称为寻址过程寻址过程。16一、立即寻址一、立即寻址n立即寻址方式是指令立即寻址方式是指令直接给出操作数来寻址直接给出操作数来寻址的。(操作的。(操作数包含在指令中,即以指令字节形式存放在程序存贮器数包含在指令中,即以指令字节形式存放在程序存贮器中)中)n通常紧跟指令操作码之后的一个或二个字节数,就是寻通常紧跟指令操作码之后的一个或二个字节数,就是寻址所需的操

13、作数。址所需的操作数。n“#”为立即数指令符号为立即数指令符号n例如例如:指令:指令:MOV A,#70H (机器码机器码)双字节:双字节:74H 70H 操作码操作码 操作数操作数另另:立即寻址还可用于寻址程序存储器:立即寻址还可用于寻址程序存储器 例:例:LJMP 1000H 即:操作数直接在指令中给出即:操作数直接在指令中给出17二、直接寻址二、直接寻址 n直接寻址方式是直接寻址方式是指令直接给出操作数地址指令直接给出操作数地址。(该地址指出该地址指出了参与运算或传送的数据所在的字节或位单元的地址了参与运算或传送的数据所在的字节或位单元的地址)n直接寻址方式可直接寻址方式可访问以下三种地

14、址空间访问以下三种地址空间:(1)特殊功能寄存器地址空间,这是特殊功能寄存器地址空间,这是唯一能访问唯一能访问SFR的的寻址方式寻址方式。(2)内部数据存贮器(内部数据存贮器(RAM)的低)的低128字节。字节。(3)位地址空间(此时也可称为位寻址)。位地址空间(此时也可称为位寻址)。例:例:指令:指令:MOV A,65H;A(65H)机器码:机器码:E5H 65H 操作码操作码 直接地址直接地址 执行结果为将内部执行结果为将内部RAM 65H单元单元 的内容送的内容送A 即:操作数在指令给出的地址单元中即:操作数在指令给出的地址单元中18三、寄存器寻址三、寄存器寻址 n寄存器寻址是寄存器寻址

15、是对指定的工作寄存器对指定的工作寄存器(R0R7)进行读进行读/写写,由指令操作码字节的最低,由指令操作码字节的最低3位指明所寻址的工作寄位指明所寻址的工作寄存器。(对存器。(对A,B,DPTR,Cy等,也可当作寄存器方等,也可当作寄存器方式寻址)式寻址)n例:例:INC R0;(;(R0)+1R0 机器码:机器码:08H 0 0 0 0 1 0 0 0B 指明所用寄存器为指明所用寄存器为R0 即:操作数在指定的寄存器中即:操作数在指定的寄存器中19四、寄存器四、寄存器间接间接寻址寻址n寄存器间址是把寄存器间址是把指定的寄存器内容作为地址指定的寄存器内容作为地址,由,由该地址该地址所指定的单元

16、内容作为操作数所指定的单元内容作为操作数。nMCS-51规定可作为间接寻址的寄存器有:规定可作为间接寻址的寄存器有:1)R0或或R1,用于寻址内部,用于寻址内部RAM低低128字节单元的内容。字节单元的内容。(以及外扩(以及外扩RAM的部分单元)的部分单元)2)数据指针数据指针DPTR,用于寻址外部数据,用于寻址外部数据RAM的的64K字节字节空间空间注注:不能用本寻址方法寻址特殊功能寄存器。:不能用本寻址方法寻址特殊功能寄存器。n间址用符号间址用符号表示。表示。n例:例:MOV A,R0 机器码:机器码:E6H即:操作数在寄存器中数据(地址)指向的存储单元内即:操作数在寄存器中数据(地址)指

17、向的存储单元内20五、相对寻址五、相对寻址 n这与典型微计算机的相对寻址相似。这与典型微计算机的相对寻址相似。n它以它以PC的当前值为的当前值为基准基准,加上指令中给出的相对偏移量,加上指令中给出的相对偏移量(rel)形成有效转移地址。相对偏移量()形成有效转移地址。相对偏移量(rel)是一个带符)是一个带符号的号的8位二进制数,常以补码的形式出现。因此,程序的转位二进制数,常以补码的形式出现。因此,程序的转移范围为:以移范围为:以PC的当前值为起始地址。相对偏移在的当前值为起始地址。相对偏移在128 +127个字节单元之间。个字节单元之间。例例:JC rel 设设 rel=75H,Cy=1,

18、本指令地址为,本指令地址为2000H 则:执行后,则:执行后,PC=2002H+75H=2077H (本条指令的机器码为两个字节)(本条指令的机器码为两个字节)n 偏移量偏移量rel:有符号数:有符号数 128 +127n 相对寻址只适用于对相对寻址只适用于对程序存储器程序存储器的访问,转移指令多采用的访问,转移指令多采用这种寻址方式。这种寻址方式。21六、基寄存器加变址寄存器间接寻址六、基寄存器加变址寄存器间接寻址 (又称为变址寻址)(又称为变址寻址)n该寻址方式为该寻址方式为MCS-51所独特的。所独特的。n它是以程序计数器它是以程序计数器PC或数据指针或数据指针DPTR作为基址寄存器,作

19、为基址寄存器,以累加器以累加器A作为变址寄存器,这二者内容之和为有效地作为变址寄存器,这二者内容之和为有效地址(址(16位)。位)。n共三条:共三条:MOVC A,A+PC;(A)+(PC)A MOVC A,A+DPTR;(A)+(DPTR)A JMP A+DPTR ;(A)+(DPTR)PCn专用于寻址专用于寻址程序存贮器程序存贮器,都是单字节指令。,都是单字节指令。22七位寻址七位寻址8051有位处理功能,可以对数据位进行操作,因有位处理功能,可以对数据位进行操作,因此就有相应的位寻址方式。此就有相应的位寻址方式。位寻址的位寻址的寻址范围寻址范围:(1)片内数据存储器中的位寻址区片内数据存

20、储器中的位寻址区 片内片内数据存储器数据存储器中的字节单元地址中的字节单元地址20H2FH,16个单元共个单元共128位,为位寻址区,位地址是位,为位寻址区,位地址是00H7FH。对这对这128个位的寻址使用直接位地址表示。个位的寻址使用直接位地址表示。(2)可位寻址的特殊功能寄存器位可位寻址的特殊功能寄存器位 可供位寻址的特殊功能寄存器共有可供位寻址的特殊功能寄存器共有11个,有寻址个,有寻址位位83位。位。23寻址位寻址位在指令中有以下在指令中有以下4种表示方法种表示方法:直接使用位地址表示方法。例如直接使用位地址表示方法。例如12H 字节单元地址加位数字节单元地址加位数的表示方法。例如的

21、表示方法。例如 88H单元的单元的位位5,则表示为,则表示为88H.5。特殊功能寄存器特殊功能寄存器符号加位符号加位的表示方法的表示方法,例如例如 PSW寄寄存器的位存器的位5,可表示为:为,可表示为:为 PSW.5。位名称位名称表示方法,特殊功能寄存器中的一些寻址位表示方法,特殊功能寄存器中的一些寻址位是有名称的,例如是有名称的,例如 PSW寄存器位寄存器位5为为F0标志位,则可标志位,则可使用使用F0表示该位。表示该位。24说明:说明:指令中多个操作数的寻址方式未必相同指令中多个操作数的寻址方式未必相同 7种寻址方式概括起来如下表所列种寻址方式概括起来如下表所列:25表表 31 31 寻址

22、方式与寻址空间寻址方式与寻址空间 寻寻 址址 方方 式式 寻寻 址址 空空 间间1寄存器寻址寄存器寻址R0R7、A、B、CY(bit)、DPTR2直接寻址直接寻址内部内部RAM低低128字节字节特殊功能寄存器特殊功能寄存器3寄存器间接寄存器间接寻址寻址内部内部RAM:R0,R1,SP(仅(仅PUSH、POP)外部外部RAM(R0,R1,DPTR)4立即寻址立即寻址程序存储器程序存储器5变址寻址变址寻址程序存储器(程序存储器(A+PC,A+DPTR)6相对寻址相对寻址程序存储器程序存储器(PC偏移量偏移量)7位寻址位寻址内部数据存储器中有内部数据存储器中有128个可寻址位个可寻址位特殊功能寄存器

23、中可位寻址的位特殊功能寄存器中可位寻址的位26注:注:1.1.对程序存储器对程序存储器,只有,只有3 3种寻址方式、种寻址方式、1 1种操作,即:种操作,即:n1)1)立即寻址;立即寻址;2)2)相对寻址相对寻址 3)3)变址寻址:变址寻址:MOVC A,A+PCMOVC A,A+PC;MOVC A,A+DPTRMOVC A,A+DPTRn读操作读操作2.2.外部外部RAM 00HRAM 00H0FFH0FFHn只能用只能用R0,R1,DPTRR0,R1,DPTR间接寻址间接寻址n有两种操作,读:有两种操作,读:MOVX A,R0/R1/DPTRMOVX A,R0/R1/DPTR 写:写:MO

24、VX R0/R1/DPTR,AMOVX R0/R1/DPTR,A3.3.外部外部RAM 0100HRAM 0100HFFFFHFFFFH多数用多数用DPTRDPTR寻址寻址有两种操作:读、写有两种操作:读、写273-3 指令系统指令系统(P61)nMCS-51指令系统共指令系统共111条。条。49条单字节条单字节 64条条1个机器周期(即个机器周期(即12个振荡周期)个振荡周期)45条双字节条双字节 45条条2个机器周期个机器周期 17条三字节条三字节 2条条4个机器周期(乘、除法)个机器周期(乘、除法)n7种寻址方式。种寻址方式。n说明说明33种操作功能。种操作功能。n按功能分五类:按功能分

25、五类:数据传送数据传送 29 算术运算算术运算 24 逻辑运算逻辑运算 24 位操作位操作 17(12)控制转移控制转移17(22)28指令中用到的符号:指令中用到的符号:nRnR0R7;当前选定工作寄存器组的;当前选定工作寄存器组的R0R7工作寄存器(工作寄存器(n=07)nRiR0,R1;用于用于Ri,以工作寄存器,以工作寄存器R0或或R1作作间接寻址寄存器(间接寻址寄存器(i=0,1),以间接寻址相应的单元。以间接寻址相应的单元。nDirect8位直接地址;直接寻址方式时,用以表位直接地址;直接寻址方式时,用以表示内部示内部RAM或特殊功能寄存器的直接地址。或特殊功能寄存器的直接地址。n

26、#data8位立即数;指令中出现的位立即数;指令中出现的8位立即常数。位立即常数。n#data1616位立即数;指令中出现的位立即数;指令中出现的16位立即位立即常数。常数。29nAddr1616位地址;供位地址;供LCALL或或LJMP指令使用,指令使用,可调用或转向可调用或转向64KB外部程序存储器地址空间的任何单外部程序存储器地址空间的任何单元。元。nAddrll低低11位地址,高位地址,高5位地址与下一条指令重合;位地址与下一条指令重合;供供ACALL和和AJMP指令使用,使程序调用或转向包含下指令使用,使程序调用或转向包含下一条指令的第一个字节在内的一条指令的第一个字节在内的2K字节

27、范围内程序存储器字节范围内程序存储器地址空间。地址空间。nRel带符号的带符号的8位相对偏移量(位相对偏移量(2的补码),常用于的补码),常用于SJMP和所有条件转移指令。范围为相对于下一条指令和所有条件转移指令。范围为相对于下一条指令的第一个字节为起始地址的的第一个字节为起始地址的-128+127字节单元。字节单元。30nBit 8位直接位地址;片内位直接位地址;片内 RAM(包括部分(包括部分特殊功能寄存器)中的可寻址位。特殊功能寄存器)中的可寻址位。n 间接寻址的前缀。间接寻址的前缀。n /位取反。位取反。n(x)x中的内容。中的内容。n(x)由由x中的数据所寻址的单元的内容;中的数据所

28、寻址的单元的内容;即:表示间接寻址的内容。即:表示间接寻址的内容。n或或 表示数据传送方向,左(或右)边的表示数据传送方向,左(或右)边的内容被右(或左)边的内容取代。内容被右(或左)边的内容取代。n 表示数据交换。表示数据交换。31 一、数据传送指令(一、数据传送指令(29条)条)n所谓所谓“传送传送”,即把源地址单元的内容传送到目的,即把源地址单元的内容传送到目的地址单元中去。源地址单元内容不变;或者源、目地址单元中去。源地址单元内容不变;或者源、目的单元内容互换。的单元内容互换。n此类指令是编程中用的最多、最频繁的基本指令此类指令是编程中用的最多、最频繁的基本指令321.以累加器以累加器

29、A为目的操作数的指令为目的操作数的指令 nMOV A,Rn ;(Rn)nMOV A,direct ;A(direct)nMOV A,Ri ;(Ri)nMOV A,#data;#datan功能:功能:把源操作数内容送把源操作数内容送A,源地址内容不变。,源地址内容不变。n源操作数有寄存器寻址、直接寻址、寄存器间址源操作数有寄存器寻址、直接寻址、寄存器间址和立即寻址方式。和立即寻址方式。332.以以Rn为目的操作数的指令为目的操作数的指令 nMOV Rn,A ;(A)nMOV Rn,direct ;Rn(direct)nMOV Rn,#data ;#datan功能:功能:把源操作数内容送入当前工作

30、寄存器区把源操作数内容送入当前工作寄存器区R0R7中中某一个寄存器。某一个寄存器。n源操作数寻址方式有寄存器源操作数寻址方式有寄存器A寻址、直接寻址、立即寻址寻址、直接寻址、立即寻址方式。方式。n注意注意:1)没有没有MOV Rn,Ri 类指令类指令,如:如:MOV R3,R0为为错误指令错误指令 2)没有没有MOV Rn,Rn类指令,如类指令,如MOV R3,R4为错为错n设当前设当前RS1,RS0=00,则则 可用可用MOV R3,04H代替实现代替实现343.以直接地址为目的操作数以直接地址为目的操作数 nMOV direct ,A ;(A)nMOV direct ,Rn ;(Rn)nM

31、OV direct1,direct2;(direct)(direct2)nMOV direct ,Ri ;(Ri)nMOV direct ,#data ;#datan注意注意:特殊功能寄存器的名称可视为直接地址,如:特殊功能寄存器的名称可视为直接地址,如DPH,DPL,P0,P1等可等同各自的地址。等可等同各自的地址。354.以寄存器间址的单元为目的操作数以寄存器间址的单元为目的操作数 nMOV Ri A;AnMOV Ri,direct;(Ri)(direct)nMOV Ri,#data;#datan功能功能:将累加器:将累加器A、直接地址单元内容或立即数送入、直接地址单元内容或立即数送入Ri

32、间间接寻址的单元中接寻址的单元中n源操作数有寄存器寻址,直接寻址,立即寻址方式。源操作数有寄存器寻址,直接寻址,立即寻址方式。n注意注意:Ri只能是只能是R0和和R1,即,即i=0或或1 寻址范围为片内数据存储器寻址范围为片内数据存储器 365.16位数据传递指令位数据传递指令 nMOV DPTR,#data16;DPTR#data16n功能功能:将:将16bit的立即数送入数据指针的立即数送入数据指针DPTRn源操作数是立即寻址源操作数是立即寻址n注注:MCS-51系统只有这一条系统只有这一条16位数据传递指令。位数据传递指令。376.栈操作指令栈操作指令 PUSH(入栈)指令(入栈)指令

33、PUSH direct;SP(SP)+1,(SP)(direct)入栈操作入栈操作:栈指针(:栈指针(SP)+1指向栈顶的上一个空单元,指向栈顶的上一个空单元,将直接地址(将直接地址(direct)寻址的单元内容压入当前)寻址的单元内容压入当前SP所指示所指示的堆栈单元中。的堆栈单元中。POP(出栈)指令(出栈)指令POP direct;direct(SP),SP(SP)-1出栈操作出栈操作:由栈指针(:由栈指针(SP)所寻址的内部数据存储器)所寻址的内部数据存储器(堆栈)单元中内容,送入直接地址寻址的单元中,然后(堆栈)单元中内容,送入直接地址寻址的单元中,然后(SP)-1SP。注注:dir

34、ect可以是有直接地址的特殊功能寄存器,可以是有直接地址的特殊功能寄存器,无无PUSH Rn,POP Rn类指令。类指令。387.累加器累加器A与外部数据存贮器传送指令与外部数据存贮器传送指令 nMOVX A,DPTR;A(DPTR)nMOVX DPTR,A;(DPTR)(A)nMOVX A,Ri ;A(P2)()(Ri)nMOVX Ri,A ;(P2)()(Ri)(A)n功能功能:是:是累加器累加器A与外部数据存贮器与外部数据存贮器之间传送一个字节之间传送一个字节的数据,采用间接寻址方式寻址外部数据存贮器。的数据,采用间接寻址方式寻址外部数据存贮器。39n注意注意:n该组指令是该组指令是CP

35、U访问外部数据存贮器或外扩访问外部数据存贮器或外扩I/O口口的唯一指令。的唯一指令。n用用DPTR或或Ri间接寻址可指向外部数据间接寻址可指向外部数据RAM的相同的相同区域,只是区域,只是DPTR为为16位数据指针位数据指针;而而Ri为为8位,需位,需与与P2配合使用,合成配合使用,合成16位指针。位指针。408.查表指令查表指令(累加器与程序存储器累加器与程序存储器传送指令)传送指令)nMOVC A,A+PC;PC(PC)+1,A(A)+(PC)nMOVC A,A+DPTR;PC(PC)+1,A(A)+(DPTR)n功能功能:分别以:分别以PC或或DPTR作基址寄存器,加上作基址寄存器,加上

36、A的值的值(0255)得)得16位地址,将该地址所指向的程序存贮器单位地址,将该地址所指向的程序存贮器单元的内容送累加器元的内容送累加器A。419.交换指令交换指令 nXCH A,Rn ;A (Rn)nXCH A,direct ;A (direct)nXCH A,Ri ;A (Ri)nXCHD A,Ri ;A30 (Ri)30nSWAP A ;A30 A7442小小 结结1源操作数不变(交换指令除外)源操作数不变(交换指令除外)2基本不影响标志位(对基本不影响标志位(对PSW操作的指令除外)操作的指令除外)3大部分以大部分以“MOV”为操作符。为操作符。4注意指令区别注意指令区别:1)MOV

37、A,30H 与与 MOV A,#30H2)MOV R0,A 与与 MOV R0,A3)MOVX 与与 MOVC5.注意不同指令操作的数据范围注意不同指令操作的数据范围43二、算术运算指令(二、算术运算指令(24条)条)n除增量(加除增量(加1),减量(减),减量(减1)指令外,均在)指令外,均在ACC中进行。中进行。n影响标志位的情况:影响标志位的情况:Cy、AC、OV(注注:加:加1、减、减1指令不影响标志位,乘除不影响指令不影响标志位,乘除不影响AC位)。位)。441.加法指令加法指令(不需进位位)(不需进位位)Rn ;(Rn)nADD A,direct;AA+(direct)Ri ;(R

38、i)#data ;#datan这组加法指令这组加法指令影响标志位影响标志位,即,即:若若bit7有进位,则有进位,则Cy=1否则否则Cy=0;若若bit3有进位,则有进位,则AC=1否则为否则为0;若若bit7和和bit6不同时有进位,不同时有进位,则则OV=1否则为否则为0;视结果视结果ACC中的奇偶情况,确定中的奇偶情况,确定P=1或或P=0。452.加法指令加法指令(带进位位)(带进位位)Rn ;(Rn)nADDC A,direct ;AA+Cy+(direct)Ri ;(Ri)#data ;#datan两个源操作数,且使多字节数的加法成为可能。两个源操作数,且使多字节数的加法成为可能。

39、n对对标志位的影响情况同标志位的影响情况同ADD指令指令n例例:(:(A)=53H (R0)=0FCHADD A,R0 01010011 +)11111100 1)01001111 则:则:Cy=1;P=1;AC=0;OV=C7 C6=0 (C7=1;C6=1)463.二十进制调整指令二十进制调整指令 nDA An功能功能:对:对A中的中的BCD码加法结果进行调整。码加法结果进行调整。n两个两个压缩型压缩型BCD码码,按二进制数相加后,必须经本指令,按二进制数相加后,必须经本指令调整才能得到正确的压缩型调整才能得到正确的压缩型BCD码的和数。码的和数。n说明:说明:BCD码采用四位二进制数编码

40、,并且只采用了其码采用四位二进制数编码,并且只采用了其中的十个编码,即中的十个编码,即00001001,分别代表,分别代表BCD码码09,而而10101111为无效码。为无效码。47 指令的操作为:指令的操作为:n若若(A30)9(即累加器(即累加器A的低的低4位数值大于位数值大于9)或者)或者(AC)=1(即低半字节向高半字节产生进位),则(即低半字节向高半字节产生进位),则A30(A30)+06H(即将(即将A的低的低4位内容加位内容加6调整)以产调整)以产生低生低4位正确的位正确的BCD码值。如果加码值。如果加6调整后,低调整后,低4位产生进位,位产生进位,且高且高4位均为位均为1时,则

41、内部加法将置位时,则内部加法将置位Cy,反之,并不清零,反之,并不清零 Cy标志位。标志位。n同时,若同时,若(A74)9(即累加器即累加器A的高的高4位数值大于位数值大于9)或者或者(Cy)=1(最高进位位最高进位位=1),则高,则高4位需加位需加6调正,以产生调正,以产生高高4位的正确位的正确BCD码值,即码值,即A74(A74)+6。同样,在。同样,在加加6调正后产生最高进位,则置位调正后产生最高进位,则置位Cy,反之,不清零反之,不清零Cy。这。这时时Cy的置位,表示和数的置位,表示和数BCD码值码值100。这对多字节十进制。这对多字节十进制加法有用,不影响加法有用,不影响OV标志。标

42、志。n由此可见,本指令是由此可见,本指令是根据累加器根据累加器A的原始数值和的原始数值和PSW的状的状态,对累加器态,对累加器A进行加进行加06H,60H或或66H的操作。的操作。48n例例1:(:(A)=56H,(,(R5)=67H,已知,已知A,R5中放的均为中放的均为压缩压缩BCD码数,码数,Cy=1,则执行下列指令:,则执行下列指令:ADDC A,R5;DA A;第一条指令是执行带进位的二进制数加法,相加后(第一条指令是执行带进位的二进制数加法,相加后(Cy)=0,(,(AC)=0,然后执行调整指令,然后执行调整指令DA A。因为高。因为高4位值为位值为11,大于,大于9,低,低4位值

43、为位值为14,大于,大于9,所以内部需进行加,所以内部需进行加66H操作,结果得操作,结果得124 BCD码。即:码。即:(A)=01010110 压缩型压缩型BCD:56 (R5)=01100111 压缩型压缩型BCD:67 +)Cy 1 10111110 +01100110 100100100 1 2 4 BCD:124 49 BCD码的减码的减1操作可用加操作可用加99来求得,条件是不计进位值。来求得,条件是不计进位值。例例2设累加器设累加器A中原中原BCD码值为码值为30H,执行下列指令,执行下列指令 ADD A,#99H (A)=00110000 DA A,+)10011001 11

44、001001 调正调正+)01100000 1 00101001 执行相加后,执行相加后,A中内容为中内容为11001001B,高,高4位值大于位值大于9,所以需,所以需加加60H调正。结果累加器中的值为压缩型调正。结果累加器中的值为压缩型BCD码码29,进位位(,进位位(Cy)=1,即实际和数为即实际和数为129,若不计进位,则和数为,若不计进位,则和数为29,它与,它与30-1=29相当。相当。这说明对于十进制数加这说明对于十进制数加99H,相当于减,相当于减1,条件是不计进位位,条件是不计进位位内容。内容。504.增量(加增量(加1)指令)指令 A ;A (A);影响);影响P Rn ;

45、Rn (Rn)n INC direct;direct (direct)+1 Ri ;(;(Ri)(Ri)DPTR ;DPTR (DPTR)n功能功能:把源操作数指定的单元内容加:把源操作数指定的单元内容加1后放回。后放回。n本组指令本组指令不影响标志位不影响标志位(例外例外:INC A影响奇偶标志影响奇偶标志)。515.减法指令减法指令 n减法指令减法指令都是带借位的都是带借位的,没有不带借位的减法指令。,没有不带借位的减法指令。Rn ;(Rn)n SUBB A,direct ;A(A)(direct)Cy Ri ;(Ri)#data ;#datan功能功能:从累加器中减去进位标志:从累加器中

46、减去进位标志Cy和指定的变量,结果和指定的变量,结果存放在累加器存放在累加器A中。中。n若第若第7位有借位,则置位有借位,则置位位Cy,否则,否则Cy清清0。n若第若第3位有借位,则置位位有借位,则置位AC(辅助进位标志辅助进位标志),否则否则AC清清0 n若第若第7和第和第6位中有一位借位,而另一位不借位,则置位位中有一位借位,而另一位不借位,则置位溢出标志溢出标志OV。溢出位。溢出位OV用于带符号的整数减法,它用于带符号的整数减法,它(OV=1)表示一个正数减负数结果为负数或一个负数减)表示一个正数减负数结果为负数或一个负数减正数结果为正数的错误结果。正数结果为正数的错误结果。n视结果视结

47、果ACC中的奇偶情况,确定中的奇偶情况,确定P=1或或P=0。526.减量(减减量(减1)指令)指令 A ;A (A)(影响影响P)nDEC Rn ;Rn (Rn)1Direct;direct (direct)Ri ;(Ri)(Ri)n本组指令本组指令不影响标志位不影响标志位(例外例外:DEC A影响影响P)。n无无DEC DPTR 指令指令(与(与INC指令的区别)指令的区别)n例例:(:(R0)=25H (25H)=2FH DEC R0;则:(则:(R0)=25H,(,(25H)=2EH537.乘除法(无符号)乘除法(无符号)nMUL AB;BA(A)*(B)功能功能:把累加器:把累加器A

48、和寄存器和寄存器B中的无符号中的无符号8位整数相乘,其位整数相乘,其16位积的低位在位积的低位在A中,高位在中,高位在B中,如果积大于中,如果积大于255(0FFH),则),则OV=1否则否则OV=0,进位标志,进位标志Cy总是清总是清“0”。n DIV AB;A(商)(商)(A)/(B)B(余数)(余数)功能功能:把累加器:把累加器A中中8位无符号整数除以位无符号整数除以B寄存器中寄存器中8位无位无符号整数,所得结果商的整数部分存于累加器符号整数,所得结果商的整数部分存于累加器A中,余数中,余数部分存于寄存器部分存于寄存器B中。清零中。清零 Cy和和OV标志位。标志位。注注:若:若B=0 则

49、则OV1,除法结果不确定。,除法结果不确定。54小小 结结n除增量(加除增量(加1),减量(减),减量(减1)指令外:指令外:所有指令都要用到所有指令都要用到ACC(无无ADD 49H,#20H类指令类指令)所有指令都影响所有指令都影响PSW 55三、逻辑操作类指令(三、逻辑操作类指令(24条)条)n分单操作数和双操作数两类,分单操作数和双操作数两类,一般都不影响标志位一般都不影响标志位。561.单操作数逻辑操作单操作数逻辑操作 n累加器累加器A清清0 CLR A;A0 影响影响Pn累加器累加器A取反取反 CPL A;AA 同上同上n累加器累加器A 循环左移循环左移RL A;同上同上n带进位位

50、循环左移带进位位循环左移 RLC A;影响影响Cy、P n累加器累加器A循环右移循环右移 RR A;影响影响Pn带进位位循环右移带进位位循环右移 RRC A;影响影响Cy、P 57图图 39 39 循环移位指令示意图循环移位指令示意图582.双操作数逻辑操作双操作数逻辑操作 (1)逻辑与)逻辑与 Rn ;(Rn)n ANL A,direct;A(A)(direct)Ri ;(Ri)#data ;#datan ANL direct,A ;(direct)(direct)(A)#data;#datan 以以A为目的操作数的指令影响为目的操作数的指令影响P,其余均不影响,其余均不影响PSW59(2)

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|