2012-01-17 11 views
1

このアセンブラコードは何をしますか?アセンブラで 'label'はどのように動作しますか?

someName label word 
     dw 8dup(0) 

labelはどのように機能しますか?

+1

'label'はCPU命令ではなく、アセンブラの機能です。どのアセンブラを使用していますか? –

+0

これは私自身のプログラムではなく、これを理解するだけです。だから私が言うことは、プログラムはIntel 386 +プロセッサ用であるということです。コードスニペットはデータセグメント – superM

答えて

3

通常、labelは、後続のコード/データのシンボル名を作成し、それに1つのタイプを割り当てます。与えられた名前と型/サイズの変数を定義するのと同じです。しかし、実際にはそれにスペースを割り当てるわけではありません。変数へのエイリアスの作成に使用できます。

+0

したがって、正しく取得すれば、someNameによって次のメモリの最初のワードにアクセスできますか? – superM

+0

@superM:それは正しいです。 –

1

使用しているアセンブラの詳細が不足していますが、私は推測することができます。

someName label wordステートメントは、現在のアドレス(タイプword)をsomeNameに割り当てます。これはプログラムの後半で、特定のアドレスの代わりにsomeNameというラベルを使用できることを意味します。

dwステートメントは、ある程度の容量のあるタイプのwordを予約します。私は8dup(0)の意味を完全には特定していませんが、それは8ワード(16バイト)のスペースかもしれません。

+0

dwに書かれています。8dup(0)は8ワードのメモリを割り当て、各ワードに値0を書き込むことを意味します。 – superM

1

ラベルは、ステートメントの先頭に置くことができます。組み立て中、ラベルにはアクティブな位置カウンタの現在の値が割り当てられ、命令オペランドとして機能します。 lablesには、シンボリックと数値の2種類があります。

関連する問題