2.寄存器寻址 (1)格式:操作数是通用寄存器或段寄存器中的内容。 寄存器可以是: 通用寄存器(AX,BX,CX,DX,SP,BP,SI,DI, AH,AL,BH,BL,CH,CL,DH,DL) 段地址寄存器(CS,SS,DS,ES) 标志寄存器 INC CX ;CX←CX+1 MOV SS,AX ;SS←AX ADD CL,BH CL←CL+BH (2)物理地址:操作数在CPU内的寄存器中。 6/133
6/133 (1)格式:操作数是通用寄存器或段寄存器中的内容。 寄存器可以是: 通用寄存器(AX,BX,CX,DX,SP,BP,SI,DI, AH,AL,BH,BL,CH,CL,DH,DL) 段地址寄存器( CS,SS,DS,ES) 标志寄存器 INC CX ;CXCX+1 MOV SS,AX ;SSAX ADD CL,BH ;CLCL+BH (2)物理地址:操作数在CPU内的寄存器中。 2.寄存器寻址
MOV AX,BX ;AX←BX AX BX 34H 34H (3)特点:执行时间短,只访问寄存器,不访问内存。 (4)注意: A.CS一般不要求用户赋值。否则语法无错,执行错。 B.两个操作数的长度必须一致 7/133
7/133 (3)特点:执行时间短,只访问寄存器,不访问内存。 (4)注意: A. CS一般不要求用户赋值。否则语法无错,执行错。 B. 两个操作数的长度必须一致 MOV AX, BX ;AXBX 12H 34H AX BX 34H
3.存储器寻址 操作数在内存中除代码段以外的存储区中。 地址总线(Address Bus) 中央处理器 数据总线(Data Bus) (CPU) 控制总线(Control Bus 10接口电路 存储器 (Memory) 10设备 8/133
8/133 操作数在内存中除代码段以外的存储区中。 3.存储器寻址 中央处理器 (CPU) 地址总线(Address Bus ) 数据总线(Data Bus ) 控制总线(Control Bus ) 存储器 (Memory) IO接口电路 IO设备
物理地址=段寄存器<<4bit+EA(有效地址或偏移地址) 确定物理地址的关键:从指令中找出EA,再确定用哪个段 寄存器。 直接寻址 寄存器间接寻址 寄存器间接寻址 ↑ [立即数] [寄存器BXBP] [寄存器SI/DI川 寄存器相对寻址 基址变址寻址 相对基址变址寻址 9/133
9/133 [立即数] [寄存器BX/BP] [寄存器SI/DI] 直接寻址 寄存器间接寻址 寄存器间接寻址 寄存器相对寻址 基址变址寻址 相对基址变址寻址 物理地址=段寄存器<<4bit+EA(有效地址或偏移地址) 确定物理地址的关键:从指令中找出EA,再确定用哪个段 寄存器
3.1直接寻址 (1)格式:操作数表示成立即数]、变量名或变量名 (变量名称符号地址。DEBUG中不能用变量名) MOV AX,[2000H] MOV AX,VALUE 或MOV AX,[VALUE MOV AX,[VALUE+2 或MOV AX,[VALUE+2 也可指明段寄存器(称段超越): MOV AX,ES:[2000H] MOV AX,CS:VALUE 其中的“:”称修改属性运算符 (2)物理地址: PA=DS(或段超越指定的段寄存器)<<4+立即数或变量的偏移 10/133
10/133 (1) 格式:操作数表示成[立即数]、[变量名]或变量名 (变量名称符号地址。DEBUG中不能用变量名) MOV AX,[2000H] MOV AX,VALUE 或MOV AX,[VALUE] MOV AX,[VALUE+2] 或MOV AX,[VALUE]+2 也可指明段寄存器(称段超越): MOV AX,ES:[2000H] MOV AX,CS:VALUE 其中的“:”称修改属性运算符 (2)物理地址: PA=DS(或段超越指定的段寄存器)<<4+立即数或变量的偏移 3.1 直接寻址