寻址方式是指令中用于说明操作数所在地址的方法
1.立即寻址
MOV AX,34EAH ;将十六进制数34EAH放入AX
MOV BL,20 ;将十进制数20放入BL
2.寄存器寻址
MOV AX,BX ;将寄存器BX中的内容放入AX
3.直接寻址
MOV AX,ES:[3E4CH] ;将段地址为ES、偏移地址为3E4CH中的内容放入AX,默认段地址为DS
4.寄存器间接寻址
MOV SI,34EAH
MOV AX,[SI] ;将段地址为DS、偏移地址为SI中的内容即34EAH中的内容放入AX
SI、DI、BX默认对应的段地址为DS
BP、SP的默认段地址为SS
AX、CX、DX一般不能在寄存器间接寻址中使用
5.基址/变址寻址(也叫相对寻址):适合以一维表格存储在内存中的操作数
使用寄存器BX、BP的叫基址寻址
MOV AX,36H[BX] ;将段地址为DS、偏移地址为36H+BX中的内容放入AX
使用寄存器BP、SP的叫变址寻址
MOV AX,-20[BP] ; 将段地址为SS、偏移地址为-20+BP中的内容放入AX
6.基址加变址寻址: 适合以二维表格存储在内存中的操作数
MOV AX,8AH[BX][SI] ;将段地址为DS,偏移地址为8AH+BX+SI中的内容放入AX
7.串寻址: 仅在串指令中使用
规定源操作数的逻辑地址为DS:SI,目的操作数的逻辑地址为ES:DI,执行串指令时根据标志位DF,SI和DI自动调整
8.I/O端口寻址
IN AX,25H ;将端口地址为25H的数据输入到AX中
MOV DX,3E4H ;当端口地址为十六位时要先将端口地址送入DX中
OUT DX,AL ;将AL的数据送入DX指向的端口(端口地址为3E4H的端口)