● 関数リファレンス

タグ・ワードの取得

    unsigned int __stdcall    floatex_get_stacktag(void);

引数

無し

戻り値

取得したタグ・ワードを返します。

説明

FPU のタグ・ワードを取得します。
この関数は、eax 以外の汎用レジスタの内容を変えません。また、EFLAGS の内容を保存します。

floatex_get_stacktag が返すタグ・ワードは、スタックトップが最下位になるよう調整されています。


floatex_get_stacktag の戻り値.




戻り値を FPU_TAG 構造体に当てはめるか、2 bit 単位にビット操作する事で、該当する情報にアクセスする事ができます。

(FPU_TAG 構造体)

typedef struct {
    unsigned int        st0 : 2;
    unsigned int        st1 : 2;
    unsigned int        st2 : 2;
    unsigned int        st3 : 2;
    unsigned int        st4 : 2;
    unsigned int        st5 : 2;
    unsigned int        st6 : 2;
    unsigned int        st7 : 2;
} FPU_TAG,*PFPU_TAG;

この構造体は floatex.h 内で定義されています。

メンバ名意味
st0ST(0) のタグ
st1ST(1) のタグ
st2ST(2) のタグ
st3ST(3) のタグ
st4ST(4) のタグ
st5ST(5) のタグ
st6ST(6) のタグ
st7ST(7) のタグ

変換には、次の共用体を使用する事もできます。この共用体は floatex.h 内で定義されています。

typedef union {
    unsigned int        dword;
    FPU_TAG             bits;
} FPU_TAG_DW,*PFPU_TAG_DW;