Zk80のアセンブラとかだよ。授業で使うので、オーバースペック気味に作ったつもり。
Z80のアセンブラ/逆アセンブラ。同じ行の;以降はコメントになる。
ToyZk80_asm [入力ファイル] -o [出力ファイル]
出力が指定されていないときは標準出力に出る。
入力に標準入力は使えないので、/dev/stdinなどは入れないでください。(出力には使えます)
入力ファイルのアセンブリを16進数で出力ファイルに出力する。
例
in.asmがこうなっているときに
LD A, 0
LD B, 10
loop:
ADD A,B
DEC B
LD C, A
LD A, 0
CP B
JR NZ, loop
LD A, C
HALT
このコマンドを実行することで
ToyZk80_asm ./in.asm -o ./out.hexout.hexにこう出力される
3e00060a80054f3e00b820f87976
入力ファイルの内容を16進数で読み取り、アセンブリを出力ファイルに出力する。--disassembleフラグが必要。
例
in.hexがこうなっているとき
3e00060a80054f3e00b820f87976
このコマンドを実行することで
ToyZk80_asm ./in.hex -o ./out.asm --disassembleこう出力される。
LD A,00H
LD B,0aH
LABEL_0:
ADD A,B
DEC B
LD C,A
LD A,00H
CP B
JR NZ,LABEL_0
LD A,C
HALT 長くなってきたので別のファイルに移動しました。
16進数が書かれているout.hexファイルの内容を解釈して実行する。
./ToyZk80_emuアセンブラの出力に指定してもいい
./ToyZk80_asm ./input.asm -o ./out.hex
./ToyZk80_emu- 改善案があるなら、NYSLなので、勝手にクローンして勝手に実装してください。
- 文句があるなら、Issueに書いたらたまに見るかもしれませんが、保証はしません
