计算机组成原理————寄存器寻址方式大总结

常见的寻址方式有立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址、相对寻址和变址寻址等。在立即寻址方式中,操作数包含在指令中;在直接寻址方式中,操作数存放在内存单元中;在寄存器寻址方式中,操作数存放在某一寄存器中:在间接寻址方式中,指令中给出了操作数地址的地址;在相对寻址方式中,在指令地址码部分给出一个偏移量(可正可负);在变址寻址方式中,操作数地址等于变址寄存器的内容加偏移量。

1、变址寻址

操作数地址等于变址寄存器的内容加偏移量。

用于数组或字符串处理

2、相对寻址方式

相对寻址以程序计数器PC的当前值(R15中的值)为基地址,指令中的地址标号作为偏移量,将两者相加后得到操作数的有效地址。

相对寻址方式对实现程序浮动提供了支持

3、间接寻址方式

间接寻址是相对于直接寻址而言的,指令地址字段的形式地址不是操作数的真正地址,而是操作数地址的指示器,或者说是形式地址单元的内容才是操作数的有效地址。

操作数地址在寄存器中,操作数放在内存里面,为寄存器间接寻址方式,如MOVA,@RO,即把RO中的值作为操作数的地址,把此地址中的值放入累加器A中,即把内存单元20H中的值放入A中,如此地址单元中的值为5,则A=5。

5、基址寻址方式

基址寻址,将CPU中基址寄存器的内容,加上指令格式中的形式地址而形成操作数的有效地址。被引用的专用寄存器含有一个存储器地址,地址字段含有一个相对于该地址的偏移量(通常是无符号的整数)。寄存器的引用可以是显式的,也可以是隐式的。基址寻址方式,主要用来解决程序的动态定位问题。在多道程序的环境下,用户不可决定自己使用的主存区,因而在编程时常按(以零为基准地址)相对地址来编写,当程序被放入主存时,操作系统根据主存空间情况给基址寄存器赋值,从而将虚地址转化为实地址。

6、立即数寻址方式

立即数寻址方式是指指令所需的操作数(位于代码区)由指令的地址码部分直接给出,其特点是取指令时同时取出操作数,以提高指令的执行速度。静态数据区用于存放一对一的绑定且编译时就可确定存储空间大小的数据;栈用于存放一对多的绑定且与活动同生存期的绑定;堆用于存储由程序语句动态生成和撤销的数据。程序运行时,需要将程序代码(机器指,令序列)和代码所操作的数据加载至内存,指令代码加载至代码区,数据则根据绑定关系可能位于静态数据区、栈或堆区。

发布了151 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41808387/article/details/104926504