寻址方式就是寻找操作数地址的方式。计算机操作数可以存放在寄存器、存储器或I/O接口中,也可以立即数形式存放在指令代码中。8086/8088有24种寻址方式,常用的有下面6种寻址方式。
1.立即寻址
操作数直接存放在指令中,操作数可以是8位或16位。直接存放在指令中的操作数又称为立即数。由于立即数是一个常数,所以单操作数指令不会有立即寻址方式,只有双操作数指令才允许这种寻址方式,且立即数也只能用于源操作数。
2.寄存器寻址
操作数存放在CPU的内部寄存器中,寄存器可以是8位的,也可以是16位的。
3.寄存器间接寻址
操作数存放在存储器中,而不是存放在寄存器中。操作数地址的16位偏移量存放在4个指定的寄存器(SI、DI、BX、BP)之一中,其他寄存器无此功能。
对于SI、DI、BX寄存器,默认段为数据段DS;对于BP寄存器,默认段寄存器为SS。
4.直接寻址(www.daowen.com)
操作数地址的16位偏移量直接在指令中,它与操作码一起存放在代码段区域中,而操作数存放在存储器中,操作数地址为数据段寄存器DS左移4位加上指令中给出的16位偏移量。
5.变址寻址
以指定的变址寄存器的内容,加上指令中给定的8位或16位位移量作为操作数的地址。作为变址寻址的寄存器必须是SI、DI、BX、BP中的一个。通常,SI、DI、BX默认的段寄存器为DS,BP默认的为SS。有效地址EA可表示为
或
6.基址加变址寻址
这种寻址方式以BX和BP作为基址寄存器,以SI和DI作为变址寄存器,操作数的地址为3部分之和,即一个基址寄存器(BX或BP)的内容加上一个变址寄存器(SI或DI)的内容,再加上指令中给定的8位或16位位移量(必须要以一个段寄存器作为地址基址)。
BX默认的段寄存器为DS,BP默认的段寄存器为SS。有效地址EA可表示为
或
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。