我不想列出所有函數的參數和用法。詳見文末。
1,數據傳輸類
這類指令主要從內存加載浮點寄存器文件數據,壹般目的地址總是棧頂的ST(0)。您可以通過調試器清楚地看到這壹點。註意以P結尾的操作是在前壹個操作完成後彈出的,也就是ST(1)原來的內容現在變成了ST(0)的內容。註意這壹點,妳可以很容易地設計出靈活的程序。
負載:
FLD將皇馬推上堆棧
將二進制補碼整數轉換為實數並推送
FBLD將BCD轉換為實數並壓入堆棧
存儲:
FST從堆棧中存儲浮點數
FSTP將棧頂轉換為整數
拳頭
FISTP將棧頂轉換為整數
FBSTP將BCD存儲到整數並彈出堆棧
交換:
FXCH交換頂部兩個堆棧元素
恒定負載:
FLD1負載常數1.0
FLDZ加載常數0.0
FLDPI加載了常數pi (=3.1415926)...具有足夠的精度,可以安全使用)。
FLDL2E加載常量log (2) e。
FLDL2T加載常數日誌(2)10
FLDLG2加載常數log(10)2。
FLDLN2加載常數Log(e)2。
2、算術運算課
添加:
FADD/FADDP添加/添加和彈出
整數加法
減法:
FSUB/FSUBP減去/減去和彈出
FSUBR/FSUBRP使用反轉的操作數進行減/減與彈出操作
整數減法
FISUBR整數減法/反向操作數減法
乘法:
FMUL/FMUL乘法/乘法和彈出
最小整數乘法
部門:
FDIV/FDIVP Divide/divide and pop
FIDIV整數除法
FDIVR/FDIVRP使用反轉的操作數進行除法/除法和彈出操作
使用反轉操作數的整數除法
其他:
晶圓廠計算絕對值
FCHS變化標誌
舍入到整數
計算平方根
FSCALE按2的冪縮放堆棧頂部
分離指數和尾數
FPREM計算部分余數
FPREM1以IEEE格式計算部分余數
如果指令後沒有操作數,則默認操作數為ST(0)和ST(1),對於帶R後綴的指令,正常操作數的順序相反,例如fsub執行X-Y,FSUBR執行Y-X .
3.超越函數類
三角函數
FSIN計算正弦
FCOS計算余弦
快速計算正弦和余弦
FPTAN計算部分正切
FPATAN計算部分反正切
日誌類
FYL2X計算y乘以x的以2為底的對數
FYL2XP1計算y乘以以2為底的對數(x+1)
F2XM1計算(2^x)-1
4.比較範疇
FCOM比較
FCOMP比較和彈出
FICOM整數比較
FTST整數比較和彈出
無序比較
無序比較和彈出
FXAM為堆棧頂部的值設置條件代碼位
FSTSW存儲狀態字
會根據成績設定,C0~C3,上面就不具體介紹了。C1用於判斷上溢或下溢。C0相當於EFLAGS中的CF,功能基本相同。C2相當於PF,C3相當於ZF。您可能會看到以下說明。
FSTSW ax
SAHF
JZ標簽
為什麽?因為狀態字存儲在具有上述指令的C0的EFLAGS中,所以C0正好在CF位置,而C3正好在ZF位置。
5、環境與系統控制類
FLDCW加載控制字
FSTCW存儲控制字
FSTSW存儲狀態字
FLDENV加載環境塊
FSTENV存儲環境塊
保存協處理器狀態
FRSTOR恢復協處理器狀態
有限初始化協處理器
FCLEX清除異常標誌
遞增堆棧指針
FDECSTP遞減堆棧指針
FFREE將元素標記為自由
無操作
FWAIT等待浮點指令完成