| |||

Home > The A64 instruction set > Data processing instructions > Shift operations |

The following instructions are specifically for shifting:

*Logical Shift Left*(`LSL`

). The`LSL`

instruction performs multiplication by a power of 2.*Logical Shift Right*(`LSR`

). The`LSR`

instruction performs division by a power of 2.*Arithmetic Shift Right*(`ASR`

). The`ASR`

instruction performs division by a power of 2, preserving the sign bit.*Rotate right*(`ROR`

). The`ROR`

instruction performs a bitwise rotation, wrapping the bits rotated from the LSB into the MSB.

**Table 6.3. Shift and move operations**

Instruction | Description |
---|---|

Shift | |

`ASR` | Arithmetic shift right |

`LSL` | Logical shift left |

`LSR` | Logical shift right |

`ROR` | Rotate right |

Move | |

`MOV` | Move |

`MVN` | Bitwise NOT |

The register that is specified for a shift can be 32-bit or 64-bit. The amount to be shifted can be specified either as an immediate, that is up to register size minus one, or by a register where the value is taken only from the bottom five (modulo-32) or six (modulo-64) bits.