16 bit Assembly
Home Site Map Instruction Index
The SAL instruction is used to perform an arithmetic shift left, resulting in a signed multiplication.
This command has 3 part the Instruction, A Register or memory address, and the number of bits to shift left.
As each bit is shift it passes in to the Carry flag, where it can be assessed using a conditional jump JC or JNC.
As each bit moves left the lowest bit becomes zero.
Assembly Sample | Description | 16 bit Machine Code |
---|---|---|
SAL AL, 1 | ; Shift AL left by 1 bit | D0 F0 |
SAL AL, CL | ; Shift AL left by value of CL | D2 F0 |
SAL AL, 0x03 | ; Shift AL left by 8 bit immediate | C0 F0 03 |
SAL AX, 1 | ; Shift AL left by 1 bit | D1 F0 |
SAL AX, CL | ; Shift AL left by value of CL | D3 F0 |
SAL AX, 0x03 | ; Shift AL left by 8 bit immediate | C1 F0 03 |
SAL [BX], 1 | ; Shift memory address left by 1 bit | D1 37 |
SAL [BX], CL | ; Shift memory address left by value of CL | D3 37 |
SAL [BX], 0x03 | ; Shift memory address left by 8 bit immediate | C0 37 03 |
SAL [BX+2], 1 | ; Shift memory address left by 1 bit | D1 77 02 |
SAL [BX+2], CL | ; Shift memory address left by value of CL | D3 77 02 |
SAL [BX+2], 0x03 | ; Shift memory address left by 8 bit immediate | C0 77 02 03 |