52話ってちょっと多すぎな気もしますが,好きな作品なので延長するのは純粋に嬉しいや.しかしそれよりも時たま作画が崩れて顔や体が不自然になる現象を何とかする方が先決のような気がする.
全くnasmはくそったれです.
org 0x100
l1 dd l1,l2
org 0x200
l2 dd l1,l2
って入力して,
nasmw -f bin foo.asm -o foo.bin
としたら,普通
00 01 00 00 00 02 00 00 00 01 00 00 00 02 00 00
という答えを期待するじゃないですか.なのにnasmときたら
00 02 00 00 08 02 00 00 00 02 00 00 08 02 00 00
こんな風にバイナリを吐き出してくれる.最後のorgだけ見て後は無視かよ!
けどmasmだと0x108と0x200まで0で埋めてバカでかいバイナリを吐くぽいし,結局僕が期待した動作というのは勝手な思い込みであり,現実には存在しない幻想だったようだ(has.xってどうだったっけ.試す気力ないけど).がっかり.結局複数のベースアドレスが混ざっているようなバイナリを吐く方法ってないのかなあ.ってネット上の新しいnasmのdoc見たらsectionにvaddrを指定する機能ついてるやん.こんな感じでいける.
section .text1 vstart=0x100
l1 dd l1,l2
section .text2 vstart=0x200
l2 dd l1,l2
ということでやっぱりnasmは偉大だった.ていうか,アホですみません.
参考 :
Multisection support for the BIN format.
てことでWORM_MSBLAST.A(msblast.exe without upx)を逆アセしてみました.相変わらず再アセンブルすると実行できないですが...
kmkz.jp/mtm/files/msblast.exe.asm