Assembly Language Help (alang.hlp) (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
Numeric Coprocessor Control Word
                                             Up Contents Index Back
────────────────────────────────────────────────────────────────────────────
 
     15                     8    7                    0
     ┌──┬──┬──┬──┬──┬──┬──┬──┐┌──┬──┬──┬──┬──┬──┬──┬──┐
     │  │  │  │  │     │     ││  │  │  │  │  │  │  │  │
     │  │  │  │IC│ RC  │ PC  ││IE│  │PM│UM│OM│ZM│DM│IM│── Control word
     │  │  │  │  │     │     ││  │  │  │  │  │  │  │  │
     └──┴──┴──┴──┴──┴──┴──┴──┘└──┴──┴──┴──┴──┴──┴──┴──┘
 
     IC──Infinity Control
       0 = Projective (default on 8087 and 80287)
       1 = Affine
       On 80387 and 80486, affine closure (distinguishing between positive
       and negative infinity) is used regardless of setting.
 
     RC──Rounding Control
       00 = Round to nearest or even (default)
       01 = Round down toward -infinity
       10 = Round up toward +infinity
       11 = Chop by truncating toward 0
 
     PC──Precision control
       00 = 24-bit mantissa (single precision)
       10 = 53-bit mantissa (double precision)
       11 = 64-bit mantissa (extended precision)
 
     IE - Interrupt Enable Mask
       Only on 8087; undefined on 80287, 80387, and 80486.
 
     Exception Masks
       PM = 1 to mask precision
       UM = 1 to mask underflow
       OM = 1 to mask overflow
       ZM = 1 to mask zero divide
       DM = 1 to mask denormalized operand
       IM = 1 to mask invalid operation
 
     See also: Coprocessor Status Word, Coprocessor Environment
                                    -♦-