1. Instrukcje wczytania/zapisu Ładowanie z pamięci Zapis do

Transkrypt

1. Instrukcje wczytania/zapisu Ładowanie z pamięci Zapis do
1. Instrukcje wczytania/zapisu
Ładowanie z pamięci
Zapis do pamięci
FLD [mem] – ładuje zmienną
FLDZ - ładuje +0.0
FLD1 - ładuje +1.0
FLDPI - ładuje π
FLDL2T - ładuje log2 10
FST [mem] – zapisuje do pamięci
FSTP [mem] – zapis orazzdjęcie ze stosu
FIST [mem] – zapis i zaokrąglenie do całkowitej
FXCH sti – zmiana w stosie pozycji sti i st0
FLDL2E - ładuje log2e
FLDLG2 - ładuje log102
FLDLN2 - ładuje loge2
Dane ładowane są do rejestru st0
2. Instrukcje arytmetyczne:
Instrukcje dodawania, odejmowania, mnożenia i dzielenia przyjmują następujące argumenty:
• dwa rejestry danych x87 FPU
• rejestr danych x87 FPU
• rzeczywistą lub całkowitą liczbę w pamięci
➢ Dodawanie:
FADD [mem]
st(0) := st(0) +[mem]
FADD st(0),st(i)
st(0) := st(0) + st(i)
FADD st(i),st(0)
st(i) := st(i) + st(0)
FADDP st(i), st(0)
st(i) := st(i) + st(0) i zdejmij st(0) (inkrementuje TOP)
FADDP
FADDP st(1), st(0)
FIADD [mem]
st0 := st0 + [mem]
➢ Odejmowanie – składnia identyczna jak w dodawaniu:
FSUB, FSUBP, FISUB
➢ Mnożenie – składnia identyczna jak w dodawaniu:
FMUL, FMULP, FIMUL
➢ Dzielenie – składnia identyczna jak w dodawaniu:
FDIV, FDIVP, FIDIV
3. Inne operacje:
FABS
wartość bezwzględna
st(0) := |st(0)|
FCHS
zmiana znaku
st(0) := -st(0)
FSQRT
pierwiastek kwadratowy
st(0) := SQRT[ st(0) ]
FPREM lub FPREM1
reszta z dzielenia
st(0) := st(0) mod st(1)
FRNDINT
zaokrąglanie do całkowitej
st(0) := (int)st(0)
FCOMI st0, sti
porównuje i ustawia flagi procesora