N88-BASICでZ80アセンブリ (2回目)

2023/5/12(金)
N88-BASICでZ80アセンブリ (2回目)
 
N88-BASIC(PC-8801)互換?XL-BASICのMONで
アセンブリを動かして見ます
 
XLBasic01.exeをダブルクリックして
XL-BASICを起動して下さい
 
mon
でモニターに入り
a9000
でアセンブリを打って行きます
(小文字は大文字に変換されます)
 
LD A,80H     … Aレジスタに文字コード&h80を入れる
LD HL,0F3C8H … HLレジスタにT-VRAM(&hF3C8)を入れる
LD B,80      … Bレジスタに文字数(80)を入れる
LD (HL),A    … HL番地にAを入れる
INC HL       … HL = HL + 1
INC A        … A = A + 1
DJNZ 9007H   … B = B - 1:IF B <> 0 THEN LD (HL),Aへ
RET          … RETURN(終了)
 
相対ジャンプ命令も絶対アドレスで指定して下さい
自動で相対アドレスに変換されます
 
T-VRAMの先頭から
キャラクターコード&h80~
文字を80文字書込む
プログラムです
 
(XL-BASICはT-VRAMアドレスの変更には
対応していませんので常に&hF3C8~です)
 
g9000,-
で9000hからRETまで実行します
(途中のCALL,RETのペアでは止まりません)
 
tで1命令ずつトレース出来ます
t2で2命令ずつ,t-でRETまでトレースします
 
XLBasic/Doc/ReferenceXL.txtの
MONの所にコマンドの説明がありますので
参照して下さい
 
 
 
l9000,+d
で9000h~dhバイトの逆アセンブルを表示します
 
l9000,+d,d
でDATA文として逆アセンブルを
XLBasic01prn.txtに出力します
 
LOADすると行番号が付加されます
 
BASICプログラムからアセンブリを実行するのに
使用して下さい
 
XL-BASIC付属のアセンブリのサンプル
(XLBasic/AZ/z1.bas~z3.bas)は
この方法で作成しています
 
 
また、TRONの状態でBASICからマシン語を
呼び出す(CALL,USR)とMONに入るので
tコマンドでトレース出来ます
 
XL-BASICとblg~.zip(z80a002.bas)は
以下のリンクからダウンロードできます

https://ulprojectmail.blogspot.com
Readme.txtを読んで遊んで下さい



















このブログの人気の投稿

NEWS

N88-BASICでゲーム (1回目)