スキップしてメイン コンテンツに移動
科学,数学,可視化ツールN88互換(DOS版,88+Z80)VL,NL,XL-BASIC for windows~11 © ULproject(かな入力派)
N88-BASICでZ80アセンブリ (1回目)
2023/5/3(水)
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"
でロード
できます
注意
アセンブリの実行は固まって動かなくなることが
ありますので保存(セーブ)を忘れないようにして下さい
BASICのDATA文をつくる
l9000,+6
で9000h~6バイトの逆アセンブルを表示します
l9000,+6,d
でDATA文として逆アセンブルを
XLBasic01prn.txtに出力します
LOADすると行番号が付加されます
BASICプログラムからアセンブリを実行するのに
使用して下さい
XL-BASIC付属のアセンブリのサンプル
(XLBasic/AZ/z1.bas~z3.bas)は
この方法で作成しています
XLBasic/Doc/ReferenceXL.txtの
MONの所にコマンドの説明がありますので
参照して下さい
また、TRONの状態でBASICからマシン語を
呼び出す(CALL,USR)とMONに入るので
tコマンドでトレース出来ます
余談
普段あまり厳密に使い分けていないので
間違いがあるかもしれませんが
アセンブリとアセンブラの違いについて書いておきます
機械語(16進数の集まり、マシン語)と1:1で
対応している言語をアセンブリ言語と言う
アセンブリ言語を機械語に変換するプログラムを
アセンブラと言う
XL-BASICとblg~.zip(z80a001.bas)は
以下のリンクからダウンロードできます
