コンテンツにスキップ

COMファイル

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。210.138.194.104 (会話) による 2007年11月16日 (金) 18:28個人設定で未設定ならUTC)時点の版であり、現在の版とは大きく異なる場合があります。

COM (command)
拡張子.COM
MIMEタイプapplication/x-dosexec
種別実行可能ファイル

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での使用

MS-DOSの実行可能ファイル形式のうち、最も実行優先順位が高い。つまり、拡張子を省略してコマンドコマンドライン入力したが、拡張子以外が同じファイル名の実行可能ファイルがあった場合、「COM」「EXE」「BAT」の順に、ファイルがあるかどうかがチェックされる(これらの前に内部コマンドのチェックがある)。

COMファイルを作成するには、コンパイラなどでEXEファイルとして作成した後、EXE2COMのような変換プログラムを使うことが多い。