《MS51单片机.ppt》由会员分享,可在线阅读,更多相关《MS51单片机.ppt(20页珍藏版)》请在优知文库上搜索。
1、第二节第二节 寻址方式寻址方式nMSC-51共有共有7种寻址方式:种寻址方式:寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基址寄存器加变址寄存器间接寻址、相对寻址、位寻址。1.1.寄存器寻址寄存器寻址 n寄存器寻址是对选定的工作寄存器R0R7、累加器、累加器A、通用寄存器、通用寄存器B、地、地址寄存器址寄存器DPTR和位累加器和位累加器C中的内容作中的内容作为操作数的寻址方式。为操作数的寻址方式。图3-1 寄存器寻址方式2、直接寻址n直接寻址是指令直接给出操作数所在单元的地址的寻址方式。指令中操作数部分给出直接地址,用direct表示。n可以访问的地址空间有可以访问的地址空间有:n内部数据
2、存储器的128个字节单元、所有特殊功能寄存器。n需要指出的是,直接寻址是访问特殊功能寄存器的唯一寻址方式。n 3、寄存器间接寻址 n指令操作数的地址事先存放在某个寄存器中,由该寄存器的内容指定操作数地址的寻址方式。为间接寻址指示符。n MSC-51指令系统规定只有R0、R1、SP、DPTR寄存器以及A和PC、DPTR的组合才具有间接寻址的能力。 例如:将内RAM 65H单元的内容47H送A,可执行指令“MOV A,R0”,其中R0的内容为65H。4、立即数寻址 n立即数寻址是由指令直接给出操作数的寻址方式。#为立即数的标示符。n例如: nMOV A,#30H;nMOV A,30H ;n这类指令
3、大都是双字节指令,n仅有指令:MOV DPTR,#DATA16是三字节指令,它提供两字节立即数,如:MOV DPTR,#1600H,5、变址间接寻址(基址寄存器+变址寄存器间接寻址) n变址间接寻址是将指令中指定变址寄存器和基址寄存器的内容相加形成真正的操作数在程序存储器中的地址。n8051中没有专门的变址寄存器,而是采用累加器A作为变址寄存器,程序计数器PC或寄存器DPTR作为基址寄存器,以DPTR或PC的内容与累加器A的内容相加作为操作数16位地址。 例如: MOVC A,A+DPTR;(A)+(DPTR)(A) 6、相对寻址 n相对寻址只出现在相对转移指令中。相对转移指令执行时,是以当前
4、的PC值加上指令中给出的相对偏移量rel而形成转移目的地址。n PC的当前值是执行完相对转移指令后的PC值,实际上是紧接转移指令下面一条指令的地址。n目的地址=PC当前值+rel=起始地址+转移指令本身字节数+reln相对偏移量rel是有符号的8位二进制数,用补码表示。 例如:程序存储器1068H地址单元开始存放双字节指令 SJMP 30H,执行后PC当前值为(PC)(PC)+2=1068H+2=106AH,则跳转目的地地址为106AH+30H=109AH 7、位寻址n位寻址适用于可以进行单独位操作的指令,指令中直接给出位地址寻找位操作数。n这种寻址方式与直接寻址方式的形式和执行过程基本相同,
5、但参与操作的数据是1位而不是8位。位地址用bit表示以区别字节地址direct。 nMCS-51单片机内RAM有两个区域可以进行位寻址:n20H2FH的16个单元中的128位n字节地址能被8整除的特殊功能寄存器中的每一位。n在8051中,位地址常用下列两种方式表示:n(1)直接使用位地址。n(2)直接用特殊功能寄存器名加位数表示,如PSW.3例如:MOV C, 37H; (Cy) (37H) 二、寻址空间及举例二、寻址空间及举例 n寻址空间见表3-1例例3-1 将D5H位的内容送入Cy,可用几种方式表达?n(1) MOV C, D5Hn(2) MOV C, D0H.5n (3) MOV C, F0n (4) MOV C, PSW.5例例3.2 判断下列指令个操作数的寻址方式 n(1) MOV A, #65Hn(2) MOV R1, 65Hn(3) MOV 30H, R2n(4) MOV C, 20H n(5) DJNZ R2, LOOP n(6) MOV 60H, R1n(7) MOVC A, A+DPTRn