MOVAF
Aus C64-Wiki
Zur Navigation springenZur Suche springen
Anmerkung: Dieser Artikel beschreibt die MOVAF-Routine zur Übertragung von Fließkommawerten im BASIC-ROM.
| Name: | MOVAF | ||||||
| Beschreibung: | Inhalt des Fließkommaregisters ARG in das Fließkommaregister FAC kopieren | ||||||
| Einsprungpunkt: | $BBFC / 48124 | ||||||
| Übergebene Argumente: | |||||||
| Rückgabe-Werte: | |||||||
| Akkumulator: | Exponent von FAC und ARG | ||||||
| X-Register: | 0 | ||||||
| Y-Register: | unverändert | ||||||
| Zero-Flag: | gesetzt | ||||||
| Negative-Flag: | gelöscht | ||||||
MOVAF[1] — manchmal auch als ARGFAC[2] oder FAC2/1[3] bezeichnet — kopiert den Inhalt des Fließkommaregisters ARG in das Fließkommaregister FAC und setzt dessen Rundungsbyte auf 0.
Laufzeitverhalten[Bearbeiten | Quelltext bearbeiten]
Die Laufzeit von MOVAF beträgt unabhängig vom Inhalt von ARG immer 87 Systemtakte.
Verwandte Routinen[Bearbeiten | Quelltext bearbeiten]
| Name | Adresse dez. |
Adresse hex. |
Beschreibung |
|---|---|---|---|
| CONUPK | 47756 | BA8C | ARG mit Zahl aus dem Speicher füllen (A=Adr.LB, Y=Adr.HB). Vergleicht danach noch als Vorbereitung für nachfolgende Operationen die Vorzeichen von ARG und FAC und schreibt das Ergebnis nach Adresse $6F ($00: Vorzeichen gleich, $80: Vorzeichen ungleich), und lädt den Exponenten von FAC nach A (d.h. setzt Zero Flag genau dann, wenn FAC gleich null). Die Routinen FADDT, FDIVT, FMULTT und FPWRT setzen diese Vorbereitung voraus. |
| MOVAF | 48124 | BBFC | Zahl in ARG nach FAC kopieren |
| MOVFA | 48140 | BC0C | Zahl in FAC nach ARG kopieren |
| MOVFM | 48034 | BBA2 | FAC mit Zahl aus dem Speicher füllen (A=Adr.LB, Y=Adr.HB) |
| MOVMF | 48084 | BBD4 | Zahl aus FAC im Speicher ablegen (X=Adr.LB, Y=Adr.HB) |
Weblinks[Bearbeiten | Quelltext bearbeiten]
- Disassembly von MOVAF/$BBFC auf All About Your 64

- CodeBase 64: Floating Point Math

- C64 BASIC & KERNAL ROM Disassembly von Michael Steil

- C64OS: Floating Point Math from BASIC
