FPU - operacje na liczbach zmiennoprzecinkowych
Działania arytmetyczne
Wynik działań jest zawsze umieszczany w jednym z rejestrów.
- Dodawanie
FADD [mem32/64] | ST0 += mem |
FADD STn | ST0 += STn |
FADD STn, ST0 | STn += ST0 |
FADDP STn
FADDP STn, ST0 | STn += ST0. Następnie zdejmuje ST0 ze stosu. |
FIADD [mem32/64] | ST0 += mem. Dodaje liczbę całkowitą znajdującą się w pamięci. |
- Odejmowanie
FSUB [mem32/64] | ST0 -= mem |
FSUB STn | ST0 -= STn |
FSUB STn, ST0 | STn -= ST0 |
FSUBP STn
FSUBP STn, ST0 | STn -= ST0. Następnie zdejmuje ST0 ze stosu. |
FISUB [mem32/64] | ST0 -= mem. Odejmuje liczbę całkowitą znajdującą się w pamięci. |
- Odejmowanie odwrotne
FSUBR [mem32/64] | ST0 = mem- ST0 |
FSUBR STn | ST0 = STn - ST0 |
FSUBR STn, ST0 | STn = ST0 - STn |
FSUBRP STn
FSUBRP STn, ST0 | STn = ST0 - STn. Następnie zdejmuje ST0 ze stosu. |
FISUBR [mem32/64] | ST0 = mem - ST0. Odejmuje od liczby całkowitej znajdującej się w pamięci wartość ST0. |
- mnożenie:
FMUL, składnia identyczna jak w dodawaniu.
- dzielenie:
FDIV, składnia identyczna jak w odejmowaniu prostym.
- dzielenie odwrotne:
FDIVR, składnia identyczna jak w odejmowaniu odwrotnym.
Przykład
Plik asemblerowy
Plik C
Tomasz Kapela, Kraków 2011-2020