アセンブリ言語命令MOV:デスティネーションオペランドにソースオペランドをコピーします

MOV命令デスティネーションオペランドにコピーソースオペランド。ほとんどすべてのプログラムに使用されるデータ転送(データ転送)命令、など。その基本的な形態では、第一オペランドがデスティネーション・オペランドであり、第2オペランドがソース・オペランドです。

 

MOV先、ソース

前記デスティネーションオペランドの内容が変更されますが、ソースオペランドを変更しません。このデータは、C ++やJavaに似た代入文を右から左に移動されます。

=ソース;

ほぼすべてのアセンブリ言語命令で、左のオペランドがデスティネーションオペランド、右オペランドはソースオペランドです。限り、以下の規則として、オペランドを使用して、MOV命令が非常に柔軟です。

  • 二つのオペランドは同じサイズでなければなりません。
  • 二つのオペランドは、同時にメモリのオペランドではありません。
  • 命令ポインタレジスタ(IP、EIPまたはRIP)は、デスティネーション・オペランドとして使用することができません。

以下は、MOV命令の標準フォーマットであります:

  MOVのREG、REGのMOVのMEM、REGのMOVのREG、MEMのMOVのMEM、IMMのMOVのREG、IMM

メモリーへ

単一の命令MOVは、別のメモリ位置に一つのメモリ位置から直接データを転送するために使用することができません。対照的に、メモリに割り当てられたソース・オペランド操作の値の前に、それは第1のレジスタの値に転送されなければなりません。

  .dataのVAR1 WORD?var2のWORD?.CODE楽章の斧、VAR1楽章VAR2、斧

ヒント:、変数やレジスタに定数とみなされるために必要な最小文字数を整数定数コピーします。

カバレッジ値

次のコード例は、異なるサイズの32ビットのレジスタデータを用いてそれを修正する方法を示します。AX、ALのときは1ワードのワード転送、それはすでに値が上書きされます。oneDwordはEAXに転送する場合は、AXの値を上書きします。0 AXに伝達される。最後に、それはEAXの下半分を覆っています。

  .dataのoneByteバイト78H 1ワードWORD 1234H oneDword DWORD 12345678h

4.1  オペランドの型
4.2  MOV命令
4.3  それを行うにMOVZXおよび命令MOVSX
4.4  LAHFのSAHF命令及び
4.5  XCHG命令
4.6  即値オペランドをオフセット
4.7  アセンブリ言語データ転送例
4.8  加減算詳細
4.9  OFFSETオペレータ
4.10  ALIGNディレクティブ
4.11  PTR演算子
4.12  TYPEオペレータ
4.13  lengthofオペレータ
4.14  LABELディレクティブ
4.15  間接アドレッシング
4.16  JMPとLOOP命令
4.17  64 MOV命令
4.18  64ビットの加算と減算を

おすすめ

転載: blog.csdn.net/Javaxuxuexi/article/details/93401373