PDP-11
| PDP-11 | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Hersteller | Digital Equipment Corporation | ||||||||||||||
| Typ | Prozessrechner | ||||||||||||||
| Veröffentlichung | Januar 1970 | ||||||||||||||
| Prozessor | DEC 16-bit | ||||||||||||||
| Arbeitsspeicher | 4.096 × 16 Bit | ||||||||||||||
| Grafik | keine | ||||||||||||||
| Sound | keiner | ||||||||||||||
| Datenträger | Lochstreifen, Diskette, Datenband, Festplatte | ||||||||||||||
| Betriebssystem | diverse, darunter BATCH-11/DOS-11, DSM-11, IAS, P/OS, RSTS/E, RSX-11, RT-11, Ultrix-11 | ||||||||||||||
| Nachfolger | VAX-11 | ||||||||||||||
| 0 | 9 | 10 | 12 | 13 | 15 | ||||||||||
| OP-Code | Mode | Register | |||||||||||||
Die wichtigsten 1-Adress-Befehle sind:
- INC(INCB) X: Inkrementieren des Wertes um 1
- DEC(DECB) X: Dekrementieren des Wertes um 1
- COM(COMB) X: Einerkomplement von X
- NEG(NEGB) X: Zweierkomplement von X (Negierung)
- ASR(ASRB) X: Arithmetisches Schieben nach rechts
- ASL(ASLB) X: Arithmetisches Schieben nach links
- ROR(RORB) X: Nach rechts rotieren
- ROL(ROLB) X: Nach links rotieren
2-Adress-Befehle
[Bearbeiten | Quelltext bearbeiten]2-Adress-Befehle folgen immer dem Muster „Befehl–Quelle–Ziel“. Beim Befehl ADD R1, R2 wird also gerechnet R2 = R1 + R2.
| 0 | 3 | 4 | 6 | 7 | 9 | 10 | 12 | 13 | 15 | ||||||
| OP-Code | Mode | Register | Mode | Register | |||||||||||
Die wichtigsten 2-Adress-Befehle sind:
- MOV(MOVB) A,B: Kopieren (B = A)
- ADD A,B: Addition (B = B + A)
- SUB A,B: Subtraktion (B = B − A)
- MUL A,B: Multiplikation (B = B * A)
- DIV A,B: Division (B = B/A)
Sprünge
[Bearbeiten | Quelltext bearbeiten]Bei Sprüngen wird immer ein 8-Bit-Offset angegeben. Dies gibt die Anzahl der Worte an, um die gesprungen wird.
| 0 | 7 | 8 | 15 | ||||||||||||
| OP-Code | Offset | ||||||||||||||
Die PDP-11 bringt sehr viele Sprungbefehle mit, insgesamt 18 verschiedene.
Adressierungsmodi
[Bearbeiten | Quelltext bearbeiten]Die Adressierungsmodi unterscheiden sich bei der PDP-11 abhängig davon, ob als Register R0 bis R5 (Allzweckregister), R6 (Stapelzeiger bzw. Stackpointer, SP) oder R7 (Programmzähler, PC) verwendet wird.
Allzweckregister (R0 bis R5)
[Bearbeiten | Quelltext bearbeiten]| Bitfolge | Kurzform | Name/Beschreibung |
|---|---|---|
| 000 | Rn | Register direkt: Der Operand ist Register Rn. |
| 001 | @Rn | Register indirekt: Die Adresse des Operanden ist im Register Rn. |
| 010 | (Rn)+ | Postautoinkrement: Die Adresse des Operanden ist im Register Rn; danach wird Rn um eine Adressierungseinheit (Byte/Word operation +1/+2) erhöht. |
| 011 | @(Rn)+ | Postautoinkrement indirekt: Die Adresse der Adresse des Operanden ist im Register Rn, danach wird Rn um 2 erhöht. |
| 100 | −(Rn) | Preautodekrement: Zuerst wird Rn um eine Adressierungseinheit verringert; die Adresse des Operanden ist im Register Rn. |
| 101 | @−(Rn) | Preautodekrement indirekt: Zuerst wird Rn um 2 verringert; die Adresse der Adresse des Operanden ist im Register Rn. |
| 110 | X(Rn) | Index: X und der Wert in Rn werden addiert und der Wert verwendet, der an der Speicherstelle steht, die durch diese Summe gegeben ist. |
| 111 | @X(Rn) | Index: X und der Wert in Rn werden addiert und der Wert verwendet, der an der Speicherstelle steht, auf die die Speicherstelle zeigt, die durch diese Summe gegeben ist. |
Eine Adressierungseinheit ist „1“ für Byte-Befehle und „2“ für Wort-Befehle.
Stapelzeiger (R6)
[Bearbeiten | Quelltext bearbeiten]R6 ist ein Zeiger auf den Stapelspeicher, der vom Prozessor bei Interrupts zur Zwischenspeicherung des aktuellen Maschinenzustands verwendet wird. Der Stapelzeiger dient der Verwaltung des Stapelspeichers, er muss grundsätzlich eine Wortadresse, das heißt eine gerade Adresse enthalten. Deshalb wird im Unterschied zu den Allzweckregistern bei den Adressmodes Autoinkrement bzw. Autodekrement das Register R6 immer um 2 erhöht oder erniedrigt, unabhängig ob es sich um einen Byte- oder Wortbefehl handelt. Darüber hinaus folgen die Adressierungsmodi der oben stehenden Tabelle der Allzweckregister.
Programmzähler (R7 bzw. PC)
[Bearbeiten | Quelltext bearbeiten]| Bitfolge | Kurzform | Name/Beschreibung |
|---|---|---|
| 010 | #N | Immediate: Der Wert folgt dem Befehl im Programmspeicher. |
| 011 | @#A | Absolute: Die Speicheradresse des Wertes folgt dem Befehl im Programmspeicher. |
| 110 | A | Relative: Die Speicheradresse des Wertes ist die Summe aus dem aktuellen Programmzähler und dem Offset, der dem Befehl im Programmspeicher folgt. |
| 111 | @A | Relative Indirekt: Aus der Summe des aktuellen Programmzählers und dem den Befehl folgenden Offset ergibt sich die Speicheradresse, an welcher der Wert zu finden ist. |
Trivia
[Bearbeiten | Quelltext bearbeiten]Im Film 23 – Nichts ist so wie es scheint wird die PDP-11 mehrmals erwähnt. Im Film wird fälschlicherweise behauptet, eine PDP-11 benötige zwangsläufig einen Dreiphasenwechselstromanschluss mit 380 V. Obwohl es einige „große“ PDP-11-Modelle gibt, die tatsächlich Dreiphasenwechselstrom benötigen, kommt doch die überwiegende Mehrheit der PDP-11-Rechner mit einphasiger Wechselspannung von 110 V bzw. 220 V aus. Da jedoch im Film ein Einphasenstecker in 32-Ampere-Ausführung zu sehen ist, könnte auch gemeint sein, dass sich die Maschine nicht aus einer normalen Steckdose versorgen lässt. Tatsächlich ist das im Film gezeigte Gerät jedoch keine PDP-11, sondern ein IBM AS/400.[5]
Der amerikanische Informatiker Dennis Ritchie entwickelte Anfang der 1970er Jahre unter Unix auf einer PDP-11 die Programmiersprache C.[6]
Konkurrenzprodukte
[Bearbeiten | Quelltext bearbeiten]- Series/1 von IBM
- Nova von Data General
Virtualisierung
[Bearbeiten | Quelltext bearbeiten]
Derzeit gibt es vier Emulatoren für PDP-11-Server.
| Name | Aktuelle Version | Letzte Veröffentlichung | System | Plattform | Lizenz | Weblink |
|---|---|---|---|---|---|---|
| Ersatz-11 | 5.3 | 1. September 2009 | DEC PDP-11 | DOS, Windows, Linux | Shareware | dbit.com |
| ts10 | 021004 | 4. Oktober 2002 | DEC PDP-10, DEC PDP-11, DEC VAX | Unix, Linux | GPL | sourceforge.net |
| SIMH | 3.12 | 31. Januar 2023 | Verschiedene alte Computer | Cross-platform | Open source | simh.trailing-edge.com |
| Charon | CHARON-PDP | PDP-11/93 (Q-BUS), PDP-11/94 (UNIBUS) | Windows | Kommerziell | stromasys.ch |
Weblinks
[Bearbeiten | Quelltext bearbeiten]- Jay West: pdp11. Abgerufen am 7. Juni 2024 (englisch).
- Julius Schmidt: PDP-11 emulator. Abgerufen am 7. Juni 2024.
- pdp11 processor handbook. (PDF) bitsavers.org, abgerufen am 7. Juni 2024 (englisch).
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Larry McGowan: How the PDP-11 Was Born. Abgerufen am 22. Januar 2015.
- ↑ Paul Cerruzi: A History of Modern Computing. MIT Press, 2003, ISBN 0-262-53203-4, S. 199.
- ↑ Nuke plants to rely on PDP-11 code until 2050, engl., abgerufen am 19. Juni 2013.
- ↑ Bedienungsanleitung der MicroPDP-11 aus dem Jahr 1985, engl., abgerufen am 2. Mai 2015
- ↑ Starring the Computer – 23. Abgerufen am 10. Juni 2024.
- ↑ Die Unix-Story. Geschichtliches Sachbuch über das Computerbetriebssystem Unix von Autor Brian W. Kernighan, 254 Seiten, Oktober 2020, dpunkt.verlag GmbH, Heidelberg, S. 100




