In the Intel IA-32 software developer manual. It says that bit 8 & 9 of x87 FPU control word determines the precision of floating-point calculations. The default precision is double extended precision. After the instruction "FINIT" is executed, the precision is set to double-floating. The problem is that, after "FINIT" is executed, x87 FPU use only 64 bit of the 80-bit data registers to calculate. And the FPU can't accept(output) double-extended precision floating value from(to) memory. Is this right?

有帮助吗?

解决方案

No, this is not right. The FPU automatically converts from 64-bit to 80-bit when loading from / storing to memory.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top