HSP3でマシン語コードを実行

必要なソフト

マシン語コードで1+1

マシン語コードで1+1をやります。
まずはメモ帳などで下のコードを書いてコマンドラインコンパイラなどを使用してマシン語コードを取り出します(取り出し手順は省略)

#include <windows.h>
      int WINAPI opt(int one,int two) {
          return one+two;
}

正常に取り出せると以下のようなコードが取り出せると思います。

8B 44 24 08 8B 4C 24 04 03 C1 C2 08 00

これをマシン語配列Converterにかけると下のようなコードが出てくると思います。

xdim fncode,4
fncode(0) = $0824448b, $04244c8b, $08c2c103, $00000000

HSP3を起動させて、下のように出力されたコードを実行するコードを書きます。

#include "xdim_hsp3.as"

xdim fncode,4
fncode.0 = $0824448B, $04244C8B, $08C2C103, $00000000

//n+mとしたら
prm.0 = 1 //n
prm.1 = 1 //m

fncodeaddr = varptr(fncode) //マシン語コードのアドレスを取得
r = callfunc(prm, fncodeaddr, 2) //コード実行

dialog "結果="+r
end

実行すると正常にマシン語コードが実行されます。

Copyright 2006 NV 自宅サーバ 管理人:NV