•  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-FileASL                     Aritmetic Shift Accumulator Left

Operation:

        55 47     23   0
       +--+------+------+
    C<-|<-|<-----|<-----|<--0 (parallel move)
       +--+------+------+

Assembler Syntax:
    ASL D               (parallel move)

Description:
    Arithmetically shift the destination operand D one bit to the left
and store the result in the destination accumulator. The MS bit of D
prior to instruction execution is shifted into the carry bit C and a
zero is shifted into the LS bit of the destination accumulator D. If a
zero shift count is specified, the carry bit is cleared. The difference
between ASL and LSL is that ASL operates on the entires 56 bits of
the accumulator and therefore sets the V bit if the number overflowed.

Example:
    ASL A   (R3)-       ;multiply A by 2,update R3

    Before Execution:
        A  = $A5:012345:012345
        SR = $0300

    After Execution:
        A  = $4A:02468A:02468A
        SR = $0373

Explanation of Example:
    Prior to execution, the 56-bit A accumulator contains the value
$A5:012345:012345. The execution of the ASL A instruction shifts the
56-bit value in the A accumulator one bit to the left and stores the
result back in the A 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 limiting (parallel move) or overflow has occured in result
    E- Set if the signed integer portion of A or B result is in use
    U- Set if A or B result is unnormalized
    N- Set if bit 55 of A or B result is set
    Z- Set if A or B result equals zero
    V- Set if bit 55 of A or B result is changed due to left shift
    C- Set if bit 55 of A or B was set prior to instruction execution

NOTE: The definition of the E and U bits varies according to the
scaling mode being used.

Instruction Format:
    ASL D

    D = (A,B)

Timing:     2 + mv oscillator clock cycles

Memory:     1 + mv program words