lsl r/m32, reg32
Selector rm16 (byte) -> r16
Selector rm32 (byte) -> r32
Selector rm16 (page) -> r16
Selector rm32 (page) -> r32
lsl loads a register with a segment limit (unscrambled). The descriptor type must be accepted by lsl, and the source selector must be visible at the CPL weakened by RPL. ZF is then set to 1. Otherwise, ZF is set to 0 and the destination register is unchanged.
The segment limit is loaded as a byte value. A page value limit in the descriptor is translated by lsl to a byte limit before lsl loads it in the destination register (the 20-bit limit from the descriptor is shifted left 12 and OR'd with 00000FFFH).
lsl stores the 32-bit granular limit in the 16-bit destination register.
For lsl, code and data segment descriptors are valid.
Load a segment limit from the contents of the effective address (addressed by the EBX register plus an offset of 5) into the EDX register.
lsl 5(%ebx), %edx