(1) 立即数寻址
  操作数直接给出在指令字中,即指令字中直接给出不再是操作数地址,而是操作数本身。它的主要用法是把一个确定的数据传送到一个通用的寄存器中。当该数据占用的位数较少时(如小的整数、一个西文字符),第一个指令字的操作数地址字段中存放得下,可把该数据安排在第一个指令字中,则在读出指令的同时也得到相关数据;否则只能将其存放在指令的第二个指令字中,这就构成了双字指令。

操作码
Ri
立即数
操作码
Ri
   
 
立即数

(2) 直接寻址
  直接寻址是指在指令的操作数地址字段直接给出操作数在存储器中的地址,这也是计算机中常用的寻址方式之一。与立即数寻址方式类似的是,当该地址占用的位数较少时,第一个指令字的操作数地址字段中存放得下,可把该地址安排在第一个指令字中,则在读出指令的同时也得到相关地址。否则只能将其存放在指令的第二个字中,这就构成了双字指令。

操作码
Ri
直接地址
操作码
Ri
   
 
直接地址

(3) 寄存器寻址、寄存器间接寻址
  寄存器寻址,在指令字中直接给出操作数所在的通用寄存器的编号(名字、地址),由于通用寄存器数目较少,表示一个通用寄存器编号占用的位数就少,有利于缩短指令字的长度;再考虑到从通用寄存器取数参加运算、用通用寄存器临时保存运算结果都更迅速方便,故这是最基本最常用的寻址方式。
  寄存器间接寻址,在寄存器中给出的不是一个操作数,而是操作数地址时,就可以用这一地址去读写存储器,这种用法被称为寄存器间接寻址,这也是最基本最常用的寻址方式之一。



(4) 变址寻址
  变址寻址,是指把在指令字中给出的一个数值(称为变址偏移量)与指定的一个寄存器(称为变址寄存器)的内容相加之和作为操作数的地址,用于读写存储器。它特别适合于处理数组型数据;有些计算机,更设置了自动对变址寄存器内容增1和减1的操作功能,在读写完一个数据后,使变址寻址得到的地址自动指向下一个数据。与立即数寻址类似,依据允许的变址偏移量的大小范围,使用变址寻址的指令可能为单字或双字、甚至三字指令。