在下面寻址方式的示意图中,OP表示操作码;RA-MEND表示RAM空间的最高位地址;FLASHEND表示FLASH空间的最高位地址。
带后增量的程序存储器取常量寻址
程序存储器取常量寻址方式的功能主要是从程序存储器F1ash中读取常量,该寻址方式只能用于指令LPM Rd,Z+。
程序存储器中常量的地址由地址寄存器Z的内容决定。地址寄存器Z的高1 5位用于选择常量在程序存储器中.的地址,而最低位用于选择常量在程序存储器地址的高/低字节。当最低位为“0”时,选择常量在程序存储器地址的低字节;当最低位为“1"时,选择常量在程序存储器地址的高字节。寻址操作后,Z寄存器的内容加1(如图3—1 0所示)。
例:
LPM Rd,Z+
操作:Rd一(Z),即把以Z为指针的程序存储器的内容送到Rd,然后Z的内容加1。若Z=$0100,则把地址为$0080的程序存储器的低字节内容送到Rd,完成后Z=$0101。若Z=$0101,则把地址为$0080的程序存储器的高字节内容送到Rd,完成后Z:$0102。
LPM R1 8,Z+
操作:R1 8←(Z),即把以Z为指针的程序存储器的内容送到R1 8。看Z=$01 00,则把地址为$0080的程序存储器的低字节内容送到R1 8,完成后Z=$01 01。若Z=$0 1 01,则把地址为$0080的程序存储器的高字节内容送到R1 8,完成后Z=$0102。
电子街推荐您阅读: