Program Segment Prefix
Als Programmsegmentpräfix (englisch Program Segment Prefix, PSP) bezeichnet man die ersten 256 Byte eines von MS-DOS geladenen Programmes. Es befindet sich in der Regel an Adresse CS:0 bis CS:FF, wobei CS für das Codesegmentregister steht und die Anfangsadresse des Codesegments enthält. Das PSP ist nicht in den ausführbaren Exe- oder COM-Dateien enthalten, sondern wird beim Laden des Programmes vom Betriebssystem erstellt. Die erste Hälfte des PSPs beinhaltet verschiedene Informationen für das Betriebssystem, insbesondere zur Handhabung mehrerer (nacheinander) ausgeführter Programme. In der zweiten Hälfte befindet sich die Kommandozeile (command tail, ohne den eigentlichen Namen des Programmes).
Struktur
Weitere Bereiche des PSPs werden von Betriebssystem-Erweiterungen oder manchen TSR-Programmen genutzt.
Beispiel-Programm
Dieses Programm zeigt die Kommandozeilenargumente des aufgerufenen Programms aus seinem PSP an: (COM-Datei, geschrieben in Assemblersprache, NASM-Syntax)
org 100h ; Interrupt 21h, Funktion 09h benötigt ein Dollarzeichen als Endmarkierung mov bl, byte [0080h] xor bh, bh mov byte [0081h+bx], '$' ; Ausgabe der Kommandozeile (bis zum ersten Dollarzeichen) mit Funktion 09h mov ah, 09h mov dx, 0081h int 21h ; Beenden des Programmes mit Funktion 4Ch, Rückgabewert 00h mov ax, 4C00h int 21h