COMファイル

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
COM (command)
拡張子 .COM
種別 実行可能ファイル
テンプレートを表示

COMファイル (コムファイル、COM file) は、実行可能ファイル形式の一つ。語源はcommand(命令)。拡張子は「.COM」(本来は大文字)だが、トップレベルドメイン.com (commercial) とは無関係。

実行時のメモリイメージがそのままファイルとなっている、最も単純な実行可能ファイル形式である。

歴史[編集]

拡張子.COMの実行ファイルは古くからあったが、現在の形式のものはCP/Mで使われ、CP/Mを元にしたMS-DOSにも採用された。ただし、CPU(CP/Mは8080系、MS-DOSは8086系)や割り込みの仕様の違いのため、互換性は乏しい。

MS-DOSには、ほかに2つの実行可能ファイル形式、EXEファイルBATファイルがあった。EXEとBATはMicrosoft Windowsにも採用されたが、COMファイルは廃止された(仮想DOSマシン上では実行可能)。

内容[編集]

実行時のメモリイメージがそのままファイルとなっており、ファイルの内容を0100番地からメモリに展開し先頭にジャンプすれば、直ちに実行が始まる。ファイルヘッダなどいっさいのメタデータを含まず、これは、EXEヘッダからファイルが始まるEXEファイルとの大きな違いである。

セグメントがコードもデータも含め1つであり、これは複数のセグメントを持つことができるEXEファイルとは異なる。このため、ファイルサイズは最大で65280バイト(8086系CPUのセグメントサイズである64キロバイトからメモリ展開時のオフセットの256バイトを引いた値)である。また、メタデータがないため極小の実行可能ファイルを作ることができる。これらの理由で、一般に、EXEファイルより小さいことが多い。

実行優先順位[編集]

MS-DOSの実行可能ファイル形式のうち、デフォルトでは最も実行優先順位が高い。したがって、拡張子を省略してコマンド「notepad」をコマンドラインに入力した時、他の実行可能形式「notepad.exe」「notepad.bat」が存在する場合でも、「notepad.com」があればこれが実行される。

COMファイルを作成するには、コンパイラなどでEXEファイルとして作成し、EXE2BIN英語版(MS-DOS外部コマンド)やEXE2COM(フリーソフト)のようなプログラムで変換することができる。