我正在尝试在使用Borland C++编译的尘土飞扬的旧 MS-DOS 二进制文件上使用Reko 反编译器获得有用的结果,该二进制文件似乎正在执行大量浮点运算。我看到的代码序列像
mov ax,0x4D8C ; segment selector
mov es,ax
int 0x3C ; call x87 emulator??
fld dword ptr [<some address>]
sub sp,8
int 0x39 ; call x87 emulator??
...等等。粗略的搜索引擎搜索强烈暗示这些int
指令正在调用 x87 仿真库;当 x87 存在时,它让协处理器执行指令,但当它不存在时,仿真器进行仿真。
我非常熟悉如何实施FPU 操作,包括轮班等等。我想了解更多的是这些对模拟器的调用的协议。我一直无法找到文档。也许 RE 社区的其中一位成员呢?