P-Maschine

P-Maschine

P-Code ist der Befehlssatz einer Pseudo-Maschine (oder P-Maschine), also einer virtuellen CPU, die P-Code als Maschinensprache ausführt. Der P-Code war ein Computer- bzw. CPU-unabhängiger Code und war Teil der Entwicklungsumgebung UCSD-Pascal. Die Umsetzung in die Maschinensprache der CPU erfolgt durch den Interpreter der P-Maschine. Man kann den P-Code und das Konzept der virtuellen Maschine als geistigen Vorläufer der heutigen Java Virtual Machine betrachten.

Inhaltsverzeichnis

Plattformen

Durch die Unabhängigkeit von bestimmten Rechnerarchitekturen konnte das P-System auf verschiedenste Plattformen portiert werden:

Funktionsumfang der P-Maschine

Register des Emulators

Die P-Maschine ist eine 16-Bit-Maschine. Der Adressraum ist damit auf 64KB beschränkt. Sie ist aber in der Lage, mehrere Adressräume zu verwalten, beispielsweise 128KB in Version IV. Zur Emulation des P-Codes dienen folgende Register (Pointer):

SP: Stack-Pointer Zeiger auf das oberste Wort im Stack. Dient der Parameterübergabe und als Operandenquelle für den Interpreter.
IPC: Interpreter Program Counter Adresse der nächsten P-Code-Instruktion im Code-Segment der aktuellen Prozedur
SEG: Segment Pointer Zeiger auf das Prozedurverzeichnis des aktuellen Segments
JTAB: Jump Table Pointer Zeiger auf die Sprungtabelle des aktuellen Segments
KP: Program Stack Pointer Zeiger auf das Ende des Programm-Stacks
MP: Markstack Pointer Zeiger auf den Aktivierungs-Record der aktuellen Prozedur zum Zugriff auf die lokalen Variablen
NP: New Pointer Zeiger auf das Ende des dynamischen Heaps
BASE: Base Procedure Zeiger auf den Aktivierungs-Record der Basis-Prozedur zum Zugriff auf die globalen Variablen

P-Code (Befehlssatz der P-Maschine)

Der Befehlscode der Pseudo-Maschine ist ein oder zwei Byte lang und wird von bis zu vier Operanden gefolgt. Es gibt folgende Befehlsklassen:

  • 1-Wort-Transportbefehle
  • Mehr-Wort-Transportbefehle
  • Byte-Array-Behandlung
  • String-Behandlung
  • Record und Array-Behandlung
  • Dynamische Speicherallokation
  • Arithmetik-Befehle
  • Sprungbefehle
  • Prozedur- und Funktionsaufrufe
  • Unterstützungs-Routinen

Verbindung zwischen P-Maschine und Betriebssystem

Das UCSD-Pascal-Betriebssystem und die virtuelle P-Maschine tauschen Informationen über die Systemvariable SYSCOM aus. Diese befindet sich im äußeren Block des Betriebssystems. Dieser Speicherbereich ist der P-Maschine "bekannt".

P-Code-Beispiel

Auszug aus einem Decompiler-Listing:


Attribute Table
-------------------------
Procedure No.:   37
Lex Level:        0
EnterIC:         54
Exit IC:          7
Parameter Size:   0 words
Data Size:        2 words
-------------------------
Block No:|58
Block Offset:|132

Offset P-Code             Hex-Code
     0 CBP     36         C224        
     2 LOD      1     1   B60101
     5 SRO      1         AB01
     7 SLDO1              E4
     8 INC     31         A21F
    10 SRO      2         AB02
    12 SLDC3              03          
    13 CSP   UNITCLEA     9E26        
    15 SLDO2              E9
    16 INC 1              A201
    18 SLDC8              08
    19 SLDC0              00
    20 LDP                BA
    21 SLDC0              00
    22 NEQI               CB
    23 FJP     36         A10B
    25 SLDC3              03
    26 SLDO2              E9
    27 INC      1         A201
    29 SLDC8              08
    30 SLDC0              00
    31 LDP                BA
    32 CBP     52         C234
    34 UJP     45         B909
    36 SLDC6              06
    37 SLDD02             E9
    38 INC      4         A204
    40 SLDC8              08
    41 SLDC8              08
    42 LDP                BA
    43 CBP     52         C234
    45 RBP      0         C100

