Differences

This shows you the differences between two versions of the page.

Link to this comparison view

instructions:fsu [2018/03/11 16:44] (current)
Line 1: Line 1:
 +====== Floating Point Subtract (FSU)/OP=81 ======
 +
 +==== Format ====
 +
 +^  OP  ^  AF  ^  BF  ^  A Syllable  ^  B Syllable  ^  C Syllable  ^
 +
 +''OP = 81''
 +
 +**AF** is the length of the //A Syllable// field Mantissa.  The sign and exponent digits (4) are not included in this length.  **AF** may be indirect or may indicate the //A Syllable// is a literal (if literal, the mantiss length is limited to two digits).  A value of __00__ is equal to a mantissa length of 100 units.\\
 +**BF** is the length of the //B Syllable// field Mantissa.  The sign and exponent digits (4) are not included in this length.  **BF** may be indirect.  A value of __00__ is equal to a mantissa length of 100 units.
 +
 +The //A Syllable// is the address of the __subtrahend__ field.   Address may be indexed, indirect or extended.  The final address controller is ignored and the field assumed to be in floating point format.\\
 +The //B Syllable// is the address of the __minuend__ field.   Address may be indexed, indirect or extended.  The final address controller is ignored and the field assumed to be in floating point format.\\
 +The //C Syllable// is the address of the __difference__ field.   Address may be indexed, indirect or extended.  The final address controller is ignored and the field assumed to be in floating point format.
 +
 +==== Supported Models ====
 +
 +^ Model ^ Status  ^
 +| B3500 | Unsupported  |
 +| B4800 | Supported  |
 +| B2900/B3900/B4900 | Supported  |
 +| V-Series (All models) | Unsupported |
 +
 +==== Function ====
 +
 +After proper alignment of operands, a FSU instruction algebraically subtracts  the contents of the
 +A field to that of the B field and stores the difference in the C field.
 +
 +==== Comparison Flags ====
 +
 +In all cases except overflow, set the [[processor_state:comparison_flags|Comparison Flags]] to indicate whether the sum is greater than (**HIGH**), equal to (**EQUAL**) or less than (**LOW**) zero.
 +
 +==== Overlap ====
 +
 +**A** and **B** may totally overlap or may have matching type-address overlap (see **3.5.3**).  Partial overlap of **A** and **B** other than matching type-address overlap may produce incompatible results.  See [[compatibility_notes:a.09|Compatibility Notes A.09]].
 +
 +==== Examples ====
 +
 +=== Example (1) Subtract Two Floating Point Numbers ===
 +
 +^  OP  ^  AF  ^  BF  ^  A Syllable  ^  B Syllable  ^  C Syllable  ^
 +|  81  |  03  |  02  |  A field **SN**  |  B field **SN**  |  C Field **SN**  |
 +
 +                      BEFORE         AFTER
 +    A FIELD         +02+500        unchanged
 +    B FIELD         +03+20         unchanged
 +    C FIELD          nnnnnn        +02-300
 +    COMPARISON          nn            LOW
 +    OVERFLOW            nn         unchanged
 +
 +=== Example (2) Subtract Two Floating Point Numbers, Overflow Condition===
 +
 +^  OP  ^  AF  ^  BF  ^  A Syllable  ^  B Syllable  ^  C Syllable  ^
 +|  81  |  03  |  03  |  A field **SN**  |  B field **SN**  |  C field **SN**  |
 +
 +                      BEFORE         AFTER
 +    A FIELD          +98-100       unchanged
 +    B FIELD          +99+993       unchanged
 +    C FIELD     nnnnnnnnnn         unchanged
 +    COMPARISON          nn            HIGH
 +    OVERFLOW            nn         On
  
instructions/fsu.txt ยท Last modified: 2018/03/11 16:44 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki