-4

私はARMアーキテクチャの初心者です。私はアセンブラー (ARM arch) にプログラムを持っています。プログラム内のすべての文字列を意味する必要があります。どういう意味ですか?それに関する情報が見つかりません。お願い助けて。ありがとう。

@ args = 0, pretend = 0, frame = 40
@ frame_needed = 0, uses_anonymous_args = 0
fstmfdd>sp!, {d8, d9}
bl<>__aeabi_l2d
it eq
fmdrr<->d6, r0, r1
fdivd<->d7, d8, d6
faddd<->d9, d9, d7
flds<-->s11, [sp, #4]<->@ int
.word<->0
4

1 に答える 1

0

FMDRR2 つの ARM1136 レジスタから VFP11 (頂点浮動小数点) 倍精度レジスタにデータを転送します。doubleこの場合、レジスタ r0 および r1 からビットを転送して、VFP11 レジスタ d6 で倍精度 (可変) 値を形成します。

FDIVdouble型の2つの値を除算しているため、最後の「D」は「倍精度」フラグです。この場合d7 = d8 / d6

FADD前のコマンドと同様に、浮動小数点加算です。この場合d9 = d9 + d7

FLD浮動小数点ロードです。最後の「S」は「単一」精度フラグです。これは、単一の CPU ワードの長さで値を渡すためです。[sp, #4] は、sp の 4 ワード後に格納されているデータをロードしていることを意味します (たとえば、レジ​​スタ sp が 100 番目のワードの場合、104 番目のワードを取得します)。@int は変換フラグです。この場合s11 = [sp+4]

詳細については、 ARM Information Centerを確認してください。

于 2013-10-27T13:41:32.610 に答える