当前位置: 首页 > 文档资料 > 汇编语言教程 >

11.2 协处理器的结构

优质
小牛编辑
141浏览
2023-12-01

11.2.3 控制寄存器

控制寄存器主要用于浮点数精度选择的控制、四舍五入的控制和无穷大的控制等,其低6位还可用来决定是否屏蔽协处理器的异常。指令FLDCW可用来设置控制寄存器的值。控制寄存器中控制位的分布如图11.6所示,其控制位的含义如表11.3所列。

1514131211109876543210
   

IC

RC

PC  PMUMOMZMDMIM

图11.6 控制寄存器的控制位分布示意图

表11.3 控制寄存器中控制位的含义

控制位

控制功能说明

IC(无穷大控制)

0—投影,假定是无符号无穷;
1—仿射,允许正、负无穷

RC(舍入控制)

00—最接近或偶数,01—舍入成负无穷,
11—舍入成负无穷,10—截成0

PC(精度控制)

00—单精度,01—保留,11—双精度,10—扩展精度

PM

精度错误屏蔽位

若屏蔽位的值为1,则状态寄存器的相应位被屏蔽。

UM

下溢出屏蔽位

OM

上溢出屏蔽位

ZM

除数为0屏蔽位

DM

非规格化操作数屏蔽位

IM

非法操作屏蔽位

11.2.4 标记寄存器

标记寄存器用来表明协处理器堆栈中各存储单元内容的状态,也就是说,该寄存器可表明堆栈中的数据是合法的,还是非法的,是无穷,还是0或空等。该标记寄存器的结构如图11.7所示。

1513119753

1 0

TAG(7)TAG(6)TAG(5)TAG(4)TAG(3)TAG(2)TAG(1)TAG(0)

图11.7 标记寄存器结构示意图

其中:TAG(i)的取值含义:00—合法,01—0,10—非法或无穷,11—空

在协处理器中,查看标记寄存器的方法是使用指令FSTENV、FSAVE或FRSTOR,它们都能使标记寄存器与其它协处理器数据一起转存。