移位和循环移位指令
shl, shr sal, sar, sol, sor, scl, scr, shld, shrd
逻辑移位和算术移位
-
shl
shl reg/mem, imm8/cl
mov bl, 8fh shl bl, 1 ; bl = 00011110b cf = 1 mov al, 10000000b shl al, 2 ; cf = 0, al = 00000000b
当一个数多次进行左移时,进位标志保存的是最后移出最高有效位的数值
位元乘法
-
shr
shr reg/mem, imm8/cl
```assembly
mov al, 0D0h
shr al, 1 ; al = 01101000 cf = 0
mov al, 00000010b
shr al, 2 ; al = 00000000b cf = 1
```
位元除法
当一个数多次进行右移时,进位标志保存的是最后移出最低有效位的数值
-
sal和sar
sal 与shl一样
mov al, 0f0h sar al, 1 ; cf = 0 al = 11111000b ; 有符号数除法 mov dl, -128 sar dl, 3 ; dl = 11110000b cf = 0 ; ax符号扩展到eax mov ax, -128 shl eax, 16 sar eax, 16
-
rol