Ngaro είναι ένα φορητό εικονική μηχανή για την αρχιτεκτονική dual-stack. Το σετ εντολών είναι ουσιαστικά ένα υποσύνολο της Forth. Αν και περιορίζεται στην ικανότητά του να αλληλεπιδρά με τις υποκείμενες λειτουργικό σύστημα, θα πρέπει να είναι επαρκής ώστε να επιτρέπει μια ποικιλία προγραμμάτων για να γραφτεί και να τρέχουν σε αυτό.
Το πακέτο περιλαμβάνει κάποια βασικά έγγραφα, πλήρη πηγαίο κώδικα, ο compiler μηχάνημα εμπρός, και μερικά μικρά παραδείγματα.
Χρήση:
./ngaro imageName
Το σύνολο εντολών διατηρείται μινιμαλιστικό. Η ακριβής σειρά οδηγιών
αλλαγές κατά καιρούς, αλλά ο παρακάτω κατάλογος ήταν σταθερή για περίπου ένα
χρόνια. (Τα τρία τελευταία, που ασχολούνται με το λιμάνι με βάση το μοντέλο I / O, είναι νέα)
0 NOP Δεν κάνει τίποτα
1 LIT Πιέστε την τιμή στο ακόλουθο κελί στη στοίβα
2 DUP Διπλότυπο στην κορυφή
στοιχείου στη στοίβα
3 DROP πτώση το πρώτο στοιχείο της λίστας
στη στοίβα
4 Πράξη ανταλλαγής νομισμάτων για τα δύο κορυφαία
αντικειμένων στη στοίβα
5 Σπρώξτε Σπρώξτε την κορυφή θέμα
η στοίβα στην
στοίβα διεύθυνση, πτώση
TOS
6 POP Pop το πρώτο στοιχείο της
η διεύθυνση στοίβα off
και το βάζουμε για το
στοίβα δεδομένων
7 καλέσουν στην υπηρεσία τηλεφωνικής διεύθυνση που
η ακόλουθη γραμματική
αντιστοιχεί στην
8 Μετάβαση Μετάβαση στην διεύθυνση
ότι η ακόλουθη
κυριολεκτική αντιστοιχεί
να
9? Επιστροφή στον καλούντα,
χρησιμοποιείται με την κλήση
10> Μετάβαση υπό συνθήκες άλμα. Αυτό
συγκρίνει ΟΠΥ και NOS.
11 bits Shift σωστά
25 0? Exit (και απόθεση), αν
TOS είναι 0
26 1+ Αύξηση TOS από 1
27 1- TOS Μείωση κατά 1
28 IN Διαβάστε μια θύρα
29 από κατάστημα σε μια θύρα
30 wait wait για ένα λιμάνι με βάση
να ζητήσει να τελειώσει
Αν ένα μη υποστηριζόμενο opcode εμφανιστεί, ο INTERAL μητρώο IP έχει οριστεί σε
το τέλος της μνήμης. Εκτέλεση του κώδικα της εικόνας θα σταματήσει όταν συμβαίνει αυτό.
Λίγες οδηγίες κάνουν χρήση του τα εξής κύτταρο να περιέχει διευθύνσεις ή
αξιών. Αυτά είναι:
1 LIT
7 ΠΡΟΣΚΛΗΣΗ
8 JUMP
10> άλμα
11
Τι είναι καινούργιο σε αυτή την έκδοση:.
- Αυτή η έκδοση φέρνει ενημερωμένες εκδόσεις όλων των εφαρμογών και ουσιαστικά ενημερωμένης τεκμηρίωσης
- Υπάρχουν τώρα 14 εφαρμογές γραμμένο σε Python, Ruby, Perl, Common Lisp, x86 Συνέλευση, ANS Forth, το JavaScript, ρετρό, Lua, Java, C, C #, F #, και Go.
Τα σχόλια δεν βρέθηκε