Linux内核完全剖析数学协处理器功能和结构_Linux内核完全剖析数学协处理器功能和结构试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > Linux内核完全剖析 > 数学协处理器功能和结构

Linux内核完全剖析——数学协处理器功能和结构

    80386虽然是一个通用微处理器,但其指令并不是非常适用于数学计算。因此若使用80386来执行数学计算,那么就需要编制非常复杂的程序,而且执行效率也相对较低。80387作为80386的辅助处理芯片,极大地扩展了程序员的编程范围。以前程序员不太可能做到的事,使用协处理器后就可以很容易地,并且快速而精确地完成。     80387具有一组特别的寄存器。这组寄存器可以让80387直接操作比80386所能处理的大或小几个数量级的数值。80386使用2进制补数方式表示一个数。这种方法不适合用来表示小数。而80387并不使用2的补数方法来表示数值,它使用了IEEE标准754规定的80位(10个字节)格式。这种格式不仅具有广泛的兼容性,而且能够使用二进制表示极大(或极小)的数值。例如,它能表示大到1.21×104932数值,也能处理小到3.3×10-4932的数。80387并不保持固定小数点的位置,如果数值小的话就多使用一些小数位,如果数值大的话就少用几位小数位。因此小数点的位置是可以“浮动”的。这也是术语“浮点”数的由来。     为支持浮点运算,80387中包含三组寄存器,如图11-5所示。① 8个80位长的数据寄存器(累加器),可用于临时存放8个浮点操作数,并且这些累加器可以执行栈式操作;② 3个16位状态和控制寄存器:一个状态字寄存器SWD、一个控制字寄存器CWD和一个特征(TAG)寄存器;③ 4个32位出错指针寄存器(FIP、FCS、FOO和FOS)用于确定导致80387内部异常的指令和内存操作数。     图11-5  80387的寄存器

展开全文

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《Linux内核完全剖析》其他试读目录

• 序
• 数学协处理器
• 浮点数据类型
• 特殊实数
• 数学协处理器功能和结构 [当前]
• 栈式浮点累加器
• 状态与控制寄存器
• 出错指针寄存器
• math_emulate.c程序