Cow besteht aus einer fortlaufenden Folge von moo-Befehlen, die in einem Programmspeicher abgelegt sind und beginnend beim ersten Befehl fortlaufend abgearbeitet werden.
Daten werden in einem Datenspeicher abgelegt und mittels einem Register verarbeitet.
Befehle
Nr | Befehl | Beschreibung |
0 | moo | Dieser Befehl steht für das Ende einer Schleife – gehört also zu einem MOO-Befehl. Bei der Programmausführung wird rückwärts der nächste MOO-Befehl gesucht und die Programmausführung an dieser Stelle fortgesetzt. Bei der Rückwärtssuche wird der unmittelbar vorherliegende Befehl übersprungen. |
1 | mOo | Bewegt den Zeiger auf die Datenspeicherzellen um eine Zelle zurück. |
2 | moO | Bewegt den Zeiger auf die Datenspeicherzellen um eine Zelle vor. |
3 | mOO | Führt den Inhalt der aktuellen Datenspeicherzelle als Befehl aus. Bei einem ungültigen Befehl bricht das Programm ab. Der Wert 3 ist bspw. ungültig, da er in eine Endlosschleife führt. |
4 | Moo | Enthält die aktuelle Datenspeicherzelle den Wert 0, wird ein ASCII-Zeichen eingelesen und mit seinem Zeichencode in der Datenspeicherzelle abgelegt. Andernfalls wird der Inhalt der Datenspeicherzelle als Zeichen ausgegeben. |
5 | MOo | Der Inhalt der aktuellen Datenspeicherzelle wird um 1 verringert. |
6 | MoO | Der Inhalt der aktuellen Datenspeicherzelle wird um 1 erhöht. |
7 | MOO | Dieser Befehl steht für den Anfang einer Schleife – gehört also zu einem moo-Befehl. Bei der Programmausführung wird der Inhalt der aktuellen Datenspeicherzelle geprüft. Ist dieser 0, wird die Programmausführung nach dem nächsten MOO-Befehl fortgesetzt. Ist der Inhalt ungleich 0, wird die Programmausführung mit dem übernächsten Befehl fortgesetzt. |
8 | OOO | Setzt den Wert der aktuellen Datenspeicherzelle auf 0. |
9 | MMM | Wenn das Register keinen Wert enthält, wird der Inhalt der aktuellen Datenspeicherzelle im Register abgelegt. Andernfalls wird der Inhalt des Registers in die aktuelle Datenspeicherzelle geschrieben und das Register gelöscht. |
10 | OOM | Druckt den Inhalt der aktuellen Datenspeicherzelle als Zahl. |
11 | oom | Liest eine Zahl und legt diese in der aktuellen Datenspeicherzelle ab. |