数据与转移地址的寻址方式
- 数据的寻址方式:寻找指令操作所需数据的方法
- 转移地址的寻址方式:寻找转移指令所需程序地址的方法
数据的寻址方式
-
立即寻址
MOV AX,12A2H;将立即数12A2H传送到累加器AX中
-
寄存器寻址
MOV AX,BX;将BX中的内容传送到AX中
-
存储器寻址(操作数保存在存储单元中)
-
直接寻址
MOV AX,VAR1;从VAR1对应地址的存储单元中取一个字传送到AX中 MOV DL,VAR1+5;从VAR1+5对应地址的存储单元中取一个字节传送到DL中 MOV CX,[1200H];从地址为1200H的存储单元中取一个字传送到CX中 MOV VAR3,2500;将立即数传送到VAR3对应的存储单元中
-
寄存器间接寻址( 表示EA的值为BX,SI,DI中的内容)
MOV AX,[SI];将SI中的内容作为有效地址,从相应的存储单元中取出一个字传送到AX中 MOV [BX],DX;将DX中的内容传送到以BX中的内容为有效地址的存储单元中
-
寄存器相对寻址
MOV BX,[SI+5];将SI中的内容+5作为有效地址,从相应的存储单元中取出一个字传送到BX中 MOV CX,VAR1[BX];将(SI)+OFFSET VAR1的值作为有效地址,从相应的存储单元中取出一个字传送到CX中 MOV AL,VAR2[DI-15];将(DI)-15+OFFSET VAR2的值作为有效地址,从相应的存储单元中取出一个字节传送到AL中 MOV 5[SI+24],DX;将DX中的值传送到一个存储单元中,该存储单元的有效地址为(SI)+24+5
-
基址变址寻址
MOV DX,[BX][SI];将(BX)+(SI)的值作为有效地址,从相应的存储单元取一个字传送到DX中
-
基址变址且相对寻址
MOV AX,[BX+5][SI];将(BX)+(SI)+5的值作为有效地址,从相应的存储器单元中取一个字传送到AX中 MOV DL,[BX+15][DI+18];将(BX)+(DI)+15+18的值作为有效的值,从相应的存储器单元中取一个字节传送到DL中 MOV,VAR1[BP][DI],AX;将AX中的值传送到一个存储器单元,该单元的有效地址为(BP)+(DI)+OFFSET VAR1
-
隐含寻址
MOVSB;从(DS:SI)的存储单元中取一个字节,传送到(ES:DI)存储单元,并且SI和DI的内容自动增1(DF=0时)或减1(DF=1时)
转移地址的寻址方式
-
段内直接寻址
JMP LABEL;程序转移到标号LABEL处执行
-
段内间接寻址
JMP BX;程序转移的目的地址为BX中的内容 JMP VAR1;程序转移的目的地址为字型变量VAR1的内容 JMP VAR1[SI];程序转移的目的地址在存储器,其有效地址为(SI)+OFFSET VAR1
-
段间直接寻址
JMP LABEL;程序转移到LABEL处执行(LABEL不在本段中)
-
段间间接寻址
JMP VAR3;程序转移的目的地址为双字型变量VAR3中的内容,其中,第一个字是目的地址的偏移地址,第二个字是目的地址的段地址 JMP VAR3[SI];目的地址保存在存储器中,其有效地址为(SI)+OFFSET VAR3