文章目录

  • 偏移寻址
    • 三种偏移地址区别:
    • 基址寻址
        • 问题:(b)要用几个bit指明寄存器?
      • 基址寻址的作用
        • 优点
        • 注意:
    • 变址寻址
      • 注意:
      • 变址寻址的作用
        • 优点
        • 注意:
    • 补充:基址&变址复合寻址
    • 相对寻址
      • 相对寻址的作用
        • 优点:
    • 小结
    • *扩展:硬件如何实现数的“比较”

偏移寻址

相对寻址、基址寻址、变址寻址都属于偏移寻址。

三种偏移地址区别:

但是他们之间还是有区别的,在于偏移的“起点”不一样

  • 基址寻址:以程序的起始存放地址作为“起点”
  • 变址寻址:程序员自己决定从哪里作为“起点”
  • 相对寻址:以程序计数器PC所指地址作为“起点”

基址寻址

基址寻址:将CPU中基址寄存器(BR)的内容加上指令格式中的形式地址A,而形成操作数的有效地址,即EA=(BR)+A。

下图是两种基址寄存器的构成方式:

问题:(b)要用几个bit指明寄存器?

根据通用寄存器总数判断

假如通用寄存器有八个,因为 23=8 在,用3个bit 就可以指明 0~7 共八个数

基址寻址的作用

优点

优点:便于程序“浮动”,方便实现多道程序并发运行

扩充一下哈:

优点:

  1. 可扩大寻址范围(基址寄存器的位数大于形式地址A的位数);
  2. 用户不必考虑自己的程序存于主存的哪一空间区域,故有利于多道程序设计;
  3. 可用于编制浮动程序(整个程序在内存里边的浮动) 。

如下图是对一个简单程序的基址寻址图解

注意:

基址寄存器是面向操作系统的,其内容由操作系统或管理程序确定。在程序执行过程中,基址寄存器的内容不变(作为基地址),形式地址可变(作为偏移量)。

当采用通用寄存器作为基址寄存器时,可由用户决定哪个寄存器作为基址寄存器,但其内容仍由操作系统确定。

变址寻址

变址寻址:有效地址EA等于指令字中的形式地址A与变址寄存器IX的内容相加之和,即EA= (IX)+A,其中IX可为变址寄存器(专用),也可用通用寄存器作为变址寄存器 。

注意:

变址寄存器是面向用户的,在程序执行过程中,变址寄存器的内容可由用户改变(IX作为偏移量),形式地址A不变(作为基地址) 。

  • 这里对比一下基址寄存器中BR与A的执行过程:
    基址寻址中,BR保持不变作为基地址,A作为偏移量

变址寻址的作用

我们先探讨一个问题:

当我们在用高级语言进行编写循环语句的时候,我们看着是很简单的,就像下面的C语言循环语句。

for(int i=0; i<10; i++){sum += a[i];
}

但是再计算机中他是这个样子的,


中间还省略了相加重复的操作,阿这,如果加个一万次,那你还能接收吗?

答案是:


那么是时候召唤变址寻址了!!!!!

在数组处理过程中,可设定A为数组的 首地址,不断改变 变址寄存器IX的内容,便可很容易形成数组中任一数据的地址,特别适合编制循环程序。

我们将上面的改成变址寻址就是下图这个样子

优点

在数组处理过程中,可设定A为数组的首地址,不断改变变址寄存器IX的内容,便可很容易形成数组中任一数据的地址,特别适合编制循环程序。

注意:

变址寄存器是面向用户的,在程序执行过程中,变址寄存器的内容可由用户改变(作为偏移量),形式地址A不变(作为基地址) 。

补充:基址&变址复合寻址

实际应用中往往需要多种寻址方式复合使用(可理解为复合函数)

相对寻址

相对寻址:把程序计数器PC的内容加上指令格式中的形式地址A而形成操作数的有效地址,即EA=(PC)+A,其中A是相对于PC所指地址的位移量,可正可负,补码表示 。

相对寻址的作用

我们在探讨一下:还是刚才的程序

想一下:如果代码越来越多,我们要挪动for循环的位置呢?只通过直接和变址寻址还能正确访问地址吗?


怎么解决这个问题呢?我么可以在此基础上+上PC值,就能正确访问了,如下图所示。

优点:

操作数的地址不是固定的,它随着PC值的变化而变化,并且与指令地址之间总是相差一个固定值,因此便于程序浮动(一段代码在程序内部的浮动)。

相对寻址广泛应用于转移指令

小结

*扩展:硬件如何实现数的“比较”

