Aufbau, Funktion, Gemeinsamkeiten und Unterschiede von Command- und
Execute-Programmen.
Kenntnisse darüber erleichtern das Verständnis des Startes,
der Funktion von solchen Programmen und
deren Vor- und Nachteile,
sowie deren Schwachpunkte.
Was passiert eigentlich, wenn ein Programm aufgerufen wird.
Die Exec-Funktion reserviert Speicher für das zu ladende Programm,
der das aufrufende Programm aufnehmen soll;
Die Exec-Funktion legt an den Anfang des reservierten Speicherbereiches
eine Datenstruktur mit den Namen
PSP
(Program Segment Prefix) an;
Die Exec-Funktion des Betriebssystems lädt das
COMMAND- bzw.
Execude-Programm
hinter den PSP;
Die Segment-Register und der Stack werden initialisiert;
Start des Programms und
Nach Beendigung des Programms,
wird soweit der Speicher nicht durch einen speziellen Funktionsaufruf
durch das Programm selbst,
der Speicher von PSP und Programm wieder freigegeben.
Die Unterschiede des Verhaltens von Command- und Execude-Programmen
sind noch einmal in Tabelle 1 aufgeführt.
Aufbau des Program Segment Prefix
Das PSP, siehe Tabelle 2,
ist immer 256Byte groß und
ist ein Überbleibsel aus CP/M und
den ersten DOS-Versionen.
Programm-Typen
Command-Programme
Der Dateityp von diesen Programmen ist *.COM!
Beim Start werden keine weiteren Einstellungen vom
Command-Programm vorgenommen.
Execute-Programme
Der Datei-Typ der Execute-Programme ist *.EXE!
*.EXE - Dateien beinhalten am Anfang eine Datenstruktur,
die unter anderem die Adressen aller Segment-Bezüge enthält.
EXE-Programme werden nicht direkt vom Datenträger in den Speicher
geladen,
sondern durch eine Routine der Exec-Funktion aufbereitet.