第03章整理备课讲稿

上传人:yulij****0329 文档编号:139001309 上传时间:2020-07-19 格式:PPT 页数:94 大小:946.50KB
返回 下载 相关 举报
第03章整理备课讲稿_第1页
第1页 / 共94页
第03章整理备课讲稿_第2页
第2页 / 共94页
第03章整理备课讲稿_第3页
第3页 / 共94页
第03章整理备课讲稿_第4页
第4页 / 共94页
第03章整理备课讲稿_第5页
第5页 / 共94页
点击查看更多>>
资源描述

《第03章整理备课讲稿》由会员分享,可在线阅读,更多相关《第03章整理备课讲稿(94页珍藏版)》请在金锄头文库上搜索。

1、第3章 MCS-51的指令系统,本章介绍MCS-51汇编语言的指令系统。,3.1 指令系统概述,MCS-51的基本指令共111条,按指令在程序存储器所占的字节来分,其中: (1)单字节指令49条; (2)双字节指令45条; (3)三字节指令17条。,按指令的执行时间来分,其中: (1)1个机器周期(12个时钟振荡周期)的指令64条; (2)2个机器周期(24个时钟振荡周期)的指令45条; (3)只有乘、除两条指令的执行时间为4个机器周期(48个时钟振荡周期); 在12MHz晶振的条件下,每个机器周期为1s。 有一个位变量的指令子集,在进行位变量处理的程序设计时十分有效、方便。,指令格式就是指令

2、的表示方法,一条指令由两部分组成,即操作码和操作数。 操作码用来规定指令进行什么操作, 操作数则是指令操作的对象,3.2 指令格式,3.3 指令系统的寻址方式,寻址方式就是在指令中说明操作数所在地址的方法。 51单片机共有7种寻址方式。 1寄存器寻址方式: 寄存器寻址方式的操作数在寄存器中,因此指定了寄存器就可以得到操作数。 MOV A,Rn ;(Rn)A,n=07 表示把寄存器Rn的内容传送给累加器A。,寄存器寻址的范围,(1)4组通用工作寄存区共32个工作寄存器。寻址不同工作区的Rn,要通过RS1、RS0转换; (2)部分特殊功能寄存器,例如A、B 以及数据指针寄存器DPTR。,2直接寻址

3、方式: 在指令寻址方式中,操作数直接以单元地址的形式给出,单元地址中的内容就是操作数。 MOV A,40H 表示把内部RAM 40H单元的内容传送给累加器A。,直接寻址方式的寻址范围,(1)内部RAM的128个单元; (2)特殊功能寄存器。特殊功能寄存器除了以单元地址的形式给出外,还可以用寄存器符号的形式给出。 例如: MOV A,80H 与 MOV A,P0是等价的。 * 直接寻址方式是访问除A、B、DPTR以外的SFR的唯一寻址方式。,3. 寄存器间接寻址方式: 寄存器间接寻址方式就是寄存器中存放的是操作数的地址,使用的寄存器是R0与R1,为了区别于寄存器寻址方式,在寄存器的名称前面加前缀

4、标志“” 。 访问内部RAM或外部RAM的低256个字节时,可以(片内只能)采用R0或R1作为间址寄存器。例如: 片内: MOV A,Ri ;i=0或1 片外: MOVX A,Ri ;i=0或1 假如,其中Ri中的内容为40H,操作的结果是把内部RAM中40H单元的内容送到A。 访问外部RAM时,可以(外部RAM的低256B以外的字节,只能)采用DPTR作为间址寄存器。例如: MOVX A,DPTR 假如,其中DPTR中的内容为0140H,操作的结果是把外部RAM中0140H单元的内容送到A。,寻址范围: (1)访问内部RAM低128个单元,其通用形式为: MOV A,Ri ;i=0或1 (2

5、)对片外RAM的64K字节的间接寻址,可以使用下面的形式:MOVX A,DPTR (3)片外RAM的低256字节,除可以使用DPTR外,还可以使用R0、R1。 例如:MOVX A,Ri ;i=0或1 (4)堆栈区:堆栈操作指令有:PUSH(压栈)和POP(出栈),使用堆栈指针(SP)作间址寄存器可以对堆栈区进行间接寻址。,4立即寻址方式:,立即寻址方式就是操作数在指令中直接给出。为了区别于直接寻址方式,需在操作数前面加前缀标志“#”。例如: MOV A,#40H 操作的结果是把立即数40H(常数)送给累加器A。,5基址寄存器加变址寄存器间址寻址方式: 这种寻址方式用于读取ROM中的数据并送给A

