FISTTP - 儲存整數,帶截斷

 

指令

說明

 

FISTTP m16int

將 ST 當作有符號整數(截斷)儲存到 m16int,並彈出 ST。

 

FISTTP m32int

將 ST 當作有符號整數(截斷)儲存到 m32int,並彈出 ST。

 

FISTTP m64int

將 ST 當作有符號整數(截斷)儲存到 m64int,並彈出 ST。

說明

FISTTP 以截斷(截尾)為取整模式,將 ST 中的值轉換成有符號整數,結果傳輸到目標,並彈出 ST。FISTTP 接受字、短整數及長整數目標運算元。

下表顯示按整數格式儲存各類數值時得到的結果。

表格備註

F 表示有限浮點值。

I 表示整數。

* 表示浮點操作無效 (#IA) 異常。

操作

DEST ¨  ST;

pop ST;

影響的標誌

C1 清除;C0、C2 及 C3 未定義。

數值異常

無效、堆疊無效(堆疊下溢)、精度。

保護模式異常

#GP(0) - 如果目標運算元位於不可寫的段。

CS、DS、ES、FS 或 GS 段中的記憶體運算元有效地址非法。

#SS(0) - SS 段中的地址非法。

#PF(錯誤程式碼) - 頁錯誤。

#AC - 如果在目前特權級別為 3 時進行未對齊的記憶體引用。

#NM - 如果 CR0.EM = 1。

如果 CR0 中的 TS 設定為 1。

#UD - 如果 CPUID.PNI(ECX bit 0) = 0。

實地址模式異常

中斷 13 - 如果運算元的任何部分出現在從 0 到 0FFFFH 的有效地址空間之外。

#NM - 如果 CR0.EM = 1。

如果 CR0 中的 TS 設定為 1。

#UD - 如果 CPUID.PNI(ECX bit 0) = 0。

虛 8086 模式異常

中斷 13 - 如果運算元的任何部分出現在從 0 到 0FFFFH 的有效地址空間之外。

#NM - 如果 CR0.EM = 1。

如果 CR0 中的 TS 設定為 1。

#UD - 如果 CPUID.PNI(ECX bit 0) = 0。

#PF(錯誤程式碼) - 頁錯誤。

#AC - 目前特權級別為 3 時的未對齊的記憶體引用。