4

次の値が、指定されたメモリ アドレスとレジスタに格納されていると仮定します。

Address    Value            Register     Value
0x100      0xFF             %eax         0x100
0x104      0xAB             %ecx         0x1
0x108      0x13             %edx         0x3
0x10C      0x11


Fill in the following table showing the values for the indicated operands:

Operand           Value    //Solutions at the end of the chapter
%eax              _____    //0x100
0x104             _____    //0xAB
$0x108            _____    //0x108
(%eax)            _____    //0xFF
4(%eax)           _____    //0xAB
9(%eax, %edx)     _____    //0x11
260(%ecx, %edx)   _____    //0x13
0xFC(,%ecx,4)     _____    //0xFF
(%eax, %edx,4)    _____    //0x11

素人の言葉でこれを行う方法を誰かが私に説明できますか。これは hmwk ではありません (章の最後に答えがある特定の読書中の練習問題です)、私は読書を理解していません。

4

2 に答える 2

11

AT&T x86 アセンブリ構文の一般的な規則は次のとおりです。

displacement(offset, relative offset, multiplier) = offset + displacement + ( relative offset * multiplier)
  1. %eaxレジスタの実際の値 (=0x100) を参照します。
  2. 0x104アドレス 0x104 の値を参照します。
  3. $0x108定数値 0x108 を参照します。
  4. (%eax)アドレス EAX の値を指し、0x100(=0xFF) に相当します。
  5. 4(%eax)0x104 にあるアドレス EAX+4 の値を参照します。
  6. 9(%eax, %edx)0x10C にあるアドレス EAX+9 + EDX の値を参照します。
  7. 260(%ecx, %edx)0x108 にあるアドレス ECX+260 + EDX の値を参照します。
  8. 0xFC(,%ecx,4)アドレス (ECX*4)+0xFC の値で、0x100 です。
  9. (%eax, %edx, 4)0x10C にあるアドレス (EAX+(EDX*4) の値を参照します。
于 2013-02-15T07:32:06.450 に答える
5

この AT&T アセンブリ構文と少しのアセンブリについて学習する必要があります。それがわかれば、答えは簡単です。

そう、

%eaxレジスターの中身だけです。

0x104はメモリー・オペランドで、アドレス のメモリーの内容です0x104

$0x108定数です。

(some expression)はメモリー・オペランドで、アドレス のメモリーの内容ですsome expression

some constant(some expression)はメモリオペランドで、アドレスsome expression+にあるメモリの内容ですsome constant

(%register1, %register2)お察しのとおり、これもメモリ オペランドです。括弧で囲まれた式の値はregister1+register2です。

some constant(%register1, %register2)今でも簡単なはずです。3 つの項目を追加するだけで、それがアドレスになります。

(, %register, some constant)レジスタの値に定数を掛ける必要があることを意味します。

(%register1, %register2, some constant)直感的に理解できるはずです。括弧で囲まれた式の値はregister1+ register2*some constantです。

次のようなメモリオペランドのアドレスを推測してください。

some constant1(%register1, %register2, some constant2).

于 2013-02-15T07:32:12.673 に答える