寻址方式

寻址方式(或编址方式)指的是确定本条指令的数据地址及下一条要执行的指令地址的方法。

(1)立即数寻址

所需的操作数由指令的地址码部分直接给出,就称为立即数(直接数)寻址方式。

特点:

取指时,操作码和一个操作数同时被取出,减少了访问存储器次数,提高了指令的执行速度。但只适用于操作数固定的情况。

(2)寄存器寻址

计算机的中央处理器一般设置有一定数量的通用寄存器,用以存放操作数,操作数的地址或中间结果。通用寄存器的数量一般在几个至几十个之间,比存储单元少很多,因此地址码短,节省存储空间,提高指令的执行速度,而且从寄存器中存取数据比从存储器中存取快的多。

(3)直接寻址

是最直观的一种方式,指令的地址码部分给出操作数在存储器中的地址,而该指令的寻址方式由操作码表示。

(4)间接寻址

有时根据指令的地址码所取出的既不是操作数,也不是下一条要执行的指令,而是操作数的地址或指令的地址,这种方式称为间接寻址(间址)(第一次读出操作数地址,第二次读出操作数)。大多数计算机只允许一次间址。

间接寻址又可分为寄存器间接寻址和存储器间接寻址两种。

(5)基址寻址

在计算机中设置一个专用的基址寄存器,或由指令指定一个通用寄存器为基址寄存器。操作数的地址由基址寄存器的内容和指令的地址码A相加得到,地址码A通常被称为位移量(disp)。

(6)变址寻址

操作数的地址由指令地址码部分给出的地址码A和指定的变址寄存器的内容通过加法器相加得到。这是几乎所有计算机都采用的一种寻址方式。

当计算机中还有基址寄存器时,也要加上基址寄存器内容。

(7)相对寻址

把程序计数器PC的内容(即当前执行指令的地址)与指令的地址码部分给出的位移量(Disp)之和作为操作数的地址或转移地址。

相对寻址主要用于转移指令,执行本条指令后,将转移到(PC)+ Disp。

特点:

转移地址不固定。

位移量可正可负,通常用补码表示。

(8)堆栈寻址

你可能感兴趣的:(寻址方式)