aspose.info
JA

COM - DOS コマンド ファイル形式

更新日

COM ファイルとは?

COM ファイルは、一連のコマンドまたは命令を実行するために使用されます。 COM ファイルは、Windows または MS-DOS から実行できる実行可能プログラムで構成されています。 EXE ファイルと同様に、COM ファイルもバイナリ形式で保存されますが、ヘッダーやメタデータがなく、最大サイズが約 64 KB であるため、EXE ファイルとは異なります。 COM ファイルを 32 ビット システムで初めて実行すると、NT 仮想 DOS マシン (NTVDM) コンポーネントをインストールするように求められます。 COM ファイルは、MS-DOS 環境をサポートする仮想マシンを使用して、64 ビット バージョンの Microsoft Windows で実行できます。

COM ファイル形式

COM ファイル形式は、Microsoft Windows または MS-DOS で使用されるバイナリ実行形式です。その構造は一連の命令だけで構成されています。ヘッダーがなく、標準のメタデータが含まれていません。すべてのデータとコードを 1 つのセグメントにのみ格納し、バイナリのサイズは最大 64KB です。このファイル形式は、再実行しようとしても再配置されません。そのため、オペレーティング システムは事前に設定されたアドレスにそれをロードします。さらに、両方のオペレーティング システムで実行する COM ファイルを ファット バイナリの形式で作成することもできます。命令レベルでの実際の互換性はありません。エントリ ポイントの命令は、機能が同じであるが両方のオペレーティング システムで異なるように選択され、プログラムを実行し、使用中のオペレーティング システムのセクションにジャンプします。基本的には、1 つのファイルで同じ手順を実行する 2 つの異なるプログラムであり、その前に使用するプログラムを選択するコードが続きます。

COM ファイルの例

COM ファイルを実行すると、命令は最初のバイトから読み取られ、最後の命令が見つかるまで連続して実行されます。 ASM コードの例を次に示します。

[BITS 16]		;Set code generation to 16 bit mode
[ORG 0x0100]		;Set code start address to 0100h


[SEGMENT .text]		;Main code segment
    mov ah, 9 ; DOS print string function
    mov dx, hello
    int 21h
    ;Exit to DOS
    mov ah, 4ch
    int 21h
[SEGMENT .data]		;Initialised data segment
hello:   db   'Hello, .COM programmer!',13,10,'$'

参考文献

関連項目