尋址方式指根據地址碼形成操作數地址或指令地址的方法。
實質—地址編碼方式的逆,即地址=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中,例如返回指令,順序尋址等