我对旧计算机的逆向计算和仿真感兴趣,并且对 80287 有疑问:
使用现代 FPU,FNSAVE 指令在 CPU 执行 16 位代码时写入 94 字节数据,在 CPU 执行 32 位代码时写入 108 字节数据。FSTENV 指令的行为类似(14 或 28 字节,具体取决于代码类型)。
然而,为 16 位 80286 CPU 设计的 80287 FPU 也可以与 32 位 80386 CPU 一起使用。
从 32 位代码调用 FNSAVE 和 FSTENV 并启用 386/287 组合的分页时,FNSAVE 和 FSTENV 的行为如何?
80287 手册明确提到了 80386,但它只描述了 94 字节的数据格式。然而另一本手册指出,负责保存 108 字节而不是 94 字节的是 80386 而不是 80387。
据称Linux在使用80287时崩溃的原因是什么?
94字节格式与Linux问题有关吗?
谢谢