6、。本寻址方式是以DPTR或PC作基址寄存器,以累加器A作为变址寄存器,并以两者内容相加形成的16位地址作为操作数的地址,以达到访问数据表格的目的。 例如:指令 MOVC A,A+DPTR 其中A的原有内容为05H,DPTR的内容为0400H,该指令执行的结果是把程序存储器0405H单元的内容传送给A。,说明: (1)本寻址方式只能对ROM进行寻址,或者说它是专门针对ROM的寻址方式,寻址范围可达到64KB。 (2)本寻址方式的指令只有3条: MOVC A,A+DPTR MOVC A,A+PC JMP A+DPTR,6位寻址方式: MCS-51有位处理功能,可以对数据位进行操作,因此就有相应的位

7、寻址方式。位寻址指令中可以直接使用位地址。例如: MOV C,40H ;作用是把位40H的值送到进位位C。,位寻址方式的寻址范围,(1)内部RAM中的位寻址区: 单元地址为20H2FH,共16个单元,位地址是00HFFH,对这128个位的寻址使用直接地址表示。 位寻址区中的位有两种表示方法, a. 直接使用位地址。 例如:40H。 b. 单元地址加位数的表示方法。 例如,28H.0,指的是28H单元中的最低位。 位40H 与 28H.0 是同一个位,它们是等价的。,(2)特殊功能寄存器中的可寻址位: 可供寻址的特殊功能寄存器有11个,共有88个位,其中5个位没有定义,所以有可寻址位83个。 这

8、些寻址位在指令中有如下4种表示方法: a.直接使用位地址。例如PSW.5的位地址为0D5H。 b.位名称的表示方法。例如PSW.5是F0标志位,可使用 F0表示该位。 c.单元地址加位数的表示方法。例如0D0H单元(即PSW寄存器)的第5位,表示为:0D0H.5。 d.特殊功能寄存器符号加位数的表示方法。例如PSW寄存器的位5表示为:PSW.5。,7相对寻址方式: 相对寻址方式是为解决程序转移而专门设置的,为转移指令所采用。 在相对寻址的转移指令中,给出了地址偏移量,以“rel”表示,即把PC的当前值加上偏移量就构成了程序转移的目的地址: 目的地址=转移指令所在的地址+转移指令的字节数+rel

9、,在实际编程中,“rel” 通常用标号代替 例:SJMP LOOP1,例:2000H:SJMP 08H ; 原PC值为2000H;执行这条指令后的当前PC值为2002H,rel为08H。2002H+08H=200AH,转移目的地址为200AH,程序就跳转至200AH去执行了。,右图为SJMP 08H相对寻址示意图。,偏移量rel是一个带符号的8位二进制数补码数,范围是:128+127。因此相对转移是以转移指令所在地址为基点,向地址增加方向最大可转移(127+转移指令字节)个单元地址,向地址减少方向最大可转移(128-转移指令字节)个单元地址。,MCS-51指令系统的7种寻址方式及寻址空间 ,概

