Shift instructions are all immediate instructions. The effective address is not used as the ddress of a memory operand. Instead, it is used as the number of places to shift. A positive number means a left shift; a negative number (bit 18 = 1) means a right shift.

Aside from the sign bit of the effective address, only the lowest eight bits are used. The other nine bits are ignored.

- LSH Logical Shift. C(AC) is shifted as specified by E. Zero bits are shifted into the AC.
- LSHC Logical Shift Combined. C(AC AC+1) is shifted as a 72 bit quantity. Zero bits are shifted in.
- ASH Arithmetic Shift. Bit 0 is not changed. In a left shift zero bits are shifted into the right end of AC. In a left shift, if any bit of significance is shifted out of bit 1, AROV (overflow) is set. In a right shift, bit 0 is shifted into bit 1.
- ASHC Arithmetic Shift Combined. AC bit 0 is not changed. If E is non zero, AC bit 0 is copied to AC+1 bit 0. C(AC AC+1) is shifted as a 70 bit quantity. In a left shift zero bits are shifted into the right end of AC+1. In a left shift, if any bit of significance is shifted out of AC bit 1 then AROV is set. In a right shift AC bit 0 is shifted into AC bit 1.
- ROT Rotate. The 36 bit C(AC) is rotated. In a left rotate bits shifted out of bit 0 are shifted into bit 35. In a right rotate, bit 35 is shifted into bit 0.
- ROTC Rotate Combined. AC and AC+1 are rotated as a 72 bit quantity. In a left rotate AC bit 0 shifts into AC+1 bit 35 and AC+1 bit 0 shifts into AC bit 35. In a right rotate, AC+1 bit 35 shifts into AC bit 0, etc.
- JFFO Jump if Find First One. This is not actually a shift instruction, but it is a related sort of thing. It counts the number of leading zeros in the contents of AC, and stores this number in AC+1. (If AC contains zero, the number stored in AC+1 is zero, not 36). The instruction also jumps to its effective address if C(AC) # 0 (in other words, if it succeeded in finding the first one bit).

;Suppose that each bit in accumlator 1 is a flag ;telling us that some sort of processing needs to be done. ;We would like to find out which flags are set ;and, for each one, do the processing. But we don't want to ;waste a lot of time checking flags which are not set. LOOP: JFFO 1,[JRST @TABLE(2)] ... ;Here all flags are zero. TABLE: FOO ;FOO handles flag bit 0 BAR ;BAR handles flag bit 1. ... ;Other addresses for the remaining flags. FOO: ... ;Do the work. TLZ 1,400000 ;Clear flag bit 0 JRST LOOP ;Find the next flag which is set.