SSZアセンブラ説明書
命令語を動作を表す直感的な記述で書くことにより、注釈なしでもソースファイルが見やすくなるようにしたZ80アセンブラです。秋月電子のAKI−80GOLDキットに転送してテストできます。
改良を重ねている段階で、まだバグがあると思いますが、とりあえず紹介いたします。
(動作環境:現在、Windows98のみ動作確認しております。)
メイクファイルを開く
メイクファイルを上書き保存
メイクファイルを名前を付けて保存
ソースファイルの追加
選択されたソースファイルの上にファイルを挿入
選択されたソースファイルの削除
AKI80へプログラムの転送
アセンブル
(AKI-80 RS232Cロード用ROMのプログラム)
を押し”RSLOAD.AS”を開くと、ソースファイルがリストに表示されます。
を押すとソースファイルがアセンブルされOUTファイルが表示されます。
(エンドレス周回テストプログラム)
を押し”atctest.as”を追加、再度 を押し”atctest_macro.as”を追加します。
で”atctest”で保存します。次回からは で”atctest.amk”を呼び出せます。
を押すとソースファイルがアセンブルされOUTファイルが表示されます。
でAKI-80に転送します。転送が終わるとプログラムがスタートします。
*エラーがある場合は、エラーリストが表示され、リストをダブルクリックするとOUTファイルのエラー箇所に表示が移動します。
一般的使用法
1.一般のテキストエディターでソースファイルを記述します。(拡張子は”AS”)
2.アセンブラので記述したソースファイルを読み込みます。複数のソースファイルがある場合は繰り返します。
3.読み込んだファイルの前に挿入したい場合はファイルを選択して、削除したい場合は選択してを押します。
4.上記で読み込んだファイルを、メイクファイルとして保存する場合はで名前を付けて保存します。(拡張子は”AMK”になります。)次回からはで保存したメイクファイルを呼び出します。
5.でアセンブルします。
6.でAKI-80に転送します。転送が終わるとプログラムがスタートします。
RS232CポートCOM1に出力されますので他の機器がつながっていないかご注意ください。
7.デバッグが終わりROM化する場合はBINファイルをROMライターで焼きます。
(注) ソースリストの上からアセンブルしますので順番に注意してください。
メイクファイルは、単純にソースファイル名を絶対パス付きで記述したテキストファイルですのでテキストエディターで編集可能です。
作成されるファイルについて
【アセンブラで作成されるファイル】
1.メイクファイルがある場合
メイクファイルがあるフォルダに
"メイクファイル名.OUT"−>OUTファイル
"メイクファイル名.BIN"−>マシン語バイナリファイル
"メイクファイル名.OBJ"−>アセンブラ中間ファイル
2.メイクファイルを使用しない場合
ソースファイルリストの先頭のソースファイルがあるフォルダに
"先頭のソースファイル名.OUT"
"先頭のソースファイル名.BIN"
"先頭のソースファイル名.OBJ"
【ファイルの説明】
1.OUTファイル
ソースファイルがアセンブルされた状況を示すテキストファイル。
2.BINファイル
作成されたマシン語バイナリファイル。ROMライターで読むときはバイナリファイルを指定。
3.OBJファイル
アセンブルで使用する中間ファイル(他のアセンブラとの互換は全くありません。)
4.INIファイル
アセンブラ本体があるフォルダーに設定保存用"ASM.INI"が作られます。
リモートを行うための説明
AKI−80はGOLDキットでないとRAM上でプログラムを動かせないので、GOLDを使用してください。
添付の”RSLOAD.BIN”を64k又は256kのROMに焼いて、AKI−80に取り付けてください。
X’talは19.6608MHzを使用してください。
RS232CポートCOM1に出力されます。最低でもRS232Cのインターフェイス部分は必要ですので制作してください。
ソース記述仕様
ORGアドレス
アセンブル開始番地を指定します。
例 ORG$1000 1000h番地からアセンブルします。BINファイルは0hから1000hまでFFhで埋められます。
OFSアドレス
アセンブル開始番地を指定します。ソースファイルの頭で1回だけ指定します。ファイル転送してAKI80のRAM上で走らせる場合に使用します。
例 OFS$1000 1000h番地からアセンブルします。BINファイルの先頭から1000hのコードが始まります。
サブルーチン
サブルーチンを使用するときはサブルーチン登録します。
SUB サブルーチン名
.
.
END SUB (又はRET)
サブルーチンをコールするときは
サブルーチン名
条件付きコールは
(条件)サブルーチン名
ラベル
1.ローカルラベル
LOOP1: 同じサブルーチン内のみ可視 サブルーチン外ではメインルーチンでのみ可視
2.グローバルラベル
ABC:: すべてから可視
例
AAA:
BBB::
SUB TEST
TOP: A<B
Z=0->TOP
END SUB (又は RET)
CCC: (END SUBを使用した場合はメインルーチンのローカルラベルになります。)
ラベル、サブルーチン登録合わせて1000件まで登録できます。
数値表現
123 10進表現
$7B 16進表現
7Bh 〃
オペランドのラベル演算
オペランドにグローバルラベルの演算値(加算、減算のみ)を入れることができます。
例
AAA:: =$12
BBB:: =$34
A<BBB-AAA+56 (LD A,BBB-AAA+56)
オーバーフローしている上位ビットは無視されます。
マクロ
マクロ登録すると頻繁に使用する命令群を登録名で呼び出せます。
MACRO マクロ名
.
.
END MACRO
マクロ登録中はラベルの使用できません。
マクロ登録中にマクロを呼び出せますが、ネストになる場合は5回までです。
1000件まで登録できます。
リマーク
ソース行の”;”から右はリマークになります。
データ
”¥”のあと16進表記で4バイトまでデータを指定できます。
例 \010203AB 必ず1バイトを2文字で表記してください。
アドレス指定
ラベル:=アドレス の様にラベルに直接アドレスを指定できます。
ベクトル指定
VECTOR=ラベル の様にするとラベルのアドレスがコードになります。
INTベクトル等を指定するとき使用します。
|
|
免責事項
本アセンブラを使用した結果についてはいかなる責任も負いません。個人の責任において使用してください。
制作・著作 下野茂樹
*不明な点、バグ等メールいただければ幸いです。