Differences

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

Link to this comparison view

instructions:mvc [2008/05/13 07:22] (current)
Line 1: Line 1:
 +====== Move Words and Clear (MVC)/OP=13 ======
  
 +==== Format ====
 +
 +^  OP  ^  AF  ^  BF  ^  A Syllable  ^  B Syllable  ^
 +
 +''OP = 13''
 +
 +**AFBF** length of both operands.  A value of __0000__ is equal to a length of
 +10,000 4-digit //words// or 40,000 digits.  **AF** or **BF** may be indirect.
 +A literal flag will cause an //Invalid Instruction (**IEX = 21**)// fault. See
 +[[compatibility_notes:a.07.1|Compatibility Notes A.07.1]].
 +
 +The //A Syllable// is the address of the __source__ data field.   Address may be indexed, indirect or extended.
 +Final address controllers are ignored.\\
 +The //B Syllable// is the address of the __destination__ data field.   Address may be indexed, indirect or extended.
 +Final address controllers are ignored.
 +
 +=== Note ===
 +
 +Use of addresses which are not congruent to zero modulo 4 may produce
 +incompatible results (see [[compatibility_notes:a.07.2|Compatibility Notes
 +A.07.2]].
 +
 +==== Function ====
 +
 +The Move Words and Clear instruction moves the number of four digit //words// specified
 +by the concatenation of **AF** and **BF** from the __source__ data field in
 +memory to the __destination__ data field in memory.
 +
 +The contents of the __source__ data field are set to zero.
 +
 +==== Comparison Flags ====
 +
 +The [[processor_state:comparison_flags|Comparison Flags]] are unchanged by
 +this instruction.
 +
 +==== Overlap ====
 +
 +When the final **B** address is less than the final **A** address and the
 +fields partially overlap, the __source__ data field will be shifted by that
 +number of digits to the left.
 +
 +When the **B** data field partially overlaps
 +the **A** data field and **B** is greater than **A**, the data from the
 +**A** address to the **B** address will be right justified in the
 +__destination__ data field and filled with leading zeros.
 +
 +When the **B** data field totally overlaps the **A** data field, the **A**
 +data field will is rewritten but not cleared.
 +
 +==== Examples ====
 +
 +=== Example (1) Move eight digits and clear the source field ===
 +
 +^  OP  ^  AFBF  ^  A Syllable  ^  B Syllable  ^
 +|  13  |  0002  |  A Field  |  B Field  |
 +
 +                      BEFORE              AFTER
 +     A Field         F1F2F3F4          00000000
 +     B Field         nnnnnnnn          F1F2F3F4
 +     Comparison Flags   nn            unchanged
 +     Overflow Flag      nn            unchanged
 +
 +=== Example (2) Justify data field ===
 +
 +^  OP  ^  AFBF  ^  A Syllable  ^  B Syllable  ^
 +|  l3  |  0002  |  A Field  |  A Field + 4  |
 +
 +                      BEFORE              AFTER
 +     A Field        1605nnnnnnnn      000000001605
 +     Comparison Flags   nn              unchanged
 +     Overflow Flag      nn              unchanged
instructions/mvc.txt ยท Last modified: 2008/05/13 07:22 (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