第3章 运算与运算器-补充.ppt

  1. 1、本文档共122页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 三、浮点除法运算 假设两个浮点数X和Y: * (1)0操作数检查 当除数为0,则报告除法出错,或者结果(商)无穷大;当被除数为0,则商为0。 (2)阶码相减 阶码相减的结果也可能溢出,若发生正溢出,则需报告浮点数溢出,若发生负溢出,则将结果置为机器零。 (3)尾数相除 (4)结果规格化 (5)舍入处理 浮点数除法运算步骤 * 浮点数除法运算流程 * 三、浮点除法运算(举例) 一浮点数表示格式为:12位浮点数,阶码4位,包含1位阶符,尾数8位,包含1位数符,用补码表示,阶码在前,尾数(包括数符)在后,已知: X=(-0.1001011)×2001 Y=0.1100101×2-010求Z=X÷Y。要求阶码用移码计算,尾数用原码加减交替除法计算。 解:按照浮点数的格式分别写出它们的表示形式为: [X]浮 = 1,011 1.00111 [Y]浮 = 0,111 0.10011 阶码相减 [EZ]移 = [EX]移 +[-EY]补 = 01,011 + 00,001 = 01,100 * 三、浮点除法运算(举例) 尾数相除 采用原码加减交替法计算|MX| ÷|MY|,首先写出下例数据: |MX| = 00.11001 |MY| = 00.10011 [-|MY|]补 = 11.01101 |MZ| =|MX| ÷|MY| = 1.01010 * 三、浮点除法运算(举例) 结果规格化 由于|MX| |MY|,所以|MZ|1,必须右规一位,得|MZ| = 0.10101 0 EZ加1得:[EZ]移 = 01,100 + 00,001 = 01,101 舍入 对|MZ|进行0舍1入,得|MZ| = 0.10101 [MZ]原 = 1.10101 [MZ]补 = 1.01011 最后:[Z]浮 = 1,101 1.01011 * 四、浮点运算器 * 4.6 浮点运算器举例 80X87算术协处理器 浮点运算流水线 一 二 * 一、 80X87算术协处理器 算术协处理器是一个特殊用途的微处理器,专门是为有效地执行算术或超越函数的运算而设计的。 微处理器截取和执行常规指令系统中的指令,而协处理器只截取和执行协处理器指令。协处理器指令实际上是换码(ESC)指令,微处理器使用这些指令为协处理器产生一个内存地址,使得协处理器可以执行协处理器指令 * 80387的主要性能和结构 80387的性能 可与配套的CPU芯片异步并行工作 支持多种数据类型 S为符号位,0代表正,1代表负。3种浮点数均符合IEEE754标准,即阶码的底为2,阶码值用移码表示,尾数用原码表示 * 80387的主要性能和结构 具有高性能的80位字长的体系结构 具有出色的内部出错管理功能,能检测出6种错误 可在80386/80486微机系统的两种工作模式下运行 扩展了80386/80486的指令系统 * 80387的主要性能和结构 80387的结构 分为两个主要部分:控制单元和数字执行单元。 控制单元(Control Unit,CU)将协处理器连接到微处理器系统数据总线上。微处理器和协处理器均监视指令流,如果为ESC指令,则由协处理器予以执行。 数字执行单元(Numeric Execution unit,NEU)负责执行所有协处理器指令。 NEU中有一个由8个80位寄存器构成的堆栈,用于存储算术指令的操作数和结果。 NEU中还包含状态寄存器、控制寄存器、标记寄存器和异常指针寄存器。 FSTSWAX指令是协处理器允许通过AX寄存器和微处理器直接通信的唯一指令。除了8087,所有新协处理器都包含该指令。 * 80387内部结构框图 * 寄存器堆栈 80387包含8个寄存器,每个为80位宽,它们首尾相接,组成一个“先进后出”的寄存器堆栈。这些堆栈寄存器中总是包含一个80位的扩展精度浮点数。数据只有驻留在内存时才可能是任何其他格式。当数据从内存中移到协处理器的寄存器堆栈中时,协处理器将这些带符号的整数、BCD数、单精度或双精度数转换为扩展精度浮点数。 8个寄存器编号为0-7,处于栈顶的寄存器称为栈顶寄存器,它的编号由状态寄存器的TOP字段指出。在协处理器指令中,用ST表示栈顶寄存器,用ST(i)(i=1-7)访问相对于栈顶寄存器偏移量为i的寄存器,即i是偏移量,而不是寄存器实际的编号。 * 状态寄存器 状态寄存器反映协处理器所有指令的运行情况。 只在80187以上的更高型号中使用 * 状态寄存器 B 忙位(busy bit)表明协处理器正忙于执行一项任务,通过检测状态寄存器或者使用FWAIT指令均可测试忙位。由于较新的协处理器自动与微处理器同步,所以在执行其他协处理器任务之前不必测试忙标志。 C3~C0 条件码

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档