1

MOV [1234H], AXAXの値がメモリ内の1234の16進アドレスにコピーされることを意味します。だから、私が言っていることが間違っているなら、私を訂正してください、[]演算子はポインタとして機能しますよね?

そうは言っても、次の指示が理解できません。MOV [EBX], AXなぜ[]を使用するのですか?EBXはプロセッサ内の汎用レジスタであり、メモリセルではないため、EBXへのポインタはありません。

PS私はmasm32でプログラミングしています。

ありがとう

4

5 に答える 5

5

ここでのレジスタ EBX は、アドレスである値を保持します。MOV [EBX], AXレジスタ AX に格納されている値を取得します。EBXに格納されているアドレスに書き込みます。

于 2009-11-15T18:09:24.697 に答える
4

私はあなたの質問ケースEBXがアドレスを保持し、マシンがストアを行うと信じています。

于 2009-11-15T18:03:43.727 に答える
4

の意味は、[]より「アドレスを見る...」であるため[1234H]、アドレス0x1234を[EBX]調べ、に格納されているアドレスを調べることを意味しますEBX*あなたがそれに精通しているなら、C /C++の演算子のように。

于 2009-11-15T18:07:02.243 に答える
2

のような指示には注意してください。

MOV [EBX], AX

AX は 16 ビット レジスタであるため、EBX が保持するアドレスがアラインされていない限り、パフォーマンスが大幅に低下する可能性があります。

于 2009-11-15T18:19:16.060 に答える
0

括弧は、間接性のレベルを意味します。
mov bx,ax は、ax を bx に入れるか、直接レジスタに格納することを意味し、レジスタを直接使用して値を格納することを意味します mov [bx],ax は、レジスタを間接的に使用することを意味します。 . mov ax,1234h は即時を意味し、1234h を AX に入れます。 mov [1234h],ax は上記の [bx] と同じように間接的なレベルを持ち、括弧内は結果を格納する場所へのアドレスを含みます。

私は x86 構文に慣れていませんが、x86 にこれがあり、mov [bx+cx],ax のようなものが表示された場合は、bx と cx を追加し、それをアドレスとして使用して値を ax に格納することを意味します。

于 2009-11-16T02:47:27.653 に答える