在下面寻址方式的示意图中,OP表示操作码;RA-MEND表示RAM空间的最高位地址;FLASHEND表示FLASH空间的最高位地址。
数据存储器堆栈寄存器SP间接寻址
数据存储器堆栈寄存器SP间接寻址方式是把1 6位的堆栈寄存器SP的内容作为操作数在SRAM空间的地址,此寻址方式用于PUSH和POP指令(如图3—1 4所示)。
例:PUSH R0
操作:STACK←R0,SP←SP-1。若当前SP=$10FF,则先把寄存器R0的内容送到SRAM的$10FF单元中,再将SP内容减1,即SP=$10FE。
POP R1
操作:SP←SP+1,R1←STACK。若当前SP=$10FE,则先将5P内容加1,再把SRAM的$10EF单元内容送到寄存器R1中,此时SP=$10FF。
此外,在CALL类的程序调用指令(SP=SP-2)和RET类的子程序返回指令中(SP=SP+2),都隐含着使用堆栈寄存器SP间接寻址的方式。
电子街推荐您: