サーチ…


構文

  • .386MASMに最小x86チップバージョンの386をコンパイルするよう指示します。
  • .MODEL:参照、使用するメモリモデルを設定します.MODELを
  • .code :コードセグメント。メインプロセスなどのプロセスに使用されます。
  • proc :プロセスを宣言します。
  • ret :関数を正常に終了するために使用します戻り値の処理を参照してください。
  • endp :プロセス宣言を終了します。
  • public :プログラムのすべてのセグメントでプロセスを使用できるようにします。
  • end :プログラムを終了するか、 " end main "などのプロセスで使用すると、そのプロセスをメインメソッドにします。
  • call :処理を呼び出し、オペコードをスタックにプッシュします。「 制御フロー 」を参照してください。
  • ECX:カウンターは、レジスタの参照レジスタを
  • ecx :カウンタレジスタ。
  • mul :eaxで値を乗算する

備考

movレジスタ間でデータを転送するために使用されます。

MOVを使用した値の操作

説明:

movは、ソース引数からデスティネーション引数へのビットの値をコピーします。

一般的なソース/宛先はレジスタで 、[in] CPUで値を操作する最も速い方法です。

source_of / destination_for値の別の重要なグループは、コンピュータメモリです。

最後に、いくつかの即値がmov命令のエンコード自体の一部になることがあり、命令と一緒に値を読み取ることによって別々のメモリアクセスの時間を節約します。

32および64ビットモードのx86 CPUには、これらを組み合わせる豊富な可能性、特にさまざまなメモリアドレッシングモードがあります。一般に、メモリ間コピーはアウト・リミット( MOVSBような特別な命令を除く)であり、そのような操作は、最初にレジスタ[s]への値の中間記憶を必要とする。

手順1: MASMを使用するようにプロジェクトをセットアップします。「 Visual Studio 2015でx86アセンブリ実行する」を参照してください。
ステップ2:これを入力します:

.386
.model small
.code

public main
main proc
    mov ecx, 16       ; Move immediate value 16 into ecx
    mov eax, ecx      ; Copy value of ecx into eax
    ret               ; return back to caller
        ; function return value is in eax (16)
main endp
end main

ステップ3:コンパイルとデバッグ。

プログラムは値16を返さなければなりません。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow