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