在下面寻址方式的示意图中,OP表示操作码;RA-MEND表示RAM空间的最高位地址;FLASHEND表示FLASH空间的最高位地址。
1)数据存储器间接寻址
ATmegal 28单片机中使用1 6位寄存器X、Y或Z作为地址指针寄存器。数据存储器间接寻址就是由指令指定某一个地址指针寄存器的内容作为操作数的SRAM地址,对该SRAM地址的内容进行操作(如图3—5所示)。
例:
LD Rd,Y
操作:Rd←(Y)。把以Y为指针的SRAM的内容送到Rd中。
LD R1 8,Y
如Y=$0568,则把SRAM地址为$05 68的内容送到R1 8中。
2)带后增量的数据存储器间接寻址
这种寻址方式与前面的数据存储器间接寻址方式类似,区别在于间接地址寄存器X、Y和Z的内容在间接寻址操作后,再自动把间接地址寄存器的内容加1(如图3—6所示)。
例:
LD Rd,Y+
操作:Rd←(Y),Y=Y+1。把以Y为指针的SRAM的内容送到Rd中,然后再把Y加1。
LD R1 8,Y+
如Y=$05 68,则把SRAM地址为$05 68的内容送到R1 8中.然后再把Y加1,操作结果为Y=$0569。
电子街推荐您阅读: