数据寻址 10种总结

(非偏移)

数据寻址:本指令的地址码指明的真实地址

  • 地址码的解读方式很多,应该用哪一种呢?
    • 可能是绝对地址,也可能是相对本程序起点,也可能是相对pc
    • 用bit位来标识
    • image-20220204194106922
  • 地址解读: 形式地址A–>有效地址EA
  • 多种方式:
    • 直接寻址:EA=A
      • image-20220204195418953
      • 取指令、执行指令访存 两次
      • 简单,不需要计算
      • 地址位数有限,对地址大小限制
      • 若数据存储地址改变,则gg了,灵活性太差了
    • 间接寻址:EA=(A)
      • image-20220204195445453
      • A中存储的是有效地址
      • 三次访存
      • 扩大了寻址范围;很像递归的过程,便于编程
      • 但多次访存,浪费一倍的空间
    • 寄存器寻址:形式地址指向寄存器编号,地址在寄存器中
      • image-20220204195514793
      • 只用访存一次,速度很快
      • 寄存器数量少,编号的位数少
      • 缺点是寻址能力有限
    • 寄存器间接寻址
      • image-20220204195537476
      • 寄存器中指向主存存储指令的位置
    • 隐含寻址
      • image-20220204195600059
      • 指令中隐含着操作数的地址
      • 比如之前的默认加法,另一个操作数在acc中,此时只用一个地址就能加法
      • 不用访存
    • 立即寻址
      • image-20220204195621917
      • 将操作数显示放入指令中
      • 通常用补码形式
      • 这就不用访存了
      • # \# # 表示
      • 立即数的范围被限制

(偏移)

  • 有三种,区别在于起点不同
  • 基址寻址:程序的起始存放地址为起点
    • 基址寄存器 BR 存储当前程序存放地址
    • image-20220204200230577
    • 优点:
      • 便于程序放在主存中的任意位置,只需要修改BR,其他的就不用改
      • 从而实现多道程序并发运行‘
      • 可以扩大寻址范围
    • BR的内容是放在PCB中的,BR是面向操作系统的,程序员不能修改
    • 方便程序在主存中浮动
  • 变址寻址:程序员自己决定
    • 变址寄存器: IX
    • image-20220204200857383
    • 与基址寻址很像,主要区别在于面向用户,形式地址不变,变的是寄存器的内容
    • image-20220204201933437
    • 如果采用直接寻址,那么这种迭代的代码就很蠢
    • 而采用变址寻址,就很舒服了,见下图
    • image-20220204202942387
    • 用这种的原因在于:指令中的地址是不能变的,而寄存器中的内容是可以变的,于是,采用变址的方式,通过指令改变IX寄存器中的内容,实现每次不同的寻址
  • 相对寻址:程序计数器pc为起点
    • EA=(PC)+A
    • A可正可负
    • 作用:代码越写越多,把for循环的位置移动到别的地方,所以需要相对寻址。。方便某段代码在程序内部浮动
    • image-20220204203740098
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nWiUGM9T-1643979769034)(https://gitee.com/huozuo/typoraImage/raw/master/img/image-20220204203825932.png)]

堆栈寻址

  • 两种方式实现堆栈
    • 一组寄存器指向栈顶元素 硬堆栈
    • 主存中划分区域来实现 软堆栈 使用这种
  • 都是用sp 寄存器
  • image-20220204204454666
  • 除了sp,没啥需要特别注意的,哦,一般用主存的方式,更大更便宜,速度也凑活,不够用谈速度没啥意义
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值