寻址方式
- 形成操作数或指令地址的方式,称为寻址方式。
寻址方式分为两类:
指令寻址方式、操作数寻址方式操作数的寻址方式:
形成操作数的有效地址(EA)的方法在8086/8088中,操作数在内存中的有效地址是段的偏移地址。
七种寻址方式
立即数寻址方式
寄存器寻址方式
直接寻址方式
寄存器间接寻址方式
寄存器相对寻址方式
基址变址寻址方式
相对基址变址寻址方式
1)立即数寻址方式
- 操作数作为指令的一部分存放在操作码之后的内存单元中这种操作数被称为立即数
- 8位数值(00H~FFH)
- 16位数值(0000H~FFFFH)
- 立即数寻址方式常用来给寄存器赋值
2)寄存器寻址方式
- 操作数存放在CPU的内部寄存器中
8位寄存器:
AH、AL、BH、BL、CH、CL、DH、DL
16位寄存器:
AX、BX、CX、DX、SI、DI、BP、SP
4个段寄存器:
CS、DS、SS、ES
3)直接寻址方式
- 有效地址在指令中直接给出,操作数默认在数据段
4)寄存器间接寻址方式
- 有效地址在寄存器SI/DI/BX/BP中
- 若在SI、DI、BX中,则操作数默认在数据段
- 若在BP中,则操作数默认在堆栈段
5)寄存器相对寻址方式
- 有效地址是寄存器内容与有符号8位或16位位移量之和,寄存器可以是BX、BP、SI、DI
EA=[BX]/[BP]/[SI]/[DI]+8/16位位移量 - 对应BX/SI/DI,则操作数默认在数据段
- 对应BP,则操作数默认在堆栈段
6)基址变址寻址方式
有效地址由基址寄存器(BX或BP)的内容加上变址寄存器(SI或DI)的内容构成:
EA=[BX]/[BP]+[SI]/[DI]
7)相对基址变址寻址方式
有效地址是基址寄存器(BX/BP)、变址寄存器(SI/DI)与一个8位或16位位移量之和:
EA=[BX]/[BP]+[SI]/[DI]+8/16位位移量
对应BX,则操作数默认在数据段;
对应BP,则操作数默认在堆栈段。