文章目录
偏移寻址
相对寻址、基址寻址、变址寻址都属于偏移寻址。
三种偏移地址区别:
但是他们之间还是有区别的,在于偏移的“起点”不一样
- 基址寻址:以程序的起始存放地址作为“起点”
- 变址寻址:程序员自己决定从哪里作为“起点”
- 相对寻址:以程序计数器PC所指地址作为“起点”
基址寻址
基址寻址:将CPU中基址寄存器(BR)的内容加上指令格式中的形式地址A,而形成操作数的有效地址,即EA=(BR)+A。
下图是两种基址寄存器的构成方式:
问题:(b)要用几个bit指明寄存器?
根据通用寄存器总数判断
假如通用寄存器有八个,因为 23=8 在,用3个bit 就可以指明 0~7 共八个数
基址寻址的作用
优点
优点:便于程序“浮动”,方便实现多道程序并发运行
扩充一下哈:
优点:
- 可扩大寻址范围(基址寄存器的位数大于形式地址A的位数);
- 用户不必考虑自己的程序存于主存的哪一空间区域,故有利于多道程序设计;
- 可用于编制浮动程序(整个程序在内存里边的浮动) 。
如下图是对一个简单程序的基址寻址图解