P89LV51RD2微控制器与MCS-51系列的80C51具有同等的指令系统。在汇编语言中,指令包括操作码和操作数两部分。操作码指明了本条指令的功能,操作数代表了指令的操作对象。
操作数是指令的重要组成部分,它指定了参与运算的数据或数据所在单元的地址。如何得到这个地址称为寻址方式。寻址方式的中心任务是如何在寻址范围内,灵活、方便地找到所需要的操作数的地址。MCS-51系列微控制器共有七种寻址方式,分别叙述如下:
1.立即寻址
在这种寻址方式中,指令中跟在操作码后面的数据就是实际参与运算的操作数,称为立即数。用符号“#”表示立即数。
例如,MOV A,#0C8H;200→A
2.寄存器寻址
把指定的某一可寻址的工作寄存器R0~R7的内容作为操作数。指令操作码的低3位指示所用寄存器。
例如,MOV A,R6 ;(R6)→A
3.直接寻址
在指令中直接给出了操作数的地址。这种寻址方式提供了访问内部数据存储器三种地址空间的方法:可以访问内部低128B RAM单元、位地址空间以及特殊功能寄存器(SFR),且SFR和位地址空间只能用直接寻址方式来访问。
例如,MOV A,70H ;(70H)→A
4.寄存器间接寻址
寄存器间接寻址是把指令中指定寄存器的内容作为操作数的地址,把该地址单元的内容作为操作数。这种寻址方式用于访问内部RAM和外部RAM。可用来间接寻址的寄存器有:R0、R1、堆栈指针(SP)以及16位的数据指针(DPTR),使用时前面加符号@表示间接寻址。(www.daowen.com)
例如,MOV A,@R1 ;((R1))→A
5.变址寻址
变址寻址是以某个寄存器内容为基地址,然后在这个基地址的基础上加上地址偏移量形成真正的操作数地址。80C51单片机以DPTR或PC为基址寄存器,由累加器A作为偏移量寄存器。这种寻址方式常用于查表操作。
例如,MOVC A,@A+DPTR ;((A)+(DPTR))→A
这条指令把DPTR中的内容和A中的内容相加作为16位程序存储器地址,再把该地址内容送入累加器A中。
6.相对寻址
相对寻址是将程序计数器(PC)中的当前值(该当前值实际是指执行完这条相对转移指令后的字节地址)与指令第二字节给出的偏移量相加,其结果作为跳转指令的转移地址。指令第二字节给出的偏移量有正负号,它在指令中以补码形式给出,所转移的范围为+127~-128。
例如,JZ 30H
这条指令表示若A≠0,程序不跳转;若A=0,则以PC中的当前值为基地址,加上偏移量30H后所得到的结果为该转移指令的目的地址。
7.位寻址
位寻址是指对片内RAM的位寻址区和某些有位地址的特殊功能寄存器进行位操作时的寻址方式。位地址与直接寻址中的字节地址形式完全一样,主要由操作码来区分,使用时应注意。
例如,MOV C,07H
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。