2019/06/08(土) [n年前の日記]
#1 [mz][prog] Z80用逆アセンブラ DASMx を試用
Z80用逆アセンブラ DASMx を試用。環境は Windows10 x64 1809。
逆アセンブルしたいバイナリ、hoge.bin に対して、hoge.sym というテキストファイルを作成して中身を記述すると、ラベル等を文字列にして出力することができるらしいので、そのあたりを調べたり。
逆アセンブルしたいバイナリ、hoge.bin に対して、hoge.sym というテキストファイルを作成して中身を記述すると、ラベル等を文字列にして出力することができるらしいので、そのあたりを調べたり。
◎ CPU種類の指定。 :
.sym 内で、対象CPU種類を記述できる。以下は Z80 を指定した例。
区切り文字はスペース、またはタブ文字。
cpu z80
区切り文字はスペース、またはタブ文字。
◎ プログラム中のラベルの指定。 :
「code アドレス値 ラベル名」を記述すると、プログラム中の飛び先ラベル名を指定できる。
アドレス値は、C言語風に記述するらしい。例えば、「0x000C」と書けば、16進数の記述になる。
code 0x0000 MONIT code 0x0003 GETL code 0x0006 LETNL code 0x0009 NL code 0x000C PRNTS code 0x000F PRNTT code 0x0012 PRNT code 0x0015 MSG
アドレス値は、C言語風に記述するらしい。例えば、「0x000C」と書けば、16進数の記述になる。
◎ ワークエリア等の指定。 :
「symbol アドレス値 ラベル名」と記述すると、ワークエリア等のラベルを指定できる。
symbol 0x1171 DSPXY symbol 0x1172 DSPXY+1 symbol 0x1173 MANG symbol 0x1174 MANG+1 symbol 0x1194 DPRNT symbol 0x119D SWRK
◎ バイトデータ、ワードデータの指定。 :
「byte アドレス値 ラベル名 個数」で、バイトデータ(1byte単位)が並ぶ部分を指定できる。
「word アドレス値 ラベル名 個数」で、ワードデータ(2byte単位)が並ぶ部分を指定できる。
byte 0x0A92 ATBL 256上の例では、0x0A92 に ATBL というラベル名をつけて、256byteのバイトデータが並ぶ、という指定になる。
「word アドレス値 ラベル名 個数」で、ワードデータ(2byte単位)が並ぶ部分を指定できる。
word 0x0EAA CTBL 16
◎ 文字列の指定。 :
「string アドレス値 ラベル名 バイト数」で、そこに文字列データがあると指定できる。
string 0x0942 MSGOK 4
[ ツッコむ ]
以上、1 日分です。