1、寄存器寻址 寄存器寻址方式可用于访问选定寄存器区的8个工作寄存器R0~R7。由指令操作码的低3位指示所用的寄存器,寄存器A、B、DPTR和C位(位处理机的累加器)也可作为寻址的对象。 2、直接寻址 直接寻址是访问特殊功能寄存器的唯一方法。它也用于访问内部RAM(低128个字节)。采用直接寻址方式的指令是双字节指令,其中第一个字节是操作码,第二个字节是内部RAM或特殊功能寄存器的直接地址。 3、寄存器间接寻址 寄存器间接寻址方式可用于访问内部RAM或外部数据存储器。这种寻址方式是由指令指定某一寄存器的内容作为操作数的地址。 访问内部RAM或外部数据存储器的低256个字节时,可采用R0或R1作为间址寄存器。 4、立即寻址 采用立即寻址方式的指令是双字节的。第一个字节是操作码,第二字节就是操作数。因此,操作数就是存放在程序存储器内的常数。 5、基址寄存器加变址寄存器间址寻址 这种寻址方式用于访问程序存储器的一个单元,该单元的地址是基址寄存器(DPTR或PC)的内容与变址寄存器A的内容之和。例如指令“MOVC A,@A+DPTR”,其中A的原有内容为05H,DPTR的内容为4000H,该指令执行的结果是把程序存储器4005H单元的内容传送给累加器A。 6、相对寻址 相对寻址用于访问程序存储器,它只出现在相对转移指令中。相对寻址是将程序计数器PC中的当前值与指令第二字节所给出的数据(该数据也称为偏移量)相加,其和为跳转指令的转移地址。转移地址也称为转移目的地址。偏移量是一有符号数,其取值范围为-128~+127。 7、位寻址 位寻址是指对片内RAM的位寻址区(20H~2FH)和可以位寻址的专用寄存器进行位操作时的寻址方式。这种寻址方式与直接寻址方式的形式和执行过程基本相同。在进行位操作时,借助于进位C作为操作的位累加器,操作数直接给出该位的地址,然后根据操作码的性质对其进行位操作。 |