COMファイル
出典: フリー百科事典『ウィキペディア(Wikipedia)』
拡張子: | .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での使用
MS-DOSの実行可能ファイル形式のうち、最も実行優先順位が高い。つまり、拡張子を省略してコマンドをコマンドライン入力したが、拡張子以外が同じファイル名の実行可能ファイルがあった場合、「COM」「EXE」「BAT」の順に、ファイルがあるかどうかがチェックされる(これらの前に内部コマンドのチェックがある)。
COMファイルを作成するには、コンパイラなどでEXEファイルとして作成した後、EXE2COMのような変換プログラムを使うことが多い。