0

ユーザーが Y (はい) を入力している限りループするプログラムがあります。次に、ユーザーは long float 型のデータを入力します。また、長いフロートを入力するたびにカウントするカウンター r14 もあります。ループが終了したら、平均を計算したいと思います。私がこれを行う場合:

fld tword [r14]

それを表示すると、セグメンテーション違反が発生します。私は他にもたくさんのことを試しましたが、常にセグが表示されます。分割して表示しようとするとエラーが発生します。問題は、r14がintであり、そのようにFPUスタックに入れて除算できないことだと思います。しかし、私は別の方法を理解できません。

誰か助けてくれませんか?前もって感謝します。

4

1 に答える 1

0

FPU 命令は、引数をメモリまたは FPU レジスタから取得しますが、汎用 CPU レジスタからは取得しません。

fld tword [r14]twordに含まれるアドレスのメモリ位置からをr14取得し、FPU スタックの一番上にプッシュします。

r1410 バイトの浮動小数点値を読み取ることができるメモリ位置を指していない場合、セグメンテーション違反が発生します。

したがって、float をメモリに保存し、そこから で読み取りますfld

于 2013-02-22T03:57:55.657 に答える