diff options
Diffstat (limited to 'ia32/float')
-rw-r--r-- | ia32/float/float.sts | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/ia32/float/float.sts b/ia32/float/float.sts new file mode 100644 index 0000000..158781c --- /dev/null +++ b/ia32/float/float.sts @@ -0,0 +1,37 @@ +defasm float_init + # 9b ?' ; wait + # db ?' # e3 ?' ; fninit +next + +defasm float_fload + # d9 ?' # 04 ?' # 24 ?' ; fld dword [esp] + # 58 ?' ; pop eax +next + +defasm float_iload + # db ?' # 04 ?' # 24 ?' ; fild dword [esp] + # 58 ?' ; pop eax +next + +defasm float_fstore + # 50 ?' ; push eax + # d9 ?' # 1c ?' # 24 ?' ; fstp dword [esp] +next + +defasm float_istore + # 50 ?' ; push eax + # db ?' # 1c ?' # 24 ?' ; fistp dword [esp] +next + +defasm float_status + # de ?' # f9 ?' ; fnstsw ax + # 50 ?' ; push eax +next + +defasm float_add + # de ?' # c1 ?' ; faddp st1, st0 +next + +defasm float_div + # de ?' # f9 ?' ; fdivp st1, st0 +next |