深入了解浮点运算单元(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 - 的求值步骤:
| 操作 | 栈内容 |
| ---- | ---- |
| push 5 | 5 |
| push 6 | 5 6 |
| 5 6 * | 30 |
| push 4 | 30 4 |
| 5 6 * 4 - | 26 |
常见的中缀表达式转后缀表达式的方法在计算机科学入门教材和互联网上有详细记载,这里给出一些中缀转后缀的示例:
| 中缀表达式 | 后缀表达式 |
| ----
超级会员免费看
订阅专栏 解锁全文
5

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



