51单片机 寻址方式

上传人:小** 文档编号:91873054 上传时间:2019-07-03 格式:PPT 页数:31 大小:574.50KB
返回 下载 相关 举报
51单片机 寻址方式_第1页
第1页 / 共31页
51单片机 寻址方式_第2页
第2页 / 共31页
51单片机 寻址方式_第3页
第3页 / 共31页
51单片机 寻址方式_第4页
第4页 / 共31页
51单片机 寻址方式_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《51单片机 寻址方式》由会员分享,可在线阅读,更多相关《51单片机 寻址方式(31页珍藏版)》请在金锄头文库上搜索。

1、MCS-51单片机指令系统,4.1 指令概述 4.2 寻址方式 4.3 MCS-51系列单片机的指令系统,一、指令概述,1 指令的定义 2 指令的组成 3 指令的表示方法,1 指令的定义,指令:是人们向计算机发的一种命令;一条指令对应着一 种操作。 指令系统:CPU所能执行的全部指令的集合。 CPU能够执行多少条指令是由CPU的内部结构决定的。 不同的CPU,其指令系统不同。,2 指令的组成 指令由操作码和操作数组成。,操作码决定CPU执行何种操作。,操作数是指参与运算的数。操作数及操作对象可以是一个数,也可以是数所在的地方。,REG或MEM,3 指令的表示方法,用助记符(指令功能的英文缩写)

2、书写。,操作数用规定的符号书写。,指令在机器中必须以机器码(二进制码)的形式出现。 人们在书写指令时,可以有二种方法: 1 、在计算机发展的初期,人们用机器码书写指令,这一阶段成为机器语言阶段。 优点:用机器码书写的程序,计算机可以直接识别和运行。 缺点:书写时容易出错,不容易记忆。 2、为了克服机器语言的缺点,人们用符号书写指令: 指令由操作码和操作数组成。 这一阶段成为汇编语言阶段. 优点:容易理解和记忆。 缺点:计算机不能直接识别和运行。 汇编语言程序必须转换成机器语言程序,转换方法有二种: 手工转换: 查表 符号指令-机器码指令-Mem 汇编程序: 符号指令-机器-机器码指令-Mem,

3、指令的格式,方括符 表示可选项 标号是该指令的符号地址,可根据需要设置。某个语句一旦赋予某个标号,则在其它语句的操作数中就可以引用该标号,以便控制程序的转移或寻址。标号与操作码之间用冒号“:”分隔开。 操作码和操作数是指令的核心部分,在二者之间用若干空格分隔开。 操作码就是指令功能助记符,指令实体,作用是命令CPU作何种操作。 目的操作数和源操作数二者之间用“,”号隔开。 注释,以“;”开头,标号:操作码 目的操作数,源操作数;注释,Rn:当前工作寄存器R0R7中的一个。 Ri:当前工作寄存器R0R1中的一个。 :间接寻址寄存器或基址寄存器的前缀符号,如Ri,DPTR。 Direct:8位地址

4、,可以是片内RAM单元地址(0127/255)或特殊功能寄存器(SFR)地址。对SFR而言,既可使用它的物理地址,也可直接使用它的名字。 #date: 8位常数。 #date16:16位常数。 addr16:16位目的地址。 addr11: 11位目的地址。 rel:8位带符号地址偏移量,取值范围为-128+127。 Bit:内部RAM和SFR中的具有位寻址功能的位地址。SFR中的位地址可以直接出现在指令中,为了阅读方便,往往也可用SFR的名字和所在的数位表示。如:表示PSW中奇偶校验位,可写成D0H,也可写成PSW.0的形式出现在指令中。 $:当前指令所在地址。 :箭头右边的内容送到箭头左边

5、所在地址。 (x): x中的内容。,二、 寻址方式,寻址方式的定义 MCS51单片机的寻址方式,1 寻址方式的定义 指令由操作码和操作数组成。 指出操作数所在地方的方式就是寻址方式。,操作码决定CPU执行何中操作。,操作数就是操作对象。无论何种指令其操作的对象都是数据。,数据在指令中有2种表示方法: 1、数本身 2、数所在的地方(REG,MEM中)。,2 MCS51单片机的寻址方式,每一种计算机都具有多种寻址方式。寻址方式的多少是 反映指令系统优劣的主要指标之一。 MCS51单片机有7种寻址方式。 1、立即寻址 2、直接寻址 3 、寄存器间址 4、 寄存器寻址 5 、变址寻址 (基址寄存器+变

6、址寄存器间接寻址) 6、相对寻址 7 、位寻址,1、立即寻址,寻址空间:,指令形式:,程序存储器,指令的操作数存放在程序存储器中,操作数紧跟操作码后面,立即寻址:,OP #data,Immediate Addressing,MOV A,# 30H,例1:,30H,MOV DPTR,# 8000H,例2:,80H,00H,注意:符号“#”表明其后跟的是立即数, 立即数就是数字量本身。,2、直接寻址,寻址空间:,指令的三种形式:,直接寻址,直接寻址是访问 SFR 的唯一方法,Direct Addressing,00H7FH 80HFFH,CPU内部,直接 间接,“与”,MOV A, 30H,例1:

