常见寻址方式操作数的寻址方式,就是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寄存器中,这样,给出的地址就是操作数本身 。文章插图
- 优点:在取指令的时候 , 操作码跟操作数被同时取出,不必再次访存,提高了指令的执行速度 。
- 缺点:因操作数指令的一部分,因此不能被修改,而且对于定长指令格式,操作数大小还将受到长度的限制 。
1.int x = 100;2.const int j = 100;3.···
3. 直接寻址即地址码字段直接给出操作数所在的内存地址,即EA = A的情况 。如下面的汇编指令:
mov ax [200]; 将地址为200处的数据 , 存放到ax中
这种行为就像程序中直接给出变量名:int y = x;
文章插图
优点:简单,执行阶段值访问一次内存,因此在早期的计算机中,常常作为主要的寻址方式 缺点:A的位数决定了该指令操作数的寻址范围,并且操作数的地址不易被修改 。
推荐阅读
- 恒温内衣的原理 恒温内衣的原理是什么
- 《乘风2024》决赛选曲4首,4组成员投票选择,刘忻陈丽君成新队长
- 污水处理硝化菌去除氨氮原理
- 打哈欠会传染是什么原理 打哈欠会传染吗为什么
- 自制移动电源220v原理,不见断电源 怎么改移动电源接线
- 地暖的原理是什么,水地暖原理是什么
- 植物的韧皮部由什么组成 植物的韧皮部由哪些组成
- 倒流香原理制作方法 倒流烟的原理是什么
- 面粉洗水果的原理和方法 面粉洗水果的原理
- 康斯塔姆现象是什么 康斯塔姆现象是什么原理