Edit v5.000 from 2008-01-28 to 2022-12-29 by HSc
Command- und Execude-Format
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.
Informationen zum Programmstart von- COMMAND- bzw.
- Execude-Programme incl.
- Program Segment Prefix und
- deren Vergleich in einer Gegenüberstellung.
Start eines Programms
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.
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.