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