、寄存器寻址方式 寄存器寻址方式一操作数在指定的寄存器中 MOV AX BX MOV AL BH *字节寄存器只有 AH AL BH BL CH CL DH DL SRC和DST的字长一致× MOV AH,BX CS不能用MOV指令改变× MOV CS,AX
6 寄存器寻址方式*— 操作数在指定的寄存器中 MOV AX, BX MOV AL, BH * 字节寄存器只有 AH AL BH BL CH CL DH DL * SRC 和 DST的字长一致 MOV AH, BX * CS不能用MOV指令改变 MOV CS, AX 三、 寄存器寻址方式
四、岢存器间接寻方式 格式:[R];其中R为BX,BP,SI,DI之一,不允许是其它寄存器。 特点:操作对象在內存中,操作对象的EA在BX,BP,SI,DI之 中。(不在内存) 即:EA=(BX) (BP) (SI) (DI 注:(1)若选择[BⅪ,SⅠ,[DI之一,且缺省段跨越捋,则对象 在当前的数据段中
7 格式:[R];其中R为BX,BP,SI,DI之一,不允许是其它寄存器。 特点:操作对象在内存中,操作对象的EA在BX,BP,SI,DI之 一中。(不在内存) 即:EA= (BX) (BP) (SI) (DI) 注:(1)若选择[BX],[SI],[DI]之一,且缺省段跨越符,则对象 在当前的数据段中; 四、寄存器间接寻址方式
例: MOV AX,[BX ((DS)+(BX)) AX 4 若执行前(DS)=2000H,(BX)=1000H MOV AX, [BXI DS BX 2000H 1000H 4 数据 OOH 21000H 50H 21001H 段 AX 内存 50H OAOH (2)若缺省段跨越捋,且BP作间址寄存器,则对象存放在 当前堆栈段中。 如: MOV BX,[BP] ((SS)+(BP))EBX 4
8 例:MOV AX,[BX] ;((DS)+(BX)) AX 4 若执行前 (DS)=2000H,(BX)=1000H : MOV AX , [BX] DS BX : : 4 0A0H 21000H + 50H 21001H : 数 据 段 2000H 1000H 内存 50H 0A0H AX (2)若缺省段跨越符, 且BP作间址寄存器,则对象存放在 当前堆栈段中。 如:MOV BX,[BP] ;((SS)+(BP)) BX 4
(3)若指定段跨越符,则不管BP,BX,SI,DⅠ之一作 变址器,都取相应段中数据。 如: MOV ES:[BP],AX ;(AX)=→(ES)+(BP) MOV AX, ES: [BX;((ES)+(BX))AX 4 注:·间址器一定要是BP,BX,SI,DI之 如: MOV CX,[AX] ·间接寻址方式表示对象的地址。并不能表示对 象的类型
9 (3)若指定段跨越符,则不管BP,BX,SI,DI之一作 变址器,都取相应段中数据。 如:MOV ES:[BP],AX ;(AX) (ES)+(BP) MOV AX,ES:[BX] ;((ES)+(BX)) AX 4 注:• 间址器一定要是BP,BX,SI,DI之一 如:MOV CX,[AX] × • 间接寻址方式表示对象的地址,并不能表示对 象的类型
五,相对寻址方式 格式:X[R];其中R为BX,BP,SI,DI之一。 Ⅹ为一整常数或变量地址表达式。 特点:·操作对象在内存中 EA为R的内容和X之和(即:Ⅹ在代码段中,EA另一部 分在R中)。 EA=(X+(SI) X+(DI) X+(BX X+(BP) (DS)+((SI)+X 4(DI)+X 缺省段跨越符的物理地址 (BX)+X (SS)+(BP)+X 4
10 格式:X[R] ;其中R为BX,BP,SI,DI之一。 X为一整常数或变量地址表达式。 特点:• 操作对象在内存中 • EA为R的内容和X之和(即:X在代码段中,EA另一部 分在R中)。 EA= X+(SI) X+(DI) X+(BX) X+(BP) 缺省段跨越符的物理地址 (DS)+ (SI)+X 4 (DI)+X (BX)+X (SS)+(BP)+X 4 五. 相对寻址方式