MOV AL,DS:[2000H];AL=56H 代 4000H DS 操作码 码 40000H 操作码 AX 亦 段 00H 56H 2000H 马 20H 42000H 数 56H 据 直接寻址 段 (3)注意:为了使指令的二进制机器码不要太长,不能两个 操作数都用存储器寻址(适用于以下各种寻址)。113
11/133 MOV AL,DS:[2000H];AL=56H (3)注意:为了使指令的二进制机器码不要太长,不能两个 操作数都用存储器寻址(适用于以下各种寻址)。 56H
3.2寄存器间接寻址 (1)格式:操作数表示成BX、BP]、SI或DI, 寄存器内容是操作数的有效地址 MOV BX,[DI MOV [SIL,DS MOV [BPI,AX MOV ES:DI川,AX MOV DX,DS:[BPI (2)物理地址: (缺省的情况) PA=DS<<4bit+BX (SI,DI 或PA=SS<<4+BP 12/133
12/133 (1)格式:操作数表示成[BX]、[BP]、[SI]或[DI], 寄存器内容是操作数的有效地址 MOV BX,[DI] MOV [SI],DS MOV [BP],AX MOV ES:[DI],AX MOV DX,DS:[BP] (2)物理地址:(缺省的情况) PA=DS<<4bit+BX(或SI,DI) 或 PA=SS<<4+BP 3.2 寄存器间接寻址
MOV AX,[BX] DS 4000 代码段 操作码 BX 0100 40000 小 010 数据 AX 34H 25H 40100 25H 段 34H 寄存器间接寻址 (3)适用于: 不知道内存单元的确切地址; (4)注意: 存取一维数组或表格中的元素 只有4个寄存器可用
13/133 MOV AX,[BX] (3)适用于: 不知道内存单元的确切地址; 存取一维数组或表格中的元素 34H 25H 34H 25H (4)注意: 只有4个寄存器可用
3.3寄存器相对寻址 (1)格式:操作数表示成BX/BP/SIDI+立即数/变量名], (变量的值是偏移地址) 是直接寻址和寄存器间接寻址的组合。 MOV BX,[SI+1003H] MOV AL,[DI+TABLEI MOV AL,TABLE[BXI MOV AL,[BP]+TABLE MOV BX,ES:[SI+1003H] MOV TABLE[BPI,AX (2)物理地址: PA=DS<<4+(BX/SI/DI)+立即数或变量的偏移 PA=SS<<4+(BP)+立即数或变量的偏移 14/133
14/133 (1)格式:操作数表示成[BX/BP/SI/DI+立即数/变量名], (变量的值是偏移地址) 是直接寻址和寄存器间接寻址的组合。 MOV BX,[SI+1003H] MOV AL,[DI+TABLE] MOV AL,TABLE[BX] MOV AL,[BP]+TABLE MOV BX,ES:[SI+1003H] MOV TABLE[BP],AX (2)物理地址: PA=DS<<4+(BX/SI/DI)+立即数或变量的偏移 PA=SS<<4+(BP)+立即数或变量的偏移 3.3 寄存器相对寻址
MOV AL,[BX+5]AL=9AH DS 代 6000H 操作码 操作码 码 BX 2000H 05H 段 6000 EA=2000H+05H 数 =2005H 6200 据 AX 9AH L 9AH 段 寄存器相对寻址方式 (3)适用于: 15/133 存取一维数组或表格中的元素
15/133 MOV AL, [BX+5] ;AL=9AH ( 3)适用于: 存取一维数组或表格中的元素 9AH