它是获得操作数最快的方式。它也是一种特殊的寻址方式。
指令中在操作码字段后面的部分不是通常意义上的操作数地址,而是操作数本身,也就是说数据就包含在指令中,只要取出指令,也就取出了可以立即使用的操作数。
在取指令时,操作码和操作数被同时取出,不必再次访问主存,从而提高了指令的执行速度。但是,因为操作数是指令的一部分,不能被修改,而且立即数的大小受到指令长度的限制,所以这种寻址方式灵活性最差。
操作数在主存单元,而其地址在指令中称为直接寻址;
指令中地址码字段给出的地址A就是操作数的有效地址,即形式地址等于有效地址
不需作任何寻址运算,简单直观,也便于硬件实现,但地址空间受到指令中地址码字段位数的限制。
存放操作数的地址在主存单元,也就是操作数地址的地址。
意味着指令中给出的地址A不是操作数的地址,而是存放操作数地址的主存单元的地址,简称操作数地址的地址。
非常灵活,能扩大了寻址范围,可用指令中的短地址访问大的主存空间;另外可将主存单元作为程序的地址指针,用以指示操作数在主存中的位置。当操作数的地址需要改变时,不必修改指令,只需修改存放有效地址的那个主存单元的内容即可。但是,间接寻址在取指之后至少需要两次访问主存才能取出操作数,降低了取操作数的速度。
操作数在通用寄存器中称为寄存器寻址;
寄存器寻址指令的地址码部分给出了某一个通用寄存器的编号Ri,这个指定的寄存器中存放着操作数。
一是从寄存器中存取数据比从主存中存取数据要快得多;
二是由于寄存器的数量较少, 其地址码字段比主存单元地址字段短得多。因此这种方式可以缩短指令长度,提高指令的执行速度,几乎所有的计算机都使用了寄存器寻址方式。
操作数不在通用寄存器中,在主存单元
在寄存器间接寻址方式中,寄存器内存放的是操作数的地址,而不是操作数本身,即操作数是通过寄存器间接得到的。
操作数在主存单元,而其地址在寄存器中称为寄存器间接寻址
变址寻址就是把变址寄存器Rx的内容与指令中给出的形式地址A相加,形成操作数有效地址,即EA=(Rx)+A。
基址寻址是将基址寄存器Rb的内容与指令中给出的位移量D相加,形成操作数有效地址,即EA=(Rb)+D。
相对寻址是基址寻址的一种变通,由程序计数器提供基准地址,指令中的地址码字段作为位移量D,两者相加后得到操作数的有效地址,即EA=(PC)+D。
寻址方式就是处理器根据指令中给出的地址信息来寻找物理地址的方式,是确定本条指令的数据地址以及下一条要执行的指令地址的方法。
立即寻址:指令就是操作数
直接寻址:操作数在主存,其地址在指令中;
间接寻址:操作数的地址在主存,也就是地址的地址。
寄存器寻址:操作数在寄存器中;
间接寄存器寻址:操作数在主存中,操作数的地址在寄存器中;
【2020年评测真题第06题:黄色】
06.将操作数包含在指令中的寻址方式称为( )。
A.直接寻址
B.相对寻址
C.间接寻址
D.立即寻址
解答:答案正确D。蒙对。
【2018年评测真题第04题:红色】
04.在指令系统的各种寻址方式中,获取操作数最快的方式是( )。
A.直接寻址
B.间接寻址
C.立即寻址
D.寄存器寻址
解答:答案选择C。错选了D。
【2016年评测真题第01题:红色】
01.在汇编指令中,操作数在某寄存器中的寻址方式称为( )寻址。
A.直接
B.变址
C.寄存器
D.寄存器间接
解答:答案选择C。
【2015年评测真题第04题:黄色】
04.在机器指令的地址段中,直接指出操作数本身的寻址方式称为( )。
A.隐含寻址
B.寄存器寻址
C.立即寻址
D.直接寻址
解答:答案选择C。蒙对的。