SLL Shift Left Logical
Undocumented instruction to perform a logical left shift
The block CB30…CB37 is missing from the official list.
These instructions, usually denoted by the mnemonic SLL, Shift Left Logical, shift left the operand and make bit 0 always one.
These instructions are quite commonly used. For example, Bounder and Enduro Racer use them.
Some documents list this as SL1
instead of SLL
due to it setting bit 0.
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|
SLL r | ||||||||
1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | CB |
0 | 0 | 0 | 0 | 0 | r | |||
SLL (HL) | ||||||||
1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | CB |
0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 06 |
SLL (IX+d) | ||||||||
1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | DD |
1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | CB |
d | ||||||||
0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 06 |
SLL (IY+d) | ||||||||
1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | FD |
1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | CB |
d | ||||||||
0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 06 |
Register | r |
---|---|
B | 000 |
C | 001 |
D | 010 |
E | 011 |
H | 100 |
L | 101 |
A | 111 |
Opcode Matrix
A | B | C | D | E | H | L | (HL) | (IX+dd) | (IY+dd) | |
---|---|---|---|---|---|---|---|---|---|---|
SLL |
SLL A
CB37 |
SLL B
CB30 |
SLL C
CB31 |
SLL D
CB32 |
SLL E
CB33 |
SLL H
CB34 |
SLL L
CB35 |
SLL (HL)
CB36 |
SLL (IX+dd)
DDCBnn36 |
SLL (IY+dd)
FDCBnn36 |
Instruction
Opcode hex
| Undocumented |
Last modified November 12, 2021: Adjust svg placement so they are not cut off on print (b126efe)