【计算机组成原理】寻址方式
寻址方式指根据地址码形成操作数地址或指令地址的方法。
实质—地址编码方式的逆,即地址=f(地址码)
目标—缩短地址码长度,方便(编译程序)形成地址码
指令中的MEM地址:
有效地址(EA)——指令中形成的存储单元地址(逻辑地址,注意不是物理地址);{逻辑地址:程序在存储器中的地址;物理地址:程序在主存中的地址}
形式地址(A)——地址码中给出的地址;
一、指令寻址方式
顺序寻址:EA=(PC)+“1”;
由于顺序寻址的地址形成与当前指令无关,且只有一种,故通常用隐含寻址方式表示,指令字中没有指令地址码;
跳跃寻址:PC=对IR的计算结果,下条指令地址由当前指令产生;
跳跃寻址与当前指令有关,且可能有多种,故通常显示地用地址码表示;
下条指令形成时间:
二、数据寻址方式
寻址方式识别:译码
地址码格式:
按照OPD存放位置的不同,大致有以下七种寻址方式(以单地址指令为例):
1、OPD存放在REG中
i)立即寻址方式
OPD存放在指令REG中,地址参数为OPD本身;
ii)寄存器寻址方式
OPD存放在数据REG中,地址参数为数据REG编号;
2、OPD存放在MEM中
iii)直接寻址方式
OPD存放在MEM中,地址参数为OPD的EA;
iv)间接寻址方式
OPD存放在MEM中,地址参数为存放OPD的EA的EA;
因需要多访存一次,故使用较少,是用于**p的情况
v)寄存器间接寻址方式
OPD存放在MEM中,地址参数为存放EA的地址寄存器编号;
vi)变址寻址方式
OPD存放在MEM中,地址参数为变址REG编号以及形式地址(基准地址);
特点:适用于数据块的访存(例如数组array[])
vii)基址寻址方式
OPD存放在MEM中,地址参数为基址REG编号以及形式地址(偏移量);
特点:适用于程序段的管理;
寄存器的常见组织:
(1)变址寄存器,基址寄存器常为地址寄存器的子集;
(2)数据寄存器与地址寄存器常混用,称作通用寄存器(GPR)
viii)相对寻址(只有指令能使用该种寻址方式)
指令放在MEM中,地址参数为形式地址(偏移量),基准地址隐含在PC中;
注意:A为有符号数,因为指令进行跳跃寻址时可以往前跳跃;通常基址寻址与变址寻址的A为无符号数(由ISA指定)
隐含寻址方式:无地址码,地址形成方式由操作码隐含指明
比如OPD恒为定值,R0<-(R0)+1中的1;(可变常数不能隐含,采用立即寻址方式)
又或OPD在栈顶或者固定的REG中,例如返回指令,顺序寻址等