10、括起来如下表(表3-1 P43):,3.4 MCS-51指令系统分类介绍,111条指令,按功能分类,可分为下面5大类: (1)数据传送类(28条) (2)算术操作类(24条 (3)逻辑运算类(25条) (4)控制转移类(17条) (5)位操作类(17条),描述指令的一些符号,Rn 当前寄存器区的8个工作寄存器 R0R7(n=07)。 Ri 当前选中的寄存器区中可作间接寻址 寄存器的2个寄存器R0、R1(i=0,1)。 direct 直接地址,即8位的内部数据存储器单 元或特殊功能寄存器的地址。 #data 包含在指令中的8位立即数。,#data16 包含在指令中的16位立即数。 rel 相对转

11、移指令中的偏移量,为8位 的带符号补码数 DPTR 数据指针,可用作16位的地址寄 存器。 bit 内部RAM或特殊功能寄存器中的直 接寻址位。 C 或Cy 进位标志位或位处理机中的累加 器。,addr11 11位目的地址 addr16 16位目的地址 间接寻址寄存器前缀 (X) X中的内容。 (X) 由X寻址的单元中的内容。 箭头右边的内容被箭头左边的内容 所取代。,3.4.1 数据传送类指令 数据传送类指令是编程时使用最频繁的一类指令。一般情况下的通用格式及助记符如下: MOV , 执行的结果是把源操作数传送给目的操作数,属“复制”性质,而不是“搬家”。如果需要不丢失目的操作数,一般使用传

12、送类指令中的交换型指令。 数据传送类指令不影响标志位中的进位标志位Cy、辅助进位标志位Ac和溢出标志位OV,影响奇偶标志位P。,1、以累加器A为目的操作数的指令(4条): MOV A,Rn ;(Rn)A,n=07 MOV A,Ri ;(Ri)A,i=0,1 MOV A,direct ;(direct)A MOV A,#data ;#dataA 操作:将源操作数的内容送入累加器A。例如: MOV A,R6 ;(R6)A,属寄存器寻址 MOV A,R0 ;(R0)A,属间接寻址 MOV A,70H ;(70H)A,属直接寻址 MOV A,#78H ;78HA,属立即寻址,【例】 若R0=40H,(

13、30H)=60H,(40H)=50H MOV A,R0 ;将工作寄存器R0中的数据传送 至A中,A=40H MOV A,R0 ;将以R0中内容为地址的存储单 元中的数据送至A中 A=50H MOV A,30H ;将直接地址30H存储单元中 的数据传送至A中,A=60H MOV A,#30H ;将立即数#30H送入A中, A=30H,2、以Rn为目的操作数的指令: MOV Rn,A ;(A)Rn, n=07 MOV Rn,direct ;(direct)Rn, n=07 MOV Rn,#data ;#dataRn, n=07 操作:将源操作数的内容送入当前一组工作寄存器区的R0R7中的某一个寄存

14、器。,【例】:当(A)=30H时, 执行 MOV R6,A ;(A)R6 结果: (R6)=30H 【例】:当(70H)=10H时, 执行 MOV R6,70H ;(70H)R6 结果: (R6)=10H 【例】:执行 MOV R6,#78H ;78HR6 结果: (R6)=78H,3、以直接地址direct为目的操作数的指令: MOV direct,A ;(A)direct MOV direct,Rn ;(Rn)direct, n=07 MOVdirect1,direct2;(direct2)direct1 MOV direct,Ri ;(Ri)direct,i=0,1 MOV direct

15、,#data ;#datadirect 操作:将源操作数送入直接地址指出的存储单元。direct指的是内部RAM或SFR的地址。,【例】 当(A)=30H时, 执行 MOV 55H,A ;(A)55H 结果:(55H)=30H,4、以寄存器间接地址为目的操作数的指令: MOV Ri,A ;(A)(Ri),i=0,1 MOV Ri,direct ;(direct)(Ri) MOV Ri,#data ;#data(Ri) 操作:将源操作数的内容送入R0或R1指出的存储单元内。,【例】:当(A)=30H时,(R0)=44H 执行 MOV R0,A ;(A)(R0) 结果:(44H)=30H 【例2】

16、:当(R0)=33H 执行 MOV R0,#22H ;22H(R0) 结果:(33H)=22H,5、16位数传送指令: MOV DPTR,#data16 ;#data16DPTR 操作:将16位常数送入DPTR。 这是指令系统中唯一的一条16位数据的传送指令,用来设置地址指针DPTR。DPTR由DPH与DPL组成,立即数的高8位送入DPH,立即数的低8位送入DPL。,【例】: 执行 MOV DPTR,#1234H ;1234HDPTR 结果: (DPTR)=1234H 其中:DPH=12H,DPL=34H,6、堆栈操作指令: 在MCS-51内部RAM中可以设定一个“后进先出”的区域称作堆栈。 堆栈指针SP指出堆栈的栈顶位置。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号