7、, ,ANL 30H,#30H,例2:, ,“结果”,说明,在本单片机中规定:访问特殊功能寄存器SFR只能采用直接寻址方式。例如: MOV A, SP ; (A) (SP) MOV A, 81H ; (A) (SP) MOV P1, #5AH ; (P1)(#5AH) MOV 90H,#5AH ; (P1)(#5AH) MOV B, 30H ; (B) (30H),相同,相同,在本单片机中访问特殊功能寄存器SFR只能采用直接寻址方式的原因:SFR分布在80H0FFH范围内,而52系列单片机有256字节的片内RAM,其中的80H0FFH的RAM与SFR所占地址重叠。,MOV A, 90H 等效于

8、 MOV A, P1 属直接寻址 MOV A, R0 ;事先已知 (R0) = #90H 执行的操作:A (90H) 属寄存器间接寻址, 随意写的指令如:MOV A, 85H 则是非法的!,于是规定:这一范围内的RAM只能用寄存器间接寻址方式,SFR只能用直接寻址方式。从而解决了地址冲突的问题。例如:,3、寄存器寻址,寻址空间:,指令的三种形式:,当前选定的寄存器内容就是实际操作数,MOV A,R3,例1:,ADD A,R3,例2:,寄存器寻址:,Register Addressing,操作数隐含,操作数显然,隐含寻址,4、寄存器间接寻址,寻址空间:,指令的三种形式:,寄存器间接寻址:,Reg

9、ister Indirect Addressing,MOV R0,A,例1:,;累加器传送指令, ,MOVX A,DPTR,例2:, ,“读”,“读”,注意: 1)“间接”表示某寄存器中的“内容”只是一个“单元地址”,这个地址单元中存放的数据才是要找的“操作数”。 2)符号“”表示“在”,其含义与读音皆同“at”。 3) 规定工作寄存器只有R0和R1才用于间接寻址 4)规定用MOV指令访问片内RAM,用MOVX访问外部RAM,5、基址寄存器加变址寄存器间接寻址,基址寄存器加变址寄存器间接寻址:,以DPTR或PC作基址寄存器,A作变址寄存器 两者相加形成操作数地址。,寻址空间:,程序存储器(A+

10、DPTR、A+PC),指令形式:,MOVC A,A+DPTR,例:,设(A)= 0FH (DPTR)= 2400H, ,“读”,“读”,MOVC A,A+DPTR,6、相对寻址,程序存储器,寻址空间:,指令的三种形式:,相对寻址,以当前PC值为基准地址,加上指令的偏移量“rel”,结果为目标地址。rel为有符号补码数,范围:-128+127,一般为双字节或三字节指令,Relative Addressing,寻址指令 执行地址 目标地址,例: SJMP rel 操作:跳转到的目的地址 = 当前16位PC值 + rel,注意: 1)“当前PC值”指程序中下一条指令所在的首地址, 是一个16位数;

11、2)符号“rel”表示“偏移量”,是一个带符号的单字 节数,范围是:-128+127(80H7FH),在实际编程中,“rel” 通常用标号代替,JNZ rel,例:,; 累加器A不等零则转移 设:rel=23H,(PC)=2002H,rel=23H,修正后转移 目标地址D (PC) = 2025H,(PC) = 2 0 0 2 H,Rel = 2 3 H,),0,0,5,2,0,2,H,D =,(PC)=2112H,rel=F2H,修正后转移 目标地址 D (PC) = 2104H,例:DJNZ R7,rel ;(R7) 1不为“0”则转,(PC) = 2 1 1 2 H,Rel = F 2

12、H,),F,F,4,0,1,2,H,D =,7、位寻址,寻址空间:,片内RAM的20H2FH字节地址 位地址:00H7FH 共128位,SFR中12个能被8整除的字节地址 共93位,Bit Addressing,以访问触发器的方式,对内部RAM、SFR 的位地址空间进行访问,称为位寻址。位地址 用于布尔指令。,指令中直接给出了操作数所在的位地址。 例: CLR P1.0 ;(P1.0) 0 SETB ACC.7 ;(ACC.7) 1 CPL C ;( C ) NOT( C ),注意: 1)位地址里的数据只可能是一个 0 或 1 2)有的位地址十分明确,如 P1.0, ACC.7等, 有的位地址

13、则“不太明确”,如: MOV A,17H ; (A)(17H),17H是字节地址 MOV ACC.0,17H ;(ACC.0)(17H),这里ACC.0 是位地址所以该指令中的17H是22H单元的第7位,片内RAM中有128个位可按位寻址的位,位地址:00H7FH分布在:20H2FH单元; 另外,在SFR中还有92个位可按位寻址,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM区,普通RAM区,位寻址区,工作寄存器区,27H,22H,21H,20H,26H,24H,25H,23H,28H,07 06 05 04 03 02 01 00,0F 0E 0D

14、0C 0B 0A 09 08,17 16 15 14 13 12 11 10,1F 1E 1D 1C 1B 1A 19 18,27 26 25 24 23 22 21 20,2F 2E 2D 2C 2B 2A 29 28,37 36 35 34 33 32 31 30,3F 3E 3D 3C 3B 3A 39 38,47 46 45 44 43 42 41 40,2FH,7F 7E 7D 7C 7B 7A 79 78,位地址,总共128个可按位寻址的位,单元地址,17,D7 D6 D5 D4 D3 D2 D1 D0,寻址方式与相应的寻址空间,小结:,课堂练习,区分下列指令的不同功能: 1)MOV A,#24H 与 MOV A,24H 2)MOV A,R0 与MOV A,R0 3)MOV A,R0 与 MOVX A,R0 4)MOV A,90H 与 MOV A,R0(R0=90H) 5)MOV A,2DH 与 MOV C,2DH,

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

当前位置:首页 > 商业/管理/HR > 管理学资料

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