libx86emu x86emu-demoを動作させる方法を知っている人はいますか?
https://github.com/wfeldt/libx86emu
Test.bin
00000000 55 8B EC 51 C7 45 FC 00 00 00 00 8B 45 FC 50 E8
00000010 09 00 00 00 83 C4 04 33 C0 8B E5 5D C3 55 8B EC
00000020 B8 01 00 00 00 5D C3
00: 55 push ebp
01: 8b ec mov ebp,esp
03: 51 push ecx
04: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
0b: 8b 45 fc mov eax,DWORD PTR [ebp-0x4]
0e: 50 push eax
0f: e8 09 00 00 00 call 0x1d
14: 83 c4 04 add esp,0x4
17: 33 c0 xor eax,eax
19: 8b e5 mov esp,ebp
1b: 5d pop ebp
1c: c3 ret
1d: 55 push ebp
1e: 8b ec mov ebp,esp
20: b8 01 00 00 00 mov eax,0x1
25: 5d pop ebp
26: c3 ret
./x86emu-demo -l 0 -s 0 test.obj
上記の例と同様の x86 機械語コードを実行できる必要があります。 libx86emuは最初の3つの命令をデコードして実行し、次に4番目の命令を誤ってデコードします。 OSサポートなしで32ビットx86をエミュレートできます。
libx86emu x86testの回帰テストの約半分を通過しました。
答え1
https://github.com/wfeldt/libx86emu/issues/25
libx86emu "Steffen Winterfeldt"の作成者はlibx86emu/demo/x86emu-demo.cを更新し、「32ビットモード」コマンドライン引数を取得しました。
以前は、コードはデフォルトの16ビットモードで実行されました。