文章目录
- 指令寻址vs数据寻址
- 总览
- 偏移寻址
- 基址寻址
- 基址寻址的作用
- 变址寻址
- 变址寻址的作用
- 基址&变址复合寻址
- 相对寻址
- 相对寻址的作用
- 总结
- 硬件如何实现数的比较
指令寻址vs数据寻址
总览
偏移寻址
变址寄存器:IX
基址寄存器:BR
基址寻址
没有基址寄存器有时会使用通用寄存器来代替,此时指令中要指明
基址寻址的作用
当起始地址为内存地址为0时,可以直接寻址
当起始地址不为内存地址为0时,可以通过BR+操作数来寻址
BR指向当前执行程序的起始地址
写的程序被放到内存的哪个位置由操作系统管理
如果通用寄存器被指定为基址存器时,我们不能再修改该通用寄存器,由操作系统管理
可扩大寻址范围
变址寻址
变址寻址的作用
如循环,变址寻址所用到的指令数量更加少
如下图中需要有加法指令个数和循环次数一样
而下图不需要那么多指令数
基址&变址复合寻址
相对寻址
A应该是基于当前指令的下一条指令的偏移量
相对寻址的作用
通过分段解决移动程序时对数据元素的寻址。这样形式地址就不用在每次移动程序代码时要改变。对应到下图中就是7没必要改变
基址寻址是对应整个程序在内存位置的移动
相对寻址是对应一段代码在程序内部的移动