FTST - 測試

操作碼

指令

說明

D9 E4

FTST

比較 ST(0) 與 0.0。

說明

比較 ST(0) 暫存器中的值與 0.0,根據結果設定 FPU 狀態字中的條件程式碼標誌 C0、C2 及 C3(請參閱下表)。

條件

C3

C2

C0

ST(0) > 0.0

0

0

0

ST(0) < 0.0

0

0

1

ST(0) 0.0

1

0

0

無序

1

1

1

此指令執行“無序比較”。無序比較還檢查比較的數值的類別(請參閱 FXAM - 檢查)。如果暫存器 ST(0) 中的值是 NaN,或是採用未定義的格式,則將條件標誌設定為“無序”,並產生操作無效異常。

忽略 0 的符號,因此 -0.0 +0.0。

操作

CASE (relation of operands) OF
Not comparable: C3, C2, C0 111;
ST(0) > 0.0: C3, C2, C0 000;
ST(0) < 0.0: C3, C2, C0 001;
ST(0) 0.0: C3, C2, C0 100;
ESAC;

影響的 FPU 標誌

C1 - 如果發生堆疊下溢,則設定為 0;否則清除為 0。

C0、C2、C3 - 請參閱上表。

浮點異常

#IS - 發生堆疊下溢。

#IA - 源運算元是 NaN 值,或是不支援的格式。

#D - 源運算元是非規格化值。

保護模式異常

#NM - 如果 CR0 中的 EM 或 TS 設定為 1。

實地址模式異常

#NM - 如果 CR0 中的 EM 或 TS 設定為 1。

虛 8086 模式異常

#NM - 如果 CR0 中的 EM 或 TS 設定為 1。