[工学]第三章 MCS-51单片机的寻址方式和指令系统

上传人:油条 文档编号:49697031 上传时间:2018-08-01 格式:PPT 页数:143 大小:1.63MB
返回 下载 相关 举报
[工学]第三章 MCS-51单片机的寻址方式和指令系统_第1页
第1页 / 共143页
[工学]第三章 MCS-51单片机的寻址方式和指令系统_第2页
第2页 / 共143页
[工学]第三章 MCS-51单片机的寻址方式和指令系统_第3页
第3页 / 共143页
[工学]第三章 MCS-51单片机的寻址方式和指令系统_第4页
第4页 / 共143页
[工学]第三章 MCS-51单片机的寻址方式和指令系统_第5页
第5页 / 共143页
点击查看更多>>
资源描述

《[工学]第三章 MCS-51单片机的寻址方式和指令系统》由会员分享,可在线阅读,更多相关《[工学]第三章 MCS-51单片机的寻址方式和指令系统(143页珍藏版)》请在金锄头文库上搜索。

1、第三章 MCS-51单片机的 寻址方式和指令系统主讲:喻萍 二0一一年三月内容:l3.1 MCS-51指令概述l3.2 寻址方式l3.3 指令系统3.1 MCS-51指令概述l指令:是规定计算机进行某种操作的命令 。l指令系统:计算机所执行的全部指令的集合 。(指令系统功能决定计算机的智能,一般说 指令系统越丰富,计算机的功能也越强。)l指令代码(机器码):在计算机中指令 都是以二进制代码形式表示和存放的,这种二 进制代码称为指令代码。5、指令格式:一条指令对应着一种基本操作,因此指令通常包含操作码、操作数两部分。 操作码:指明执行什么性质和类型的操作。 操作数:指明参与操作的数或数的存放地址

2、。操作码 操作数1 ,操作数2 ,操作数 3 表示其中内容可以没有4、指令地址:存放指令代码的储存单元地址。6、指令代码的三种格式:指令代码是指令的二进制表示方法,是在程序存 储器中存放的指令编码格式,共三种格式 。 l单字节指令 (两种格式)l双字节指令 l三字节指令操作码操作码 寄存器编码操作码操作数或地址操作码操作数或地址操作数或地址3.2 寻址方式一、立即寻址二、寄存器寻址三、直接寻址四、寄存器间接寻址五、基址变址寻址六、相对寻址七、位寻址l寻找指令操作数或操作数地址即是寻址l寻找操作数或操作数地址的方式就是寻址方式 一、立即寻址l操作数放在指令中,紧跟在操作码后面 , 用“”号表示

3、。 例1:MOVA,# 60H;A#60H 操作码60ACC例2:MOV DPTR,# 3400H功能: DPTR#3400H程序存储器(PC)(PC)+1(PC)+2立即数高8位立即数低8位DPH DPL操作码3400结果(DPTR)3400H二、寄存器寻址l指出某一寄存器的内容作为操作数 l寄存器指A、B 、DPTR、CY以及R0R7 lR0R7用寄存器的编码000111选定lA、B 、DPTR、CY隐含在操作码中例1、MOV A,R0 ;(R0)A 例2、ADD A,R1 ;(A)+(R1)A 例3、INC R0 ; (R0)+1(R0)例3、INC R0 ; (R0)+1(R0)三、直

4、接寻址 指令直接给出操作数的有效地址,不 用“”号表示。 l能直接寻址的存储空间(只在内部) : 1、RAM内部数据,地址00H7FH 2、SFR寄存器,地址80HFFHl至少是双字节指令例1:MOV A,3AH ;(3AH) Al表示把片内RAM中3AH单元的内容 送累加器A。结果(A)F8HF8A例2:MOV A,90H (MOV A,P1 )90H可用寄存器符号P1表示功能:表示把P1口的内容送到A ;(P1)A 结果(A)43H四、寄存器间接寻址l指令指出某一寄存器的内容作为操作数的地址, 用符号表示。 l操作数的地址要事先放在指定的寄存器中。 如:如:R0R0、R1R1、DPTRDP

