[前頁] [次頁] [目次]


C editer & assembler

   assembler syntax


 C editer & assemble におけるアセンブラーは、以下に述べるシンタックスのテキストをアセンブルします.ニーモニックコードは、一般に使用されているザイログのオペコードと同じです.オペコードやレジスタ名は大文字、小文字どちらで記述されていてもアセンブルできます.

(1)書 式
       ラベル:  オペコード  オペランド   ;コメント

     1 行には、ラベル、オペコード、オペランド、コメントが記述されます.
     ラベルの終わりには:(コロン)、またコメントの先頭には;(セミコロン)をつけます.オペコードとオペランドの区切りにはスペースをもちいます.
     空白行やラベルのみの行も許されます.

(2)規 約

    @ ラベル
     ラベルは8 ビット、16 ビットのデータや、アドレスに使用します.
     ラベルには次の文字を除き自由に記述できますが、長さは 8 文字以内に制限されています.また、先頭に数字は使用できません.
      (使用禁止文字)
        +, -, *, /, (, ), $, ;, :, ', ", (カンマ), (スペース)

     オペコードやレジスタ名と同じラベル名を記述しても構いませんが、そのラベルを参照する場合、オペコードやレジスタとして意味があるように解釈可能な時は、オペコード、レジスタを優先しますので、そのつもりで記述してください.

    A オペコード
     オペコードには、後で述べる疑似命令も含みます.オペランドを必要とする場合、区切りにスペースを使用します.

    B オペランド  オペランドは、命令によっては 2 個必要とするときがあり、その時オペランドは、,(カンマ)で区切ります.
     オペランドには、ラベルが指定でき、さらに、ラベルと整数、ラベルとラベルの加減乗除算ができます.演算子の優先順位は無く左から右に順に演算されます.

    C コメント
     行の先頭に ; を付けると、その行はすペてコメント行とみなされます.また、オベコードやオペランドの後に;を付けるとそれ以後はコメントとみなされます.

    D 定  数
     オペランドに使用する定数には、10 進、16 進、文字列の各定数があります.数字の最後に H(h)を付けると 16 進、’(アポストロフィ)で文字列(1文字も可能)を囲ったものは、その文字のアスキーコード列が定数となります.
     a〜f で始まる 16 進定数を記述する時には、ラベルと区別するため先頭に 0 をつけます.

    E アドレス
     オペランド記述における各アドレッシングモードにおいて、それぞれラベルや定数を記述することができます.また、それらの演算結果をアドレスとすることもできます.
     相対分岐命令においては、-126〜+129 までの範囲内にアドレスが生成され無かった場合にはエラーとなります.
     当該命令の生成されるアドレス(ロケーションアドレス)を参照する場合には、$ 記号を使用します.

    F 疑似命令
     疑似命令には、次のものが用意されています.各疑似命令の n,nn はオペランド指定であり、オペランドにはラベルや定数、その演算を記述できます.

      org   nnオリジン.
       アセンブルの開始アドレスを指定します.テキストの途中でこの命令が現れた時には、ロケーションカウンターの保持アドレスを、強制的に指定アドレスに変更しアセンブルを続行します.この時、アドレスが後方に戻るような指定がされた場合には、エラーとなります.テキストの先頭にこの命令が置かれていない時は、2000h 番地よりアセンブルします.
       
      equnnイクエイト.
       ラベルに値を定義します.定義される値は、データ、アドレスどちらでも構いません.
       
      defb
      (db)
      デファインバイト.
       この行のある位置に、オペランドで示される 1 バイトを置きます.複数のオペランドをカンマで続けて記述することもできます.
       
      defw
      (dw)
      nnデファインワード.
       この行のある位置に、オペランドで示される 2 バイトを置きます.複数のオペランドをカンマで続けて記述することもできます.
       
      defs
      (ds)
      nnデファインストレージ.
       この行のある位置に、nn で指定される大きさの領域を確保します.確保された領域は、ゼロでクリアーされています.
       
      defm
      (dm)
      'string'デファインメッセージ.
       string で指定される文字列のアスキーコードを展開します.
       
      end   nnエンド.
       ソースプログラムの終わりを示す.これを発見するとアセンブルを終了させます.オペランドは、そのプログラムの実行開始番地を指定します.これを省略した時は、プログラムの先頭が実行開始番地として解釈されます.end 命令は、省略しても構いません.テキストの最後までアセンブルしますと、そこで自動的に終了します.
       
      (本アセンブラーには、マクロ命令はありません.)

    G エラーメッセージ
     エラーメッセージは、アセンブルリストの中の、オブジェクトとソースとの間に表示されます.アセンブラーの出力するエラーメッセージは次に示す英文字 1 文字です.

      F フォーマットエラー
       ラベルが英字で始まっていない.
       ラベルに禁止文字が使用されている、8 文字以内でない.

      Q クウエションエラー
         オペコードが 5 文字以上ある.
       Z-80 のコードでない

      0 オペランドエラー
       必要なオペランドがない、不要なオペランドがある.

      R リラティプエラー
       相対分岐命令のオペランドの指定範囲が -126〜+129を越えている.

      V ヴァリュウエラー
       IM, RST, RES, SET, BIT 命令のオペランドの値が規格外である.

      S ストリングエラー
       ’が足らない、余分にある.

      U アンデファインエラー
       参照ラベルが未定義である.

      M マルチブルデファインエラー.
       ラベルが多重定義されている.

      L ラベルエラー.
       equ 命令で定義すべきラベルがない.

[前頁] [次頁] [目次]