Groups | Search | Server Info | Keyboard shortcuts | Login | Register
Groups > de.comp.lang.forth > #555
| From | Ewald Pfau <anderswo@gmx.net> |
|---|---|
| Newsgroups | de.comp.lang.forth, de.sci.electronics |
| Subject | Re: Anwendungen / 10 MHz Uhr |
| Date | 2019-08-30 08:47 +0000 |
| Message-ID | <gss653FthmU1@mid.individual.net> (permalink) |
| References | <qk3s0f$gpa$1@dont-email.me> <qk95k9$mr9$1@news2.open-news-network.org> <qk9aju$j4u$1@dont-email.me> <qkaja4$rku$1@news2.open-news-network.org> |
Cross-posted to 2 groups.
In de.sci.electronics, Johannes Bauer <dfnsonfsduifb@gmx.de> wrote: > Aber habe ich das schon richtig verstanden, dass jeweils > Forth-Unterroutinen keinerlei feste Calling Convention haben, d.h. sich > das jeweils von Funktion zu Funktion unterscheiden kann? D.h. also auch > nicht statisch geprüft werden kann, ob die Funktion jeweils den Stack in > einem ordentlichen Zustand hinterlässt? Ist das in der Praxis kein Problem? Der Stack selbst ist die Konvention, Variablenplätze sind bei Lowlevel-Sachen eher sehr spezielle Kontext-Abhängigkeiten, bei normalen Forth-Worten (die Du Unterroutinen nennst - in der Art der Fädelung ist aber eigentlich alles irgendwie unten, also sub...). Man sollte dazusagen, dass bei ASM-Gebrauch (im Forth-Slang: Forth-Worte als Prinitives anstelle Secondaries) die Register-Architektur berücksichtigt werden muss, ein gewisses Sortiment von Registern geht für die Forth-Maschine selbst drauf, wg. 2 Stacks und fixem Instruction-Pointer plus Umladeregister, dann gern auch Top-Of-Stack im Register. Nur bei ISRs können die Register als frei angenommen werden, wenn beim Ansprung die ganze Registerbank freigeschaufelt und später restauriert wird. Nett ist nb. die Konstruktion von gemeinsamen Methoden für Sammelobjekte auch in Asm, : def-wort CREATE dies und das ;CODE methode in asm endcode statt des secondary-Aufbaus : def-wort CREATE dies und das ;DOES methode in forth-worten ; (mit diesem universellen Konstrukt braucht es auch keine Arrays, die sind mit einem Fingerschnippen billig zu haben, wie immer man sie braucht.) Bei Aufruf des dann mit CREATE erstellten Wortes liegt für die Methode die Startaddesse des zum Zeitpunkt der Erstellung mit CREATE gültigen Speicherplatzes an Top of Stack (nennt sich sinnigerweise HERE ), kann im Definitionswort oder im Zuge der Definition ad hoc mit ALLOT reserviert werden, oder mit <wert> ',' (Komma), was immer das Objekt so braucht, damit wandert das HERE weiter.
Back to de.comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar
Anwendungen / 10 MHz Uhr Rafael Deliano <rafael_deliano@arcor.de> - 2019-08-27 20:15 +0200
Re: Anwendungen / 10 MHz Uhr Johannes Bauer <dfnsonfsduifb@gmx.de> - 2019-08-29 20:30 +0200
Re: Anwendungen / 10 MHz Uhr Rafael Deliano <rafael_deliano@arcor.de> - 2019-08-29 21:55 +0200
Re: Anwendungen / 10 MHz Uhr "Wolfgang Allinger" <all2001@spambog.com> - 2019-08-29 19:16 -0400
Re: Anwendungen / 10 MHz Uhr Johannes Bauer <dfnsonfsduifb@gmx.de> - 2019-08-30 13:41 +0200
Re: Anwendungen / 10 MHz Uhr Rupert Haselbeck <mein-rest-muell@gmx.de> - 2019-08-31 00:50 +0200
Re: Anwendungen / 10 MHz Uhr Rafael Deliano <rafael_deliano@arcor.de> - 2019-08-30 19:02 +0200
Re: Anwendungen / 10 MHz Uhr Johannes Bauer <dfnsonfsduifb@gmx.de> - 2019-08-30 09:30 +0200
Re: Anwendungen / 10 MHz Uhr Ewald Pfau <anderswo@gmx.net> - 2019-08-30 08:47 +0000
Re: Anwendungen / 10 MHz Uhr Rafael Deliano <rafael_deliano@arcor.de> - 2019-08-30 18:36 +0200
Re: Anwendungen / 10 MHz Uhr Ralph Aichinger <ra@pi.h5.or.at> - 2019-08-30 11:02 +0200
csiph-web