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を読んで遊んで下さい