In UCSD-Pascal sieht die Prozedur so aus:

PROCEDURE CLEARSCREEN;                (*Bemerkung*)
  BEGIN HOMECURSOR;                   (*Offset  0*)
    WITH SYSCOM^,CRTCTRL DO           (*Offset 10*)
      BEGIN
        UNITCLEAR(3);                 (*Offset 13*)
        IF ERASEEOS <> CHR(0) THEN    (*Offset 23*)
          PUTPREFIXED(3,ERASEEOS)     (*Offset 32*)
        ELSE                          (*Offset 34*)
          PUTPREFIXED(6,CLEARSCREEN)  (*Offset 43*)
      END
END (*CLEARSCREEN*) ;                 (*Offset 45*)

Siehe auch

Apple Pascal

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем написать реферат

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Maschine (Lied) — Maschine Unheilig Veröffentlichung 7. April 2003 Länge 4:14 Genre(s) Electro Rock Autor(en) Der Graf …   Deutsch Wikipedia

  • Maschine [1] — Maschine wird begrifflich in verschiedener Weise aufgefaßt. Die Definition hat dadurch eine gewisse Bedeutung erlangt, daß Maschinen und Betriebsvorrichtungen für den Musterschutz außer Betracht bleiben, indem die als Gebrauchsmuster zu… …   Lexikon der gesamten Technik

  • Maschine Zeit — Studio album by Funker Vogt Released May 2, 2000 Recorded 2000 …   Wikipedia

  • Maschine — Maschine, im physikalischen Sinn eine Vorrichtung, die ermöglicht, die Richtung, den Angriffspunkt oder die Größe einer Kraft in gewünschter Weise abzuändern, soweit dies die sogen. »goldene Regel« der Mechanik gestattet, nach der das, was an… …   Meyers Großes Konversations-Lexikon

  • Maschine-Maschine-Schnittstelle — Maschine Maschine Schnittstelle,   Schnittstelle …   Universal-Lexikon

  • Maschine — Sf std. (17. Jh.) Entlehnung. Entlehnt aus frz. machine, dieses aus l. māchina, aus gr. mēchanḗ Werkzeug, künstliche Vorrichtung, Mittel (Mechanik). Zunächst entlehnt als Bezeichnung für Kriegs und Belagerungsmaschinen. Adjektiv: maschinell;… …   Etymologisches Wörterbuch der deutschen sprache

  • Maschine — »Arbeitsgerät mit beweglichen Teilen; Triebwerk«, auch in zahlreichen Zusammensetzungen wie »Schreibmaschine«: Das Fremdwort wurde im 17. Jh. – zuerst als militärischer Fachausdruck im Sinne von »Kriegs , Belagerungsmaschine« – aus gleichbed. frz …   Das Herkunftswörterbuch

  • Maschine — [Basiswortschatz (Rating 1 1500)] Auch: • Gerät • Automat • Motor • Apparat Bsp.: • Die Maschine ist sehr laut. • …   Deutsch Wörterbuch

  • Maschine — (v. gr. μηχανή, ein größeres, zusammengesetztes Werkzeug), 1) Vorrichtung, mit welcher eine Bewegung, d.i. eine Ortsveränderung od. eine Gestaltsänderung an einem Körper hervorgebracht, also überhaupt eine Arbeit od. mechanische Leistung (s.d.)… …   Pierer's Universal-Lexikon

  • Maschine [2] — Maschine, elektrische, s. Dynamomaschine, Wechselstrommaschine, Motor, elektrischer …   Lexikon der gesamten Technik

  • Maschine — Maschine, nennt man eine mehr od. weniger künstlich aus verschieden en Theilen zusammengesetzte Vorrichtung, die, wenn sie durch irgend eine Kraft in Bewegung gesetzt wird, ein bestimmtes Geschäft verrichtet, wozu sonst Menschenhände oder eine… …   Herders Conversations-Lexikon

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”