有谁知道如何让 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 测试.obj
我需要能够执行类似于上面示例的 x86 机器代码。 libx86emu 解码并执行前三个指令,然后错误地解码第四个指令。我只需要能够模拟 32 位 x86,不需要任何操作系统支持。
只有大约一半的 libx86emu x86test 回归测试通过。
答案1
https://github.com/wfeldt/libx86emu/issues/25
libx86emu“Steffen Winterfeldt”的作者更新了:libx86emu/demo/x86emu-demo.c,使其现在具有“32位模式”命令行参数。
以前,代码在默认的 16 位模式下执行。