|
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 番地よりアセンブルします. |
equ | nn | イクエイト. ラベルに値を定義します.定義される値は、データ、アドレスどちらでも構いません. |
defb (db) | n | デファインバイト. この行のある位置に、オペランドで示される 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 命令で定義すべきラベルがない.
|