汇编逆向查询

数据传送指令 MOV

格式:MOV OPRD1,OPRD2
功能:本指令将一个源操作数送到目的操作数中,即OPRD1<--OPRD2.

1. OPRD1 为目的操作数,可以是寄存器、存储器、累加器.
OPRD2 为源操作数,可以是寄存器、存储器、累加器和立即数.

2. MOV 指令以分为以下四种情况:
<1> 寄存器与寄存器之间的数据传送指令
示例: MOV AX,BX
MOV DS,AX
MOV BP,SI

注意: 代码段寄存器CS及指令指针IP不参加数的传送,其中CS可以作为
源操作数参加传送,但不能作为目的操作数参加传送.

<2> 立即数到通用寄存器数据传送指令
立即数只能作源操作数使用,不能作目的操作数.
示例: MOV AL,25
MOV SI,OFFSET DATA1

注意: 由于传送的数据可能是字节,也可能是字,源操作数与目的操作
数的类型应一致。

<3> 寄存器与存储器之间的数据传送指令
示例: MOV AL,BUFFER
MOV AX,[SI]
MOV LAST[BX+DI],DL
MOV SI,ES:[BP]

<4> 立即数到存储器的数据传送
示例: MOV ALFA,24
MOV DS:MEMS[BP],300AH
MOV BYTE PTR[SI],15
MOV LAST[BX][DX],0FFH

3. 本指令不影响状态标志位.

4. MOV指令执行时的数据传送方向.
<1> 立即数只能作为源操作数,不允许作目的操作数,立即数也不通送至段寄存器.
<2> 通用寄存器可以与段寄存器,存储器互相传送数据,寄存器之间也可以互相传送.但CS段不能作为目的操作数.
<3> 值得再次强调的是存储器与存储器之间不能进行数据直接传送.若要实现存储单元间的数据传送,可以借助于通用寄存器作为中介来进行.