Contents of the accumulator and accumulator extension are shifted left, a bit at a time, as if they were a single 32-bit register. (The accumulator contains the leftmost 16 bits of the 32, the accumulator extension contains the rightmost 16 bits.) Each bit value shifted out from accumulator-position 0 is shifted into the carry indicator. Low-order bits shifted into accumulator-extension position 15 (and then to the left) are always zeros.
An example of a left shift of two positions is:
The number of positions shifted is specified by a shift count. Location of the shift count is determined by the T bits in the instruction:
|T Bits (6 and 7)||Shift Count Location|
|00||Low-order six bits of displacement (in the shift instruction)|
|01||Low-order six bits in index-register 1|
|10||Low-order six bits in index-register 2|
|11||Low-order six bits in index-register 3|
A value must be put into the shift-count location before the operation is started. The operation is ended when the specified number of shifts have been performed. The shift count, however, need be set up only once. After the operation is ended, the original shift count (for example, a count in index-register 1) is the same as its initial value. (Decrementing of the count is performed in separate circuits.)
Maximum shift count that can be specified is 63 (111111 in binary). A left shift of 32, however, puts zeros in all positions of the accumulator and extension. In this case, the carry indicator, at the end of the operation, is at the value that accumulator-extension bit 15 had at the start of the operation.
A shift count of zero (000000 in binary) causes this instruction to perform as a no-operation: contents of the accumulator and accumulator extension remain unchanged.
Core storage is not addressed during execution of the shift-left-accumulator-and-extension instruction.
Indicators: Each bit value that is shifted out of the accumulator bit-position 0 is placed in the carry indicator. The carry indicator holds only one bit. Consequently, the carry indicator, at the end of the operation, is at the value of the last bit shifted out. If any shifting is to be performed, the carry indicator need not be program-reset before the shift operation because the first left-shift sets or resets the carry indicator to the first bit value shifted out. The carry indicator is not changed if the initial shift count is zero.
The overflow indicator is not affected by a shift-left-accumulator-and-extension operation.
Shift Left Accumulator and Extension
|Assembler Language Coding||Hexadecimal Value||Description of Instruction|
|SLT||DISP||10*X||Contents of A and Q shift left the number of shift counts in DISP|
|SLT||1||1180||Contents of A and Q shift left the number of shift counts in XR1|
|SLT||2||1280||Contents of A and Q shift left the number of shift counts in XR2|
|SLT||3||1380||Contents of A and Q shift left the number of shift counts in XR3|
But wait, there's MORE...