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