Zum Inhalt springen

Program Segment Prefix

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 2. November 2007 um 08:55 Uhr durch PixelBot (Diskussion | Beiträge) (Bot: Ändere: he:Program Segment Prefix). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Als program segment prefix bezeichnet man die ersten 256 Byte einer .exe oder .com Datei (siehe MS-DOS). Die erste Hälfte des PSP beinhaltet verschiedene Hilfsinformationen für das Betriebssystem. In der zweiten Hälfte befindet sich die Kommandozeile (command tail, ohne den eigentlichen Programmaufruf). Mit Hilfe der Längenangabe an der Adresse DS:0080h kann ein Computerprogramm zu Beginn die Programmparameter ab Adresse DS:0081h aus dem PSP lesen.

Die Struktur im Detail:

Offset
00 – 01 INT 20h (Softwareinterrupt) –Befehl zur Beendigung des Programmes 
02 – 03 Segmentadresse des ersten vom Programm nicht mehr belegten Paragraphen (16-Byte-Blöcke)
05 – 09 FAR-Call zum Softwareinterrupt 21 h
0A – 0D Kopie von Softwareinterrupt-Vektor 22h , Beendigungsadresse
0E – 11 Kopie von Softwareinterrupt-Vektor 23h , Adresse für Ctrl-Break
12 – 15 Kopie von Softwareinterrupt-Vektor 24h , Adresse für fatale Fehler
2C – 2D Programmumgebungsadresse ( Segment ) des aktuellen Umgebungsblocks (Environment)
50 – 52 enthält INT 21 h, RETF; durch FAR CALL dahin können DOS-Funktionsaufrufe erfolgen
5C – 6B File Control Block (FCB) des ersten Parameters der Kommandozeile
6C – 7B FCB des zweiten Parameters
80      Längenangabe der Kommandozeile /oder DTA (Disk Transfer Area)
81 – FF Parameterbereich, enthält alle Zeichen, die auf der Kommandozeile nach dem Kommandonamen
        eingegeben wurden.