|「计算机组成原理」:常见的指令寻址方式
常见寻址方式操作数的寻址方式 , 就是CPU根据指令的操作数如何寻找真实的数据 , 或者真实的数据如何在指令 表示 。
寻址方式是指寻找指令或者操作数的有效地址的方式 。 即确定本条指令的数据地址及下一条指令将要执行的指令地址的方法 。指令中的地址码字段并不代表操作数的真实地址 , 地址码中的字段 , 称为形式地址(A) 。 用形式地址结合寻址方式可以计算出操作数在存储系统中的真实地址 , 称为有效地址(EA) 。对于符号 (A) , 整个内容表示的是地址为A的数值 。 而A可以是寄存器的标号 , 也可以是内存地址 , 所以(A)是对应的数值 。 例如EA = (A) , 可以表示为有效地址为地址为A的数值 。
这一部分可以用指针的知识理解 , (A)相当于*A ,而EA = (A)相当于 , EA = *(*A)寻址方式分为指令寻址跟数据寻址两大类 。 寻找下一条要执行的指令地址 , 称为指令寻址 。 寻找操作数的地址称之为数据寻址 。
指令寻址
- 顺序寻址 程序的指令序列在主存中顺序存放 , 程序执行的时候 , 从第一条指令开始 , 逐条取出并逐条执行 。 这种程序的顺序执行 , 称为顺序寻址方式 。为了达到顺序寻址的目的 , CPU中必须有一个程序计数器(PC).对指令的顺序号进行计数 。 PC中开始时存放的是程序的首地址 , 每执行一条指令 , PC+1 , 用来指明下一条指令所在内存的地址 , 直到程序结束 。 这里一定注意 , PC中存放的是下一条指令的地址 。
- 跳跃寻址 当程序出现分支或者循环的时候 , 就会改变程序的执行顺序 , 此时对指令寻址采取跳跃寻址方式 。。 所谓跳跃 , 便是指下条指令的地址并不是通过PC的当前值来获取的 , 而是由指令本身给出 , 跳跃的处理方式是重新修改PC的内容 , 然后进入取指阶段(也就是说 , 下一条指令的地址仍由PC所给出 , 只不过它的值被修改了 。 )
本文插图
数据寻址数据的寻址方式比较多样 , 其过程就是把操作数的形式地址 , 变换成操作数的有效地址的过程 。 通常数据寻址的指令格式如下:
本文插图
通常我们约定:指令字长 = 存储字长 = 机器字长 。
根据操作数存放的不同位置 , 从而衍生出各种不同的寻址方式 , 往往不同的计算机有不同的寻址方式 。 而操作数 , 通常位于:
- 包含在指令中
- 包含在CPU的某一寄存器中
- 包含在主存储器中
- 包含在I/O设备的端口中
这种类型的指令 , 不是明显的给出操作数的地址 , 而是在指令中隐含着操作数的地址 , 显然单地址指令就是如此 。 (比如利用ACC作为第二操作数的地址 , 因此 , 累加器ACC对单地址指令格式来说是隐含地址) 。
优点:利于缩短指令字长 , 可简化地址结构 , 是获取操作数最快的方式
缺点:需要增加存储操作数的硬件或者隐含地址的硬件 。
2. 立即寻址
种类型的指令 , 地址字段是操作数本身 , 因此 , 又称立即数寻址 , 数据采用补码的方式存放 。看下面的汇编代码,分号后面是注释:
1.mov ax,2308H ;2308 ->ax意思是将2308H这个地址移动到ax寄存器中 , 这样 , 给出的地址就是操作数本身 。
本文插图
- 优点:在取指令的时候 , 操作码跟操作数被同时取出 , 不必再次访存 , 提高了指令的执行速度 。
- 缺点:因操作数指令的一部分 , 因此不能被修改 , 而且对于定长指令格式 , 操作数大小还将受到长度的限制 。
推荐阅读
- |利亚德公布Micro LED模组成本构成 可多方面改善Micro LED成本
- 中年|计算万物湘约未来 | 一碗饭也能吃出科技感!远程会议、粮食种植、语音转手语……记者探访世界计算机大会
- 区块链宝二爷|BCH为什么一定要分叉,背后的原理是什么?
- 陆超生财|想复制都难,移动支付体验全球第一的背后,支付宝做到了哪些扫码支付的基本原理。支付宝如何保障资金安全以及服务稳定为什么欧美发达国家
- 汽车美力学|长安汽车、华为、宁德时代三家联合,宣告“国家队”组成
- 刘俊明IT人|计算机领域哪些技术的发展前景较好,本科生如何进入这些领域发展
- 工业互联网|计算机领域哪些技术的发展前景较好,本科生如何进入这些领域发展
- 知识圈Plus|美国发展量子计算机解决全球难题
- |检验哈勃定律正确性方案的基本原理简介
- |人工智能之计算机视觉面试题总结,快速了解你的AI水平