计算机组成原理-数据寻址-(相对寻址 基址寻址 变址寻址 )

文章目录

  • 指令寻址vs数据寻址
  • 总览
  • 偏移寻址
    • 基址寻址
    • 基址寻址的作用
    • 变址寻址
    • 变址寻址的作用
    • 基址&变址复合寻址
    • 相对寻址
    • 相对寻址的作用
  • 总结
  • 硬件如何实现数的比较

指令寻址vs数据寻址

在这里插入图片描述

总览

在这里插入图片描述

偏移寻址

变址寄存器:IX
基址寄存器:BR
在这里插入图片描述

基址寻址

没有基址寄存器有时会使用通用寄存器来代替,此时指令中要指明
在这里插入图片描述

基址寻址的作用

当起始地址为内存地址为0时,可以直接寻址
在这里插入图片描述
当起始地址不为内存地址为0时,可以通过BR+操作数来寻址
BR指向当前执行程序的起始地址
在这里插入图片描述
写的程序被放到内存的哪个位置由操作系统管理
在这里插入图片描述
如果通用寄存器被指定为基址存器时,我们不能再修改该通用寄存器,由操作系统管理
在这里插入图片描述
可扩大寻址范围
在这里插入图片描述

变址寻址

在这里插入图片描述

变址寻址的作用

如循环,变址寻址所用到的指令数量更加少
如下图中需要有加法指令个数和循环次数一样
在这里插入图片描述
而下图不需要那么多指令数
在这里插入图片描述
在这里插入图片描述

基址&变址复合寻址

在这里插入图片描述

相对寻址

A应该是基于当前指令的下一条指令的偏移量
在这里插入图片描述

相对寻址的作用

通过分段解决移动程序时对数据元素的寻址。这样形式地址就不用在每次移动程序代码时要改变。对应到下图中就是7没必要改变
在这里插入图片描述
基址寻址是对应整个程序在内存位置的移动
相对寻址是对应一段代码在程序内部的移动
在这里插入图片描述

总结

在这里插入图片描述

硬件如何实现数的比较

在这里插入图片描述