首页 理论教育 存储器映射寄存器的寻址方法

存储器映射寄存器的寻址方法

时间:2023-06-20 理论教育 版权反馈
【摘要】:存储器映射寄存器寻址既可以在直接寻址中使用,又可以在间接寻址中使用。例如,在存储器映射寄存器寻址方式中,用AR1指向一个存储器映射寄存器,AR1的值为FF25h,那么AR1的低7位为25h,所指示的数据存储器地址为0025h。需要注意的是,在存储器映射寄存器寻址方式下,不能采用下列间接寻址的句法:*ARx、*+ARx、*+ARx%和*。

存储器映射寄存器的寻址方法

存储器映射寄存器(MMR)寻址方式中,修改存储器映射寄存器的值,而不影响当前数据页指针DP或当前堆栈指针SP的值,以存储器映射寄存器中的修改值去寻址。寻址范围为0000h~007Fh。因为这种寻址方式不需要修改DP和SP,所以对寄存器进行写操作的附加开销最小,寻址速度快。存储器映射寄存器寻址既可以在直接寻址中使用,又可以在间接寻址中使用。

在直接寻址方式中,高9位数据存储器地址被置0(不管当前DP或SP为何值),利用指令中的低7位地址直接访问MMR,相当于基地址为0的直接寻址方式。

在间接寻址方式中,使用当前辅助寄存器ARx的低7位作为地址访问存储器映射寄存器,并在指令执行后,将辅助寄存器ARx的高9位强制清0。例如,在存储器映射寄存器寻址方式中,用AR1指向一个存储器映射寄存器,AR1的值为FF25h,那么AR1的低7位为25h,所指示的数据存储器地址为0025h。由于定时器周期寄存器PRD的地址为0025h,那么AR1就指向了定时器周期寄存器。指令执行后存放在AR1中的值改变为0025h。

共有以下8条能够使用存储器映射寄存器寻址的指令:

(1)LDM MMR,dst

(2)MVDM dmad,MMR

(3)MVMD MMR,dmad

(4)MVMM MMRx,MMRy(www.xing528.com)

(5)POPM MMR

(6)PSHM MMR

(7)STLM src,MMR

(8)STM #1k,MMR

例4-14】 存储器映射寄存器寻址示例。

需要注意的是,在存储器映射寄存器寻址方式下,不能采用下列间接寻址的句法:*ARx(lk)、*+ARx(lk)、*+ARx(lk)%和*(lk)。否则,汇编会产生警告。

需要注意的是,在存储器映射寄存器寻址方式下,不能采用下列间接寻址的句法:*ARx(lk)、*+ARx(lk)、*+ARx(lk)%和*(lk)。否则,汇编会产生警告。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