プロセッサ命令

アセンブラの命令(文)には、ディレクテイブとプロセッサ命令とがあります。プロセッサ命令は実際の命令コードを生成する文であり、ディレクテイブはそのほかの補助的な文です。

以下では、8086 系のプロセッサ命令について説明します。以下の説明はリファレンスであり、プロセッサ命令の使い方についての入門ではありません。プロセッサ命令体系の全体像を理解したい場合は、ほかの適切な書籍か Web サイトを参照してください。たとえば、インテル社のサイト http://www.intel.co.jp/jp/ には、8086 系プロセッサの全命令セットを記載した詳細なマニュアルが公開されています (1999/6 現在 http://www.intel.co.jp/jp/developer/design/intarch/manuals/index.htm)。

プロセッサにはいくつかの種類、系統があり、それぞれ独自の命令コード体系をもっていますが、MS-DOS システムでは必ず 8086 系プロセッサを用いています。LASM はこの 8086 系プロセッサの命令コード体系に即しています。

8086 系プロセッサには、8086 の他にも V30、80186、80286、80386 などの名前をもつものがありますが、MS-DOS においてはこれらはすべて 8086 の上位互換プロセッサであり、8086 の命令コードをすべて実行することができます。ただし、80386 以上の 32 ビットプロセッサでは、レジスタ構成やメモリオペランドのインデクスレジスタにおいて大幅な拡張がなされています。

このマニュアルで単に「プロセッサ命令」と記述しているものは、8086 系のプロセッサ命令のことと解釈してください。

プロセッサ命令は、一般に次の形式を持ちます。

    <命令>    [<オペランド>[, ...]]

<命令>は、「MOV」「INC」などのプロセッサ命令の種類を示すキーワードです。

<オペランド>は、レジスタ、メモリアドレス、イミディエイト値などであり、命令の対象を示します。<オペランド>の数は、<命令>やアドレッシングモードによって決まり、0、1、2 個のいずれかです。オペランド同士の間はカンマで区切ります。

[目次]