•  Back 
  •  Instruction Set 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
Topic       : MC56001 Documentation
Author      : JAY Software
Version     : 1.0 (19/11/1997)
Subject     : Programming/Assembler
Nodes       : 152
Index Size  : 4106
HCP-Version : 4
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : 
@help       : 
@options    : -i +y +z -t4
@width      : 100
View Ref-FileY:                      Y Memory Data Move

Operation:                      Assembler Syntax:
    (.....); Y:ea->D                (.....) Y:ea,D
    (.....); Y:aa->D                (.....) Y:aa,D
    (.....); S->Y:ea                (.....) S,Y:ea
    (.....); S->Y:aa                (.....) S,Y:aa
    (.....); #xxxxxx->D             (.....) #xxxxxx,D

Description:
    Move the specified word operand from/to Y memory. All memory
addressing modes, including absolute addressing and 24-bit immediate
data, may be used. Absolute short addressing may also be used.

    If the arithmetic or logical opcode-operand portion of the instruction
specifies a given destination accumulator, that same accumulator or
portion of that accumulator may notbe specified as destination D in
the parallel data bus move operation. Thus, if the opcode-operand
portion of the instruction specifies the 56-bit A accumulator as its
destination, the parallel data bus move portion of the instruction may
not specify A0,A1,A2, or A as its destination D. Similary, if the
opcode-operand portion of the instruction specifies the 56-bit B
accumulator as its destination, the parallel data bus move portion of
the instruction may not specify B0,B1,B2, or B as its destination D.
That is, duplicate destinations are NOT allowed within the same
instruction.

    If the opcode-operand portion of the instruction specifies a given
source or destination register, that same register or portion of that
register may be used as a source S in the parallel data bus move
operation. This allows data to be moved in the same instruction in
which it is being used as a source operand by data ALU operation.
That is, duplicate sources are allowed within the same instruction.

    When a 24-bit source operand is moved ino a 16-bit destination
register, the 16 LS bits of the 24-bit source operand are stored in
the 16-bit destination register. When a 16-bit source operand is moved
into a 24-bit destination register, the 16LS bits of the destination
register are loaded with the contents of the 16-bit source operand,
and the eight MS bits of the 24-bit destination register are zeroed.

NOTE: This parallel data move is considered to be a move-type
instruction. Due to pipelining, if an address register (R or N) is
changed using a move-type instruction, the new contents of the
destination address register will not be available for use during the
following instruction (i.e., there is a single instruction cycle
pipeline delay).

Example:
    EOR X0,B    #$123456,A  ;exclusive OR X0 and B, update A accumulator

    Before Execution:
        A = $FF:FFFFFF:FFFFFF

    After Execution:
        A = $00:123456:000000

Explanation of Example:
    Prior to execution, the 56-bit A accumulator contains the value
$FF:FFFFFF:FFFFFF. The execution of the parallel move portion of the
instruction, #$123456,A, moves the 24-bit immediate value $123456 into
the 24-bit A1 register, then sign extends that value into the A2
portion of the accumulator, and zeros the lower 24-bit A0 portion of
the accumulator.

Condition Codes:

     15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |LF|**| T|**|S1|S0|I1|I0|**| L| E| U| N| Z| V| C|
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |<-         MR        ->|<-       CCR         ->|

    L- Set if data limiting has occured during parallel move

NOTE: The MOVE A,Y:ea operation will result in a 24-bit positive or
negative saturation constant being stored in the specified 24-bit X
memory if the signed integer portion of the A accumulator is in use.

Instruction Format:
    (.....) Y:ea,D
    (.....) S,Y:ea
    (.....) #xxxxxx,D
    (.....) Y:aa,D
    (.....) S,Y:aa

    #xxxxxx = 24-bit Immediate Data

    aa = 6-bit Absolute Short Address

    ea = (Rn)-Nn
         (Rn)+Nn
         (Rn)-
         (Rn)+
         (Rn+Nn)
         -(Rn)
         Absolute address

    S = (X0,X1,Y0,Y1,A0,B0,A2,B2,A1,B1,A,B,Rn,Nn)
    D = (X0,X1,Y0,Y1,A0,B0,A2,B2,A1,B1,A,B,Rn,Nn)

Timing:     mv oscillator clock cycles

Memory:     mv program words