Joh*_*ugo 7 x86 assembly intel computer-architecture x87
为什么使用如此"怪异"的寄存器大小?关于为什么不优选使用64或128位这些寄存器的任何文档?
在IEEE 754-1985标准的维基百科页面上,对80位扩展格式有一个非常好的解释:
"该标准还建议使用扩展格式来执行内部计算,其精度高于最终结果所需的精度,以最大限度地减少舍入误差"
双精度浮点数以64位表示.您可能需要更多的位来获得更高的中间结果精度,但是当您在最终结果中只需要64位时,使用128位类型将是过度的.
80位是大于64位的合理偶数位.
考虑到建立这些标准时的数据总线是8位或16位,而不是今天的32位或64位.如果今天写入标准,则96位将是更合理的数字,或者即使所有这些位都不用于计算,数据也可能以128位传输.