浮点运算单元(FPU)全面解析
1. 浮点运算单元的起源
在早期,像AutoCad这类程序对浮点运算能力有更高的要求。最初,Intel销售名为8087的独立浮点协处理器芯片,并随每一代处理器进行升级。到了Intel486时代,浮点硬件被集成到主CPU中,形成了现在所说的浮点运算单元(FPU)。
2. FPU寄存器栈
FPU不使用通用寄存器(如EAX、EBX等),而是有自己的寄存器栈。它将内存中的值加载到寄存器栈,进行计算,然后将栈中的值存储回内存。FPU指令以后缀表达式的形式计算数学表达式,类似于惠普计算器的计算方式。
例如,中缀表达式 (5 * 6) + 4 的后缀表达式是 5 6 * 4 + 。中缀表达式 (A + B) * C 需要括号来改变默认的运算优先级(乘法优先于加法),而等效的后缀表达式 A B + C * 则不需要括号。
后缀表达式计算过程中,栈用于保存中间值。以下是计算后缀表达式 5 6 * 4 - 的步骤:
| 操作 | 栈内容 | 动作 |
| ---- | ---- | ---- |
| 5 | 5 | 压入5 |
| 6 | 5 6 | 压入6 |
| * | 30 | 用ST(1)乘以ST(0),并弹出ST(0) |
| 4 | 30 4 | 压入4 |
| - | 26 | 用ST(1)减去ST(0),并弹出ST(0) |
常见的中缀表达式转后缀表达式的方法在计算机科学入
FPU浮点运算单元详解
超级会员免费看
订阅专栏 解锁全文
7

被折叠的 条评论
为什么被折叠?



