I/O寄存器与数据存储器的直接寻址
发表:2023-08-29 12:06:29 阅读:47

在下面寻址方式的示意图中,OP表示操作码;RA-MEND表示RAM空间的最高位地址;FLASHEND表示FLASH空间的最高位地址。

(1)I/O寄存器直接寻址

I/O寄存器直接寻址就是由指令给出一个寄存器Rd的内容和一个I/O寄存器的内容作为操作数(如图3—3所示)。

寻址范围:I/O寄存器空间的地址$00~$3F,一共64个,取值为0~63或0~6 1,取决于不同指令。

例:

IN Rd,P;操作:Rd←P。

IN R6,$3F;读I/O寄存器空间地址为3F的寄存器(SREG)的内容,放到R6中。

(2)数据存储器直接寻址

数据存储器直接寻址用于直接从SRAM中读取数据。数据存储器直接寻址为4字节指令,其中,指令的较低2个字节给出的是一个1 6位的SRAM地址(如图3—4所示)。

I/O寄存器直接寻址,数据存储器直接寻址

 

数据存储器直接寻址方式可用于读取I/O寄存器和通用寄存器的内容,但此时使用的是该寄存器在SRAM中的映射地址。

寻址范围:一个1 6位的SRAM地址给出的地址空间,共64 KB,该地址空间包括了3 2个通用寄存器和64个I/O寄存器。

例:

LDS Rd,K;操作:Rd←(K)。

LDS R18,$200;把地址为$200的SRAM中内容放到R18中。

 

 

电子街推荐您阅读:

 

指令系统概述与指令表

指令中使用的符号

单寄存器与双寄存器的直接寻址