=手話コンパイルディレクティブ

以下の構文を連結整数式とシンボル名に指令(等号ディレクティブ)に等しいです。

 

名前=式

典型的には、発現は、32ビットの整数値です。アセンブラの前処理段階でコンパイルされたプログラムは、すべてのオカレンスは、名前の表現に置き換えられた場合。次の文を仮定すると、ファイルが始まるソースコードの代わりに表示されます。

COUNT = 500

次に、位置以降の10行で次の文を想定しました:

MOV EAX、COUNT

そして、アセンブラファイル、MASMは、ソースファイルをスキャンし、コードの対応する行を生成します。

MOV EAX、500

なぜサイン?

プログラマが完全に定数500を書き込むためのMOV命令を直接使用する単純化されたCOUNT記号を、スキップすることができますが、経験があればサインは読んで維持するために、プログラムが容易になりますことを示しています。

COUNTは、プログラム全体で複数回表示された場合、想像し、その後、時間が経過した後、プログラマは簡単にその値を再定義することができます。

COUNT = 600

ソースファイルを再コンパイルする場合、すべてのCOUNTが自動的に600に置き換えられます持っています。

現在のアドレスカウンタ

最も重要なシンボルの一つは、現在のアドレスカウンタ(現在のロケーションカウンタ)と呼ばれ、$のように表します。たとえば、次の文は、変数selfPtrを宣言し、オフセットとの変数を初期化します。

selfPtrのDWORDの$

キーボードの定義

これは、一般的にテンキーコードを識別するために使用されるプログラムシンボルを定義しています。たとえば、27は、ASCIIコードEscキーであります:

Esc_key = 27

プログラムの裏には、この記号の代わりに、整数定数を使用してif文、それは強力な自己記述があります。

使用
MOVら、Esc_key、良いプログラミングスタイル
の代わり
のmovら、27;悪いプログラミングスタイル

使用してDUP演算子

「データ定義」セクションには、文字列と配列を格納するためにDUP演算子を使用する方法について説明します。保守手順を簡単にするために、カウンタDUPの使用は、シンボルカウンタであるべきです。

あなたはCOUNTを定義している場合は、次の例では、それは次のデータ定義で使用することができます。

アレイDWORDカウントDUP(0)

再定義

記号「=」の定義では、同じプログラムで再定義することができます。場合カウント値以下の例では、その値を計算する方法アセンブラ、変化を示します。

COUNT = 5
AL = 5; MOVのAlが、COUNT
COUNT = 10
AL = 10; COUNT、MOVのAlから
COUNT = 100
、MOVのAlからCOUNT; AL = 100

値の符号を変更し、例えば文は、実行時に実行の順序には影響しません、COUNT。対照的に、アセンブラの前処理段階で、ソースシンボルの順序は、アセンブラに応じて値を変更するように処理されます。

次:配列と文字列の長さを計算します

高度の記事を読んでお勧めします

40 +すべてここにビッグデータ開発[W]チュートリアルの年俸!

おすすめ

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