5、TR、SPSP为间址寻址寄存器为间址寻址寄存器l能进行寄存器间接寻址的存储空间有:lR0、R1寻址片内片内RAMRAM的128字节单元lDPTR、R0、R1寻址片外片外64kB64kB存储器空间 lSP寻址堆栈堆栈区的单元例1:MOV R0, AR0 的内容为30H,A的内容为34H 例2:MOV A,R1 l已知: (R1)10H, (10H)45H 结果(A)45HMOVX DPTR,Al已知: (A)30H, (DPTR)2000H 结果: (2000H)30H五、基址变址寻址l是指基址寄存器内容加上变址寄存器内容之 和作为操作数的有效地址。两者之和为16 位的地址 基址寄存器:基址寄存

6、器:PCPC或或DPTRDPTR 变址寄存器:累加器变址寄存器:累加器A A (A为无符号数)l能进行基址变址寻址的存储空间只 有: 程序存储器中数据程序存储器中数据由于程序存储器是只读的,因此基址变 址寻址只有读操作而无写操作。只有读操作而无写操作。例如指令: 1、MOVC A,APC ; (A)(PC)A 2、MOVC A,ADPTR; (A)(DPTR)A 指令MOVC A,ADPTR;执 行示意图结果:(ACC)64H六、相对寻址l以当前PC的内容为基准,加上指令给出的 偏移量(rel)形成新的PC值(转移地址) 的寻址方式。 转移地址目的地址转移地址目的地址 当前(当前(PCPC)r

7、elrel 目的地址目的地址PCPC当前值当前值十十relrel 目的地址目的地址转移指令的转移指令的PCPC值值2 2(或(或3 3)十十relrel 目的地址目的地址转移指令地址转移指令字节数转移指令地址转移指令字节数relrell仅出现在转移指令中,用于修改PC值,主 要用于实现程序的分支转移。 l相对偏移量(rel)放在操作码的后面,即 指令第二个字节给出的数据 。lrel是一带符号的8位二进制数,以补码形 式出现。l程序转移范围:以PC的当前值为起始地址 ,相对转移在+127 -128之间 。例如: SJMP rel SJMP 08Hl功能:PCPC+2+08Hl已知:(PC)200

8、0H(rel)08Hl 转移地址:(PC)200AHSJMP 08H 相对寻址示意图七、位寻址l位寻址只能对有位地址的单元作位寻址 操作。l位寻址其实是一种直接寻址方式,不过 其地址是位地址。例如: MOV 32H,C ;32H进位C位地址 内部RAM中的位寻址区。单元地 址为20H2FH,共16个单元128位 ,位地址是00H7FH。 专用寄存器的可寻址位。可供位 寻址的专用寄存器共有11个,实际 寻址位83位。能进行位寻址的存储空间:3.3 指令系统(111条)v按执行时间 :单周期:64双周期:45四周期:2 v若 fosc=12MHz, 大多指令执行 仅1sv按指令功能: 分五类 v按

9、字节数分:单字节:49双字节:45三字节:17按照指令的功能分5大类一、数据传送类指令(29条) 二、算术运算类指令(24条) 三、逻辑操作类指令(24条) 四、控制转移类指令(17条) 五、位操作类指令 (17条)在描述指令系统的功能时,常用符号介绍:指令描述符号介绍lRn当前选寄存器组中的8个工作寄存器R0 R7(n=07)。lRi间址寻址的2个寄存器,只能是R0、R1( i=0,1)。ldirect片内RAM的8位地址,也可是SFR的8位 地址或符号,表示直接寻址方式的直接地址。l#data/#data16包含在指令中的8位/16位立 即数。l addr11 /addr1611位/16位

10、目的地址。lrel相对转移的偏移量。8位带符号补码表示 的数。lDPTR数据指针。lbit内部RAM或SFR直接寻址位地址。lA累加器(直接寻址方式表示为ACC)。B专用寄存器B。C进位标志位,或布尔处理机中的累加位。指令描述符号介绍l l间址符号,如间址符号,如RiRi,DPTRDPTRl l/ / 位操作数的前缀,表示对该位操作位操作数的前缀,表示对该位操作 数取反,如数取反,如/bit/bit。l l()()由由 寻址的单元中的内容。寻址的单元中的内容。l l(X X)由由X X的内容作为地址的存的内容作为地址的存 储单元的内容储单元的内容。l l 箭头右边的内容取代箭头左边的箭头右边的

11、内容取代箭头左边的 内容。内容。指令描述符号介绍一、数据传送类指令(29条)l l传送指令的格式:传送指令的格式: MOV 目的操作数,源操作数l l功能:目的操作数功能:目的操作数源操作数。源操作数。指令执行后,源操作数不变,目指令执行后,源操作数不变,目 的操作数修改为源操作数。的操作数修改为源操作数。数据传送可在三个区间进行 芯片内部各单元之间(芯片内部各单元之间(R0R0R7R7、A A、 RAMRAM以及以及SFR)SFR) 。 A A与外部数据存储器与外部数据存储器RAMRAM之间。之间。 A A与程序存储器与程序存储器ROMROM之间。之间。由此可把数据传送指令分成三部分( (一

12、)内部数据传送(通用传送指令)一)内部数据传送(通用传送指令) 1以A为目的操作数MOV A,Rn;A (Rn)MOV A,Ri ;A(Ri) MOV A,direct ;A(direct)MOV A,#data;A#data11101rrr 1110011i11100101 direct11100100 data双字节vv 例例: MOV AMOV A,R1R1若(若(R1R1)=20H,=20H,(20H20H)=62H =62H 结果:结果:(A A)62H62H2以Rn为目的操作数MOV Rn,A ;Rn AMOV Rn,direct ;Rn ( direct)MOV Rn,#data

13、 ;Rn #data vv例例: MOV R7MOV R7,40H40H。若(若(40H40H)=30H=30H结果:结果:(R7R7)30H30H3以直接地址为目的操作数MOV direct,A ;direct(A)MOV direct,Rn ; direct ( Rn )MOV direct1,direct2;direct1(direct2)MOV direct, Ri ; direct (Ri) MOV direct, #data ; direct#data例题:vv例例1 1: MOV 35HMOV 35H,R0R0设(设(R0R0)=50H=50H,(50H)=10H(50H)=10

14、H结果:结果:(35H35H)=10H=10H vv例例2 2: MOV 0E4HMOV 0E4H,78H78H 设(设(78H78H)=9CH=9CH结果:结果:(0E4H0E4H)=9CH=9CH4以间接地址为目的操作数MOV Ri,A;(Ri) (A)MOV Ri,direct;(Ri) (direct)MOV Ri,#data ;(Ri) #datavv例例:MOV R1,30H设:(30H)=6FH,(R1)=40H结果:(40H40H)=6FH=6FH5以DPTR为目的操作数 (唯一的16位立即传送)MOV DPTR,#data16 l功能:DPTR #data16l格式:1001

15、0000 立即数高8位 立即数低8 位l例: MOV DPTR,#2000H 结果:(DPTR)= 2000H。课堂练习: 设(70H)60H,(60H)20H, (P1) B7HlMOV R0,#70H MOV Rn,#datalMOV A,R0 ?lMOV R1,A ?lMOV B,R1 ?lMOV R0,P1 ?lMOV 60H,#60H ?(R0)=(A)=(R1)=(B)=(70H)=(60H)=70H60H60H20HB7H60HMOV A,RiMOV Rn,AMOV direct,RiMOV Ri, direct MOV direct ,#data请写出相对应的指令形式,和请写出相对应的指令形式,和程序程序执行结果。执行结果。6、数据交换(芯

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

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