● 関数リファレンス

レジスタスタックの取得

    PREGSTACK __stdcall    floatex_get_regstack(PREGSTACK pdest);

引数

引数名意味
pdest結果を格納する REGSTACK 構造体の実体の先頭アドレス

戻り値

pdest を返します。

説明

FPU のレジスタスタックを取得します。

関数を実行すると、pdest が指す領域に、タグワードとレジスタスタックの内容を返します。
形式は REGSTACK 構造体です。
REGSTACK 構造体.

typedef struct {
    int         stacktop;
    int         stackfault;
    int         tag;
    int         reserved;
    FLOATEX     reg[8];
} REGSTACK,*PREGSTACK;
この構造体は floatex.h 内で定義されています。

メンバ名意味
stacktopスタックトップ
stackfaultスタックフォルト
tagタグワード
reserved(予約)
regレジスタスタックの内容



この関数は、eax 以外の汎用レジスタの内容を変えません。また、EFLAGS の内容を保存します。


FPU のスタックフォルトフラグは、一度セットされると例外フラグのリセットを行う命令を実行しない限り残り続けます。そのため、例外フラグをクリアしない処理では、メンバ stackfault の内容が正確ではない場合があります。
スタックフォルトを検出した時は floatex_clear87 等によりフラグをリセットしてください。