Virtueller Info 2-Prozessor
# Virtueller Info 2-Prozessor

Der Virtuelle Info 2-Prozessor VIP ist ein virtueller Beispielprozessor und -mikrocontroller, der in Form eines Debuggers und Simulators an der TU Berlin die Lehre des hardwarenahen Programmierens unterstützen soll. Der VIP wurde mit der Programmiersprache Java entwickelt.

## Eigenschaften

Der VIP ist als 1-Adressrechner aufgebaut. Intern verarbeitet er Daten im 16-Bit-Format und kann über eine 8-Bit-Speicheradresse einen Adressraum von 256 16-Bit-Worten ansprechen. Die Nutzung des VIP setzt sich aus der Kombination Mikrobefehlsspeicher (PLA-Datei), Befehlssatz (OCT-Datei) und Assemblerprogramm (ASM-Datei) zusammen. Im Assemblerprogramm kann Speicher direkt und indirekt adressiert werden, darüber hinaus noch indiziert oder über einen Direktoperanden.

### Komponenten

| Komponente | Bedeutung |
| - | - |
| RAM | prozessorexterner Hauptspeicher für die Speicherung von Programmen (Maschinenbefehlen) und Daten |
| PC (program counter) | Befehlszähler |
| +1 | Inkrementierer zum Hochzählen des Befehlszählers |
| IR (instruction register) | Register zur Pufferung und Auswertung des aktuellen Befehls |
| OR (operand register) | Register zur Zwischenspeicherung des Operanden |
| ALU (arithmetic und logical unit) | Funktionseinheit zur paarweisen Verknüpfung von Operanden durch logische und arithmetische Operationen (Rechenwerk) |
| AC (accumulator register) | Quell-/Zielregister der ALU |
| SR (status register) | Prozessorstatusregister. Nach ALU-Operationen werden die Bedingungsbits z (zero), n (negativ), c (carry) und v gesetzt |
| IX (index register) | Indexregister zur Speicherung eines Index |
| PLA (programmable logic array) | Prozessorsteuerwerk |

## Versionen

Es existieren eine einfache Version des VIP und eine erweiterte Version des VIP, die über ein Stackpointer verfügt, womit Unterprogramme möglich sind.

