返回介绍

chapter 15 用 FPU 工作

发布于 2025-02-22 14:00:45 字数 679 浏览 0 评论 0 收藏 0

FPU--是一个主 cpu 被设计用来处理浮点数的设备。

过去它被称为协处理器,放在 CPU 旁边,看起来像可编程的计算器,在学习 FPU 之前学习堆栈机或 forth 语言是值得的。

有趣的是,在过去(80486cpu 之前),协处理器是一个单独的芯片,并不总是安装在母版上,单独购买和安装也是可以的。

但从 80486 DX CPU 开始,FPU 就被安装在里面了。

FWAIT 指令可能提醒我们一个事实--它将 CPU 转换成等待模式,因此它可以一直等待直到 FPU 完成工作。另外一点是 FPU 指令操作码从所谓的 escape 操作码(D8..DF)开始,进入了 FPU。

FPU 有可以容纳 8 个 80 字节的寄存器栈容量,每一个寄存器可以存储一个 IEEE 754 格式的数字。

C/C++语言提供至少两种浮点数类型,float(单精度,32 位),double 类型(双精度,64 位)。

GCC 也支持多精度类型(扩展精度,80 位),但是 MSVC 不支持。

在 32 位环境中,浮点数要求和 int 类型的位数相同,但是数值的表示法完全不同。

数值包括符号位,尾数(也叫做分数)和指数。

参数列表中有 float 和 double 类型的函数通过栈来获得值,如果函数返回 float 或者 double 类型的值,那么返回值将放在 ST(0) 寄存器中--在 FPU 的栈顶。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文