实际应该是七种寻址方式:七种基本的寻址方式:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址寻址。其中,后五种寻址方式(即直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址和相对基址变址寻址)属于存储器寻址,用于说明操作数或操作数地址所在存储单元的地址。
基本寻址方式
下面重点说一下这七种基本寻址方式的特点:
1. 立即寻址方式
先解释一个概念,叫做立即数。
操作数包含在指令中,它作为指令的一部分,跟在操作码后存放在代码段。这种操作数称为立即数。
立即寻址方式所提供的操作数紧跟在操作码后面,与操作码一起放在指令代码段中,不需要到其他地址单元中去取。立即数可以是8位,也可以是16位。这种寻址方式主要用于给寄存器或存储单元赋初值的场合。立即寻址方式是这七种寻址方式中速度最快的寻址方式。
2. 寄存器寻址方式
寄存器寻址的特点是操作数在CPU内部的寄存器中,在指令中指定寄存器号。
由于操作数在寄存器中,不需要通过访问存储器来取得操作数,所以采用寄存器寻址方式的指令执行速度较快。
3. 直接寻址方式
直接寻址的操作数在存储器中,指令直接包含有操作数的有效地址。
4. 寄存器间接寻址方式
寄存器间接寻址的操作数在存储器中,操作数有效地址在寄存器中
5. 寄存器相对寻址方式
该寻址方式是以指定的寄存器内容,加上指令中给出的位移量(8位或16位),并以一个段寄存器为基准,作为操作数的地址。指定的寄存器一般是一个基址寄存器或变址寄存器。
6. 基址变址寻址方式
基址加变址寻址方式是指将寄存器(该寄存器一般指基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。
7. 相对基址变址寻址方式
操作数在存储器中,操作数的有效地址由基址寄存器之一的内容与变址寄存器之一的内容及指令中给定的位移量相加得到。