寻址模式有哪些类型?
指令的操作数可以位于主存储器或CPU寄存器中。如果操作数放置在主存储器中,则指令在操作数字段中提供位置地址。遵循许多方法来指定操作数地址。在指令中指定操作数地址的不同方法/模式称为寻址模式。
寻址模式的类型
有多种类型的寻址模式,如下所示-
隐含模式-在此模式下,操作数在指令定义中隐式指定。例如,指令“补数累加器”是隐含模式指令,因为累加器寄存器中的操作数隐含在指令的定义中。所有使用累加器的寄存器引用指令都是隐含模式指令。
带模式字段的指令格式
立即模式-在此模式下,操作数在指令本身中指定。换句话说,立即模式指令具有操作数字段而不是地址字段。操作数字段包括要与指令中确定的操作结合使用的实际操作数。立即模式指令有利于将寄存器初始化为常数值。
寄存器模式-在此模式下,操作数位于CPU内的寄存器中。从指令中的寄存器字段中选择特定寄存器。一个k位字段可以确定2k个寄存器中的任何一个。
寄存器间接模式-在这种模式下,指令在CPU中定义一个寄存器,其内容提供内存中操作数的地址。换句话说,所选寄存器包括操作数的地址而不是操作数本身。
对该寄存器的引用相当于指定一个内存地址。寄存器间接模式指令的优点在于,与直接指定内存地址所需的位相比,该指令的地址字段使用更少的位来选择寄存器。
自动递增或自动递减模式&minuend;这类似于寄存器间接模式,除了寄存器在其值用于访问内存之后(或之前)递增或递减。当寄存器中存储的地址定义了内存中的数据表时,每次访问该表后都需要对寄存器进行递增或递减。这可以通过使用递增或递减指令来获得。
直接地址模式-在这种模式下,有效地址等于指令的地址部分。操作数驻留在内存中,其地址由指令的地址字段直接给出。在分支类型指令中,地址字段指定实际的分支地址。
间接地址模式-在这种模式下,指令的地址字段给出了有效地址存储在内存中的地址。控制从内存中取出指令并使用其地址部分再次访问内存以读取有效地址。
索引寻址模式-在这种模式下,索引寄存器的内容被添加到指令的地址部分以获得有效地址。索引寄存器是一个特殊的CPU寄存器,它包含一个索引值。指令的地址字段定义了数据数组在内存中的起始地址。