2023/3/16(木)
N88-BASICでZ80アセンブリ (1回目)
N88-BASIC(PC-8801)互換?XL-BASICの
MONで
お手軽に
Z80アセンブリを
動かして見ます
(実機のmonと機能が違うので注意して下さい)
XLBasic01.exeをダブルクリックして
XL-BASICを起動して下さい
mon
でモニターに入り
a9000
でアセンブリを打って行きます
LD A,1 … Aレジスタに1を入れる
LD B,2 … Bレジスタに2を入れる
ADD A,B … A = A + B
RET … サブルーチンの終わり
xでレジスターの内容を表示出来ます
g9000
で9000から1命令実行
t
で続き(PCが示すアドレス)から1命令実行
t-
でRET実行まで進みます
(途中のCALL,RETのペアでは停止しません)
最終的に
Aレジスターに1+2の結果3が入ります
l9000,+6
で9000番地から6バイト逆アセンブルできます
XL-BASICでは
CALLされていない(RETでSPが0になる)
状態でRETが実行されると
それ以上実行されないようにしてあります
CLEAR ,&H8FFFなどでSPが書き変わった後は
安全処置が働かなくなるので注意して下さい
Ctrl+bまたはBreakキーでMONを終了し
BSAVE "ファイル名.bin",&H9000,6
(6はバイト数)
でセーブ
BLOAD "ファイル名.bin"
でロード
できます
注意
アセンブリの実行は固まって動かなくなることが
ありますので保存(セーブ)を忘れないようにして下さい
余談
普段あまり厳密に使い分けていないので
間違いがあるかもしれませんが
アセンブリとアセンブラの違いについて書いておきます
機械語(16進数の集まり、マシン語)と1:1で
対応している言語をアセンブリ言語と言う
アセンブリ言語を機械語に変換するプログラムを
アセンブラと言う
N88-BASIC互換?XL-BASICは
以下のリンクからダウンロードできます
https://ulprojectmail.blogspot.com
Readme.txtを読んで遊んで下さい