OP-Code Adresse |----|----|----|----||----|----|----|----|----|----|----|----|----|----|----|----| | 15 | 14 | 13 | 12 || 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |----|----|----|----||----|----|----|----|----|----|----|----|----|----|----|----| 4 Bit 12 Bit = 4096 Adressen
OP-Code | Mnemonic | Beschreibung |
---|---|---|
00 (0x0) | STO <Adresse> | speichere den ACCU ins RAM an die Adresse |
01 (0x1) | LDA <Adresse> | lade ACCU mit dem Inhalt der Adresse |
02 (0x2) | BRZ <Adresse> | springe nach Adresse, wenn der ACCU null ist |
03 (0x3) | ADD <Adresse> | addiere den Inhalt der Adresse zum ACCU |
04 (0x4) | SUB <Adresse> | subtrahiere den Inhalt der Adresse vom ACCU |
05 (0x5) | OR <Adresse> | logisches ODER des ACCUs mit dem Inhalt der Adresse |
06 (0x6) | AND <Adresse> | logisches UND des ACCUs mit dem Inhalt der Adresse |
07 (0x7) | XOR <Adresse> | logisches ExODER des ACCUs mit dem Inhalt der Adresse |
08 (0x8) | LDAR <Adresse> | lade AR mit der angegebenen Adresse |
09 (0x9) | INCAR | inkrementiere AR (AR++) |
10 (0xA) | LDI | lade ACCU mit dem Inhalt der Adresse aus dem AR |
11 (0xB) | STI | speichere ACCU an die Adresse aus dem AR |
12 (0xC) | CPI | vergleiche ACCU mit dem Inhalt der Adresse aus dem AR |
13 (0xD) | SHL | schiebe den ACCU um 1 Bit nach links |
14 (0xE) | SHR | schiebe den ACCU um 1 Bit nach rechts |
15 (0xF) | BRC <Adresse> | springe nach Adresse, wenn das Carry-Bit gesetzt ist |
Der Simulator zeigt alle Register des Prozessors an. Diese können dann auch verändert werden. Im RAM-Viewer (Menüpunkt View, RAM) wird der Inhalt des Arbeitsspeichers disassembliert angezeigt. Wurde der Quellcode frisch assembliert, werden hier auch die Sprungmarken (Labels) angezeigt. Einen Breakpoint kann man mit einem Rechtsklick in der Spalte "Breakpoint" anlegen.
Unter dem Menüpunkt View, Console verbirgt sich ein Memory-Mapped-Device, das ein Ausgabebildschirm mit der Größe 10x40 darstellt. Dazu werden die letzten 400 Bytes bzw. die letzten 200 16-bit-Wörter des Arbeitsspeichers also ASCII-Codes interpretiert und angezeigt. D.h. es wird der Speicherbereich 0xf38-0xfff verwendet. Ähnlich funktioniert das LCD (Menüpunkt View, LCD). Das LCD kann allerdings nur 4 Zeichen darstellen, wozu zwei Speicherwörter benötigt werden. Es wird also der Speicherbereich 0xffe-0xfff verwendet.
Unter dem Menüpunkt File, New Assembler File verbirgt sich ein einfacher Texteditor, mit dem die Assemblerprogramme geschrieben werden können. Er unterstützt leider kein Syntax-Highlighting. Aber man kann direkt aus dem Assembler heraus das Programm assemblieren und in den Arbeitsspeicher des Simulators laden und ausführen lassen.
Der Simulator ist in Java geschrieben und kann hier heruntergeladen werden: