<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=COM-Datei</id>
	<title>COM-Datei - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=COM-Datei"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=COM-Datei&amp;action=history"/>
	<updated>2026-05-30T02:18:31Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=COM-Datei&amp;diff=653669&amp;oldid=prev</id>
		<title>imported&gt;Siegbert v2: Artikel verknüpft</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=COM-Datei&amp;diff=653669&amp;oldid=prev"/>
		<updated>2026-02-04T18:34:10Z</updated>

		<summary type="html">&lt;p&gt;Artikel verknüpft&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Eine &amp;#039;&amp;#039;&amp;#039;COM-Datei&amp;#039;&amp;#039;&amp;#039; ist eine [[ausführbare Datei]] in [[CP/M]], [[MS-DOS]] und zu MS-DOS kompatiblen [[Betriebssystem]]en. Der Name leitet sich aus der [[Dateinamenserweiterung]] „.COM“ ab, die für das englische Wort &amp;#039;&amp;#039;command&amp;#039;&amp;#039; („[[Anweisung (Programmierung)|Befehl]]“) steht.&lt;br /&gt;
&lt;br /&gt;
Viele Shell-Werkzeuge wie die MS-DOS-Version von &amp;lt;code&amp;gt;[[More (Kommandozeilenbefehl)|more]]&amp;lt;/code&amp;gt; nutzen dieses Format wie auch kleine, frühe Anwendungen wie das Spiel &amp;#039;&amp;#039;[[Alley Cat]]&amp;#039;&amp;#039; von [[IBM]].&lt;br /&gt;
&lt;br /&gt;
== Binärformat ==&lt;br /&gt;
Das COM-Format ist vielleicht das einfachste Format ausführbarer Dateien überhaupt; es enthält keine [[Metadaten]] – nur Code und Daten – und wird an Offset 0x0100 eines Segmentes geladen und ausgeführt. Durch die Art, nach der das [[Segmentierung (Speicherverwaltung)|Segmentierungsmodell]] arbeitet, ist keine [[Relokation]] vonnöten.&lt;br /&gt;
&lt;br /&gt;
Die Einfachheit hat jedoch ihren Preis: Die Dateien sind auf Größen von maximal 65.280 (0xFF00) Bytes beschränkt und speichern Code und Daten in einem einzigen Segment. Dies stellte auf [[8-Bit-Architektur]]en kein Problem dar, ist jedoch der Hauptgrund, warum das Format nach der Einführung von [[16-Bit-Architektur]]en und später [[32-Bit-Architektur|32-Bit-]] und [[64-Bit-Architektur]]en mit ihren weitaus größeren [[Speichersegment|segmentierten Speichern]] bald aus der Mode kam und heute ungebräuchlich ist.&lt;br /&gt;
&lt;br /&gt;
=== CP/M-80 ===&lt;br /&gt;
Auf den für CP/M-80 typischen [[Intel 8080|Intel-8080]]-CPU-Architekturen können nur 65.536 Bytes Speicher adressiert werden (Adressbereich 0x0000 bis 0xFFFF). CP/M reserviert die erste Seite dieses Speichers (0x0000 bis 0x00FF) für das System, und ein Anwendungsprogramm muss exakt an Adresse 0x0100 geladen werden, um ausgeführt zu werden. COM-Dateien eignen sich perfekt für dieses Modell. Es ist nicht möglich, mehr als ein Programm oder einen Befehl gleichzeitig auszuführen; nur das an 0x0100 geladene Programm wird ausgeführt.&lt;br /&gt;
&lt;br /&gt;
Ist das erste Byte einer CP/M-COM-Datei 0xC9, so zeigt dies für CP/M 3 das Vorhandensein eines 256-Byte-Headers an. Da 0xC9 der 8080-Befehl für &amp;#039;&amp;#039;return&amp;#039;&amp;#039; ist, wird die COM-Datei sofort beendet, wenn sie auf einer früheren Version von CP/M ausgeführt wird, die diese Erweiterung nicht unterstützt.&lt;br /&gt;
&lt;br /&gt;
=== MS-DOS ===&lt;br /&gt;
Auf einer für MS-DOS nötigen [[Intel 8086|Intel-8086]]-Architektur sind 1.024&amp;amp;nbsp;[[Byte|KiB]] [[Arbeitsspeicher]] direkt adressierbar; durch jede Segmentadresse (0x0000 bis 0xFFFF) kann auf einen jeweils 64&amp;amp;nbsp;KiB großen Ausschnitt des Speichers zugegriffen werden (siehe [[Intel 8086#Speichersegmentierung|Speichersegmentierung des 8086-Prozessors]]). Die COM-Dateien werden in ein beliebiges, freies Segment ab Offset 0x0100 geladen. Das Betriebssystem nutzt die 256 Byte am Anfang des Segments für das [[Program Segment Prefix]] (PSP). Mehrere Programme können gleichzeitig geladen werden; da DOS jedoch ein [[Singletasking]]-System ist, werden die Programme verschachtelt ausgeführt, wobei das jeweils höhere Programm erst nach dem Beenden des tieferen Programmes fortgesetzt wird. Nur spezielle [[TSR-Programm]]e wechseln sich sozusagen mit dem zuletzt gestarteten Programm ab.&lt;br /&gt;
&lt;br /&gt;
Die Dateinamenserweiterung „.COM“ wird unter MS-DOS teilweise auch für, eigentlich falsch benannte, [[MZ-Datei]]en verwendet. Beispiele für solche Dateien sind die Programme COMMAND.COM und EDIT.COM einiger DOS-Versionen. MZ-Dateien haben für gewöhnlich die Erweiterung „.EXE“ (engl. &amp;#039;&amp;#039;executable&amp;#039;&amp;#039;, ausführbar); DOS ignoriert aber den genutzten Dateinamen und unterscheidet die beiden Formate durch die [[Magische Zahl (Informatik)|Magische Zahl]] der MZ-Dateien.&lt;br /&gt;
&lt;br /&gt;
Für COM-Dateien war bei Compilern und Assemblern das &amp;#039;&amp;#039;Tiny&amp;#039;&amp;#039; [[Segmentierung (Speicherverwaltung)#Speichermodell|Speichermodell]] vorgesehen.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Raymond Chen |url=https://devblogs.microsoft.com/oldnewthing/20200728-00/?p=104012 |titel=A look back at memory models in 16-bit MS-DOS |werk=devblogs.microsoft.com |hrsg=Microsoft |datum=2020-07-28 |sprache=en |abruf=2024-03-26}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Austausch beider Formate ===&lt;br /&gt;
Die Gemeinsamkeiten von COM-Dateien unter CP/M-80 und MS-DOS sind mit der gleichen Ladeadresse 100h und der Lage der Kommandozeile bei Programmaufruf (80h…FFh) erschöpft. Es weist weder der Maschinencode Ähnlichkeiten auf noch die Schnittstelle zum Betriebssystem oder die Ausgabe von Zeichen auf dem Bildschirm. Diskettenformate waren weiterhin inkompatibel, meist schon auf Hardware-Ebene. [[Fat Binary|Fat]]-COM-Dateien wurden nicht unterstützt und waren zur damaligen Zeit auch kein Thema.&lt;br /&gt;
&lt;br /&gt;
== Plattform-Unterstützung ==&lt;br /&gt;
CP/M-80-Programme können unter MS-DOS nicht nativ ausgeführt werden. Unter Windows bis [[Windows 9x]] wird das darunter liegende DOS-System verwendet. 32-Bit-Windows-NT-Systeme können DOS-Programme nicht nativ, sondern nur mit Hilfe der [[Virtual DOS Machine]] ausgeführt werden, den 64-Bit-Windows-Versionen fehlt diese Schicht, weswegen auf alternative Emulatoren wie [[DOSBox]] zurückgegriffen werden muss. [[OS/2]] nutzte auch eine Emulationsschicht.&lt;br /&gt;
&lt;br /&gt;
== Vorrang bei der Ausführung ==&lt;br /&gt;
Finden sich in einem Ordner sowohl eine COM- als auch eine EXE-Datei gleichen Namens, so zieht [[COMMAND.COM]] aus MS-DOS (oder kompatiblen) die COM-Datei vor.&amp;lt;ref&amp;gt;{{Internetquelle |url=http://support.microsoft.com/kb/35284 |titel=Order of Precedence in Locating Executable Files |titelerg=(KB35284) |werk=support.microsoft.com |hrsg=Microsoft |datum=2003-05-10 |sprache=en |archiv-url=https://web.archive.org/web/20070116004949/http://support.microsoft.com/kb/35284 |archiv-datum=2007-01-16 |abruf=2008-09-20}}&amp;lt;/ref&amp;gt; Ist die Ausführung der EXE-Datei gewünscht, so kann das ab MS-DOS Version 4.00 durch die Angabe des gesamten Dateinamens mit der Erweiterung explizit erzwungen werden (Beispiel: Liegt im aktuellen Verzeichnis sowohl eine &amp;#039;&amp;#039;FOO.COM&amp;#039;&amp;#039; als auch eine &amp;#039;&amp;#039;FOO.EXE&amp;#039;&amp;#039;, so startet der Befehl &amp;lt;code&amp;gt;FOO&amp;lt;/code&amp;gt; die COM-Datei und nur &amp;lt;code&amp;gt;FOO.EXE&amp;lt;/code&amp;gt; die EXE-Datei).&lt;br /&gt;
&lt;br /&gt;
[[Computervirus|Computerviren]] werden manchmal verbreitet, indem dieses Verhalten ausgenutzt wird. Der Virus wird dabei in vom Virus selbst angelegten Wirtsdateien mit Namen wie z.&amp;amp;nbsp;B. MEM.COM platziert. Es wird dann darauf spekuliert, dass – im selben Ordner wie eine korrespondierende EXE-Datei platziert – der Benutzer durch den kürzeren Befehl &amp;lt;code&amp;gt;MEM&amp;lt;/code&amp;gt;, ohne Erweiterung, anstatt des Originals MEM.EXE (in MS-DOS enthaltenes Programm zur Speicheranzeige) den Virus ausführt. Viren die sich so verhalten, nennt man Companionviren.&lt;br /&gt;
&lt;br /&gt;
== Missbrauch ==&lt;br /&gt;
Programmierer von Computerviren nutzen auch aus, dass .com heute mit der gleichnamigen [[Top-Level-Domain]] assoziiert wird, indem sie ihre Programme www.(…).com nennen. Wird eine solche Datei als E-Mail versandt, wird dem unbedarften Windowsnutzer eine [[Domain (Internet)|Domain]] nach dem Muster &amp;lt;nowiki&amp;gt;www.example.com&amp;lt;/nowiki&amp;gt; angezeigt, der dann entgegen seinen Erwartungen nicht (oder nicht nur) die Seite &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;www.example.com&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; öffnet, sondern die Datei &amp;lt;code&amp;gt;www.example&amp;lt;/code&amp;gt; mit der Endung &amp;lt;code&amp;gt;.com&amp;lt;/code&amp;gt; ausführt.&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{SORTIERUNG:Comdatei}}&lt;br /&gt;
[[Kategorie:Binärformat für ausführbare Programme, Bibliotheken und/oder Objektcode]]&lt;br /&gt;
[[Kategorie:DOS-Betriebssystemkomponente]]&lt;br /&gt;
[[Kategorie:CP/M]]&lt;br /&gt;
[[Kategorie:OS/2-Betriebssystemkomponente]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Siegbert v2</name></author>
	</entry>
</feed>