数据寻址——偏移寻址相关推荐

  1. 计算机组成原理(7)指令系统——偏移寻址、堆栈寻址、CISC和RISC

    上一回主要讲了寻址方式:指令寻址和数据寻址 指令寻址分为定长指令字结构(分为四地址指令.三地址指令等,操作码的长度固定,指令长度固定,就是后面的地址长度进行变化)和变长指令字结构 同时也可分为定长操作 ...

  2. 计组高分笔记:【04】指令系统 「指令格式与分类 | CISC、RISC | 直接寻址 | 间接寻址 | 寄存器寻址 | 隐式寻址 | 立即寻址| 基址寻址 | 变址寻址 | 相对寻址 | 堆栈寻址」

    文章目录 1. 指令格式 1.1 指令的基本概念 1.2 指令的分类 1.2.1 按地址码(操作数)长度/数目分类 1.2.2 按指令的长度分类 1.2.3 按操作码长度分类 1.2.4 按操作类型分 ...

  3. 【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 逐层分析分析 静态地址 到 动态地址 的寻址 + 偏移 过程 ) ★

    文章目录 前言 一.上一篇博客中获取到的静态地址 二.第一层静态地址 cstrike.exe+1100ABC 三.第二层地址 四.第三层地址 五.第四层地址 六.静态地址 到 动态地址 的寻址 + 偏 ...

  4. Intel汇编语言程序设计学习-第四章 数据传送、寻址和算术运算-上

    数据传送.寻址和算术运算 4.1  数据传送指令 4.1.1  简介 第一段一大推,就是为了说明汇编相比高级语言来说比较麻烦需要注意很多细节,但是换来的好处是给开发者带来了更大的灵活性. 读者如果肯花 ...

  5. 组原4_指令偏移寻址

    目录 1. 基址寻址 EA = (BR) + A 2. 变址寻址 EA = (IX) + A 3. 相对寻址 EA = (PC) + A 4. 例题 5. 小结 6.  附加 堆栈寻址 1. 基址寻址 ...

  6. 4.2.3偏移寻址(19)

    偏移寻址:有效地址的产生需要进行运算 基址寻址 基址寄存器的内容加上形式地址A,形成操作数的有效位 可以用基址寄存器存放偏移量,也可以采用通用寄存器 如果使用基址寄存器,不需要指明 如果使用通用寄存器 ...

  7. 计算机如何寻址硬盘,寻址

    [xún zhǐ] 寻址 语音 编辑 锁定 上传视频 寻址是数据恢复技术的基础,是定位数据和扇区的关键.寻址这个概念比较抽象,简单的说是磁头在盘片上定位数据的一个过程.如果你想找到你的计算机中的一个文 ...

  8. 均方距离计算公式_Excel2013中通过公式计算方差与均方差来反映数据的偏移程度...

    说起方差.均方差,可能还要回想一下,毕竟那是很早以前接触的(初中数学里面就有的).方差(英文Variance)用来度量随机变量和其数学期望(即均值)之间的偏离程度,多用于零件测绘行业.均方差也叫标准差 ...

  9. 【汇编语言】8086汇编,快速搞定各种寻址方式:立即数寻址 / 寄存器寻址 / 存储器寻址

    0 前言 众所周知,对于8086汇编语言,有几大寻址方式,不过我觉得这个好墨迹,会用就可以了,为什么命名这么多,这次只说本质,不说命名,至于命名,还是得知道,毕竟是大部分人公认的,不能反抗这点哦,但是 ...

  10. 响应式表格(table-responsive)表头与表数据位置偏移

    前言: 先吐槽一下:一工作就不像学校那样有时间写博客了,只能抽点空,来把之前打好的草稿补补.哈哈.做项目遇到的一大堆错误,慢慢整理吧. 进入正题: 这个错误呢:是我在做公司项目的时候遇到的,之前很少做 ...

最新文章

  1. 用boost库实现traceroute小工具
  2. Spring_HelloWord
  3. LOJ#2145. 「SHOI2017」分手是祝愿
  4. 有两个链表a,b,设结点包括学号,姓名。从a链表中删去与b链表中有相同学号的那些结点。
  5. 通用返回_Springboot项目整合通用mapper
  6. linux命令之less 命令
  7. leetcode题解132-分割回文串 II
  8. JSK-115 单独的数字(二)【位运算】
  9. SQLServer之修改DEFAULT约束
  10. 百炼-2701:与7无关的数
  11. QT 弹出pdf 或者网页【软件 help/about按钮】
  12. yasm/nasm not found or too old. Use --disable-yasm for a crippledbuild错误
  13. 计算机组成原理知识点汇总(考研用)——第二章:数据的表示和运算
  14. #BJTUOJ 铁憨憨骑士的小队分配(图论缩点+思维)
  15. 将图片进行base64 编码后的数据进行读取,以io流的方式传给前台并显示出来并且不断刷新图片
  16. Linux安装mysql数据库
  17. WinInet编程中如何使用异步
  18. 教你长高 男的没有1米8的 女的没1.65都要看啊
  19. python 计算一年内的所有周的具体日期
  20. 小米MIX2手机忘了开机账号和密码

热门文章

  1. 大数据经典学习路线以及各阶段所发挥的作用
  2. 数据分析中常见的10种数据编码方式
  3. office软件提示“您的组织策略阻止我们进行该操作”错误的解决办法-终极汇总
  4. 转:SQL Server 2005“错误1706。安装程序找不到需要的文件。
  5. 如何识别POS机是一清机还是二清机?
  6. 如何用WPS在所需的页面设置奇偶数页眉
  7. 原生小说APP源码,可二次开发,小说阅读,四端互通:android端,ios端,h5端,公众号端
  8. android studio在夜神上打开_Android Studio 调用夜神模拟器
  9. 行列式的六条运算法则整理
  10. 漫话中文自动分词和语义识别(下):句法结构和语义结构