1

アセンブリ構文に問題があります。私の課題では、一連のパラメーターを x87 浮動小数点レジスターに渡す必要があります。これらのパラメーターの 1 つは double であり、この double を配列として使用することになっています。

fldl 4(%esp)を使用してスタックにロードしましたが、配列要素にアクセスするタスクがあります。x86 で整数配列を操作する構文は理解していますが、x87 スタック上にある配列のインデックスにアクセスする方法がわかりません。

私の浮動小数点スタックにはこれしかないので、%st(0)にあることがわかっています。

4

1 に答える 1

1

コメントによると、関数はdouble*引数を取得します。したがって4(%esp)、 double へのポインターです。これは、配列項目が格納されるベースアドレスで、それぞれ 8 バイトです。i- 番目の要素にアクセスするにはi、8 を掛けて、ベース アドレスに追加します。次のように、この要素を FPU にロードできると仮定ieaxます。

movl 4(%esp), %edx   # load array base
fldl (%edx, %eax, 8) # load the array item whose index is in eax
于 2014-03-25T00:34:29.730 に答える