LSR AX,T
6-141
LSR AX,T Logical Shift Right by T(3:0)
SYNTAX OPTIONS OPCODE OBJMODE RPT CYC
LSR AX,T 1111 1111 0110 001A X − 1
Operands AX Accumulator high (AH) or accumulator low (AL) register
Upper 16 bits of the multiplicand (XT) register
Description Perform a logical shift right on the content of the specified AX register (AH or
AL) as specified by the four least significant bits of the T register, T(3:0). The
contents of higher order bits are ignored. During the shift, the high order bits
of the AX register are zero filled If the T(3:0) register bits specify a shift of 0,
then C is cleared; otherwise, C is filled with the last bit to be shifted out of AX:
0
C
AX
AX
Discard
other bits
Last bit out or cleared
Right shift
Contents of T (3:0)
Flags and
Modes
N After the shift, if bit 15 of AX is 1 then the negative flag bit is set; otherwise it is
cleared. Even if the T(3:0) register bits specify a shift of 0, the value of AH or
AL is still tested for the negative condition and N is affected.
Z After the shift, if AX is 0, then the Z bit is set, otherwise it is cleared. Even if the
T(3:0) register bits specify a shift of 0, the value of AH or AL is still tested for
the zero condition and Z is affected.
C If T(3:0) specifies a shift of 0, then C is cleared; otherwise, C is filled with the
last bit to be shifted out of AH or AL.
Repeat This instruction is not repeatable. If this instruction follows the RPT
instruction, it resets the repeat counter (RPTC) and executes only once.
Example
; Calculate un-signed value: VarC = VarA >> VarB;
MOV T,@VarB ; Load T with contents of VarB
MOV AL,@VarA ; Load AL with contents of VarA
LSR AL,T ; Scale AL by value in T bits 0 to 3
MOV @VarC,AL ; Store result in VarC