【计算机组成原理】指令系统(三)—— 指令寻址与数据寻址
一、指令寻址
指令寻址:下一条欲执行指令的地址(始终由程序计数器PC给出)。

指令寻址最主要的就是确定 PC 的值,其在不同的情况下的计算是不同的,不能仅仅使用 PC = ( PC ) + 1 计算。根据编址方式的不同或者指令长度的不同,可能是加2也可能直接赋一个值。
顺序寻址
PC = ( PC ) + 1的情况

PC = ( PC ) + 2的情况

PC = ( PC ) + n的情况
采用变长指令字结构时,读入一个字,根据操作码判断这条指令的总字节数 n,修改PC的值。

跳跃寻址
跳跃寻址: 由转移指令指出 PC 的值

分析:执行完序号3的指令时,此时 PC 的值为4,指向图中蓝色方框的指令。但是使用 转移指令JMP 后,PC 的值变为 7, 指向的指令为序号为7的指令:‘LDA 1100’
指令寻址总结

二、数据寻址
数据寻址:确定 本条指令的地址码指明的真实地址。

数据寻址有如上图所示方式,为了标识数据寻址的方式,在指令结构中增加了 寻址方式位 这一字段。


(一)、六种简单寻址
1. 隐含寻址
隐含寻址:不是明显地给出操作数的地址,而是在指令中隐含着操作数的地址 。

优点:有利于缩短指令字长。
缺点:需增加存储操作数或隐含地址的硬件。
2. 立即寻址
立即寻址:形式地址A就是操作数本身,又称为立即数,一般采用补码形式。
一条指令的执行:取指令 访存1次;执行指令 访存0次;暂不考虑存结果共访存1次。
优点:指令执行阶段不访问主存,指令执行时间最短。
缺点:A 的位数限制了立即数的范围。如 A 的位数为 n,且立即数采用补码时,可表示的数据范围为 − 2 n − 1 ~ 2 n − 1 − 1 -2^{n-1}~2^{n-1}-1 −2n−1</

本文详细介绍了指令寻址的顺序寻址和跳跃寻址,以及数据寻址的多种方式,包括隐含、立即、直接、间接、寄存器、寄存器间接、相对、基址和变址寻址。同时,探讨了堆栈寻址的硬堆栈与软堆栈区别,并对比了CISC和RISC指令集的特点。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



