Ngaro ist eine portable virtuelle Maschine für einen Dual-Stack-Architektur. Der Befehlssatz ist im Wesentlichen eine Teilmenge von Forth. Obwohl in ihrer Fähigkeit, mit den darunterliegenden OS interagieren beschränkt, sollte es ausreichend ist, damit eine Vielzahl von Programmen geschrieben und darauf ausgeführt werden kann.
Das Paket enthält einige grundlegende Dokumentation, Source Code, die Maschine her Compiler und ein paar kleine Beispiele.
Verbrauch:
./ngaro image
Der Befehlssatz ist minimalistisch gehalten. Der genaue Satz von Anweisungen
Änderungen gelegentlich, aber die folgende Liste ist seit über einem stabilen
Jahr. (Die letzten drei, die sich mit der Port-basierte I / O-Modell, sind neu)
0 NOP Keine Aktion
1 LIT Schieben Sie den Wert in den folgenden Zelle in dem Stapel
2 DUP Doppelte der obere
Element auf den Stack
3 Tropfen Tropfen das oberste Element
auf dem Stapel
4 SWAP Wechsel die beiden oberen
Artikel auf dem Stapel
5 PUSH Drücken Sie den oberen Punkt auf
Stapel zur
Adressenstapel, Drop
TOS
6 Pop das oberste Element der
die Adresse Stack off
und legte sie auf die
Datenstack
7 Anrufen Anrufen die Adresse,
die folgende wörtliche
entspricht
8 Sprung Sprung auf die Adresse
dass folgende
wörtliche entspricht
bis
9; Zurück zu den Anrufer,
mit CALL verwendet
10> Jump Sprung bedingt. Es
vergleicht TOS und NOS.
11 Umschalttaste Bits rechts
25 0; Exit (Drop), wenn
TOS ist 0
26 1+ Increment TOS von 1
27 1- Decrement TOS von 1
28 IN Lesen Sie einen Port
29 OUT-Store zu einem Hafen
30 Bitte warten Bitte warten für eine Port-basierte
fordern zu beenden
Wenn eine nicht unterstützte Befehlscode angetroffen wird, die interal IP-Register gesetzt ist
das Ende des Speichers. Die Ausführung des Bildcode wird angehalten, wenn das passiert.
Einige Befehle nutzen einen der folgenden Zelle zu Adressen enthalten oder
Werte. Diese sind:
1 LIT
7 AUFRUF
8 JUMP
10> Sprung
11
Was ist neu in dieser Pressemitteilung:.
- Diese Version bringt aktualisierte Versionen von allen Implementierungen und im wesentlichen aktualisierte Dokumentation
- Es gibt jetzt 14-Implementierungen in Python, Ruby, Perl, Common Lisp, x86-Assembler geschrieben, ANS Forth, JavaScript, Retro, Lua, Java, C, C #, F #, und gehen.
Kommentare nicht gefunden