2010.1.28 数据寻址方式
除了MOVS指令,任何其他指令都不允许存储器到存储器的传送。
Intel所有的微处理器有相同的寻址方式,但比例变址寻址方式是个例外,只能用于80386~Pentium4。
寻址类型 指令 源 地址生成 目标 寄存器寻址 MOV AX,BX 寄存器BX 寄存器AX
立即寻址 MOV CH,3AH 数据3AH 寄存器CH 直接寻址 MOV [1234H],AX 寄存器AX DS X 10H + DISP 存储器地址11234H 10000H +1234H
寄存器间接寻址 MOV [BX],CL 寄存器CL DS X10H +BX 存储器地址10300H 10000H + 0300H 基址加变址寻址 MOV [BX+SI],BP 寄存器BP DS X10H +BX +SI 存储器地址10500H 10000H + 0300H + 0200H 寄存器相对寻址 MOV CL,[BX+4] 存储器地址10304H DSX10H +BX +4 寄存器CL 10000H + 0300H+4 相对基址加变址寻址 MOV ARRAY[BX+SI],DX 寄存器DX DS X10H +ARRAY + BX +SI 存储器地址11500H 10000H +1000H +0300H 0200H
比例变址 MOV [EBX+2 ESI],AX 寄存器AX DS X10H +EBX +2 X ESI 存储器地址10700H 10000H + 00000300H + 00000400H
8086~pentium4的数据寻址方式
EBX = 00000300H ESI = 00000200H ARRAY = 1000H DS = 1000H
寄存器寻址 MOV指令不影响标志位 不允许段寄存器到段寄存器的MOV指令, 代码段寄存器不能用MOV改变,因为下一条指令的地址需要由IP/EIP和CS共同确定。如果只改变CS的值,下一条指令的地址将是不可知的。 |