● 関数リファレンス
タグ・ワードの取得
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 内で定義されています。
メンバ名 | 意味 |
st0 | ST(0) のタグ |
st1 | ST(1) のタグ |
st2 | ST(2) のタグ |
st3 | ST(3) のタグ |
st4 | ST(4) のタグ |
st5 | ST(5) のタグ |
st6 | ST(6) のタグ |
st7 | ST(7) のタグ |
変換には、次の共用体を使用する事もできます。この共用体は floatex.h 内で定義されています。
typedef union {
unsigned int dword;
FPU_TAG bits;
} FPU_TAG_DW,*PFPU_TAG_DW;