2003/5/4作成
2003/11/25更新

モジュール用のマシン語作成

マシン語(機械語=CPUが直接実行できる言語)のコードを変数に格納しておき、それを呼び出すことでHSPの標準機能では出来ない処理を実行することが出来ます。これを利用したモジュールやマクロを作成することで、プラグインのような添付ファイルを必要としない追加機能を実現できます。
ここではそういった用途に使用するためのマシン語コードを作成する方法について述べます。

マシン語コードを作成する方法は幾つかありますが、ここでは.comファイルを作成する方法を紹介します。 (.comとはDOS用の実行ファイル形式で、ヘッダなどを含まずコードとデータのみを持ったファイル形式です。)
32bitコードを持った.com形式ファイルを作成できる環境は限られていますが、.comに対応していないVC++やBCCでも工夫次第で作成することができます。

Visual C++(VC++)で作成
Borland C++ Compiler 5.5(BCC)で作成NEW
MASMで作成

作成したマシン語ファイルはHSPでbload命令で読み込んで使うだけでなく、以下のようなプログラムを利用して、スクリプトに埋め込むことが出来ます。


valname="var"
strlen l,valname
dialog "",16
if stat==0:end
exist refstr
i=strsize+3/4
if strsize>10000:dialog "ファイルサイズが大きすぎます":end
dim buf,i
sdim buf2,10*i+(i+7/8*(l+7)+50+l)
bload refstr,buf
buf2=""+strsize+"byte\n\n"
buf2+="dim "+valname+","+i
repeat i
        a=buf.cnt
        str a,16+8
        if cnt\8==0:buf2+="\n"+valname+"."+cnt+"=$"+a:else:buf2+=",$"+a
loop
objmode 1
mesbox buf2,640,480
stop

戻る