C51单⽚机汇编语⾔逻辑右移,汇编语⾔SHR(右移)指令:将
汇编语言结束指令
操作数逻辑右移⼀位...
SHR(右移)指令使⽬的操作数逻辑右移⼀位,最⾼位⽤ 0 填充。最低位复制到进位标志位,⽽进位标志位中原来的数值被丢弃:
SHR 与《SHL指令》⼀节中介绍的 SHL 的指令格式相同。在下⾯的例⼦中,AL 中的最低位 0 被复制到进位标志位,⽽ AL 中的最⾼位⽤ 0 填充:
mov al, 0D0h    ; AL = 11010000b
shr al, 1              ; AL = 01101000b, CF = 0
在多位移操作中,最后⼀个移出位 0(LSB)的数值进⼊进位标志位:
mov al, 00000010b
shr al, 2                    ; AL = 00000000b, CF = 1
位元除法
数值进⾏右移(向 LSB 移动)即执⾏了位元除法(Bitwise Division)。将⼀个⽆符号数右移 n 位,即将该数除以 2n。下述语句将 32 除以
2¹,结果为 16:
mov dl, 32          ;移动前:00100000 = 32
shr dl, 1              ;移动后:00010000 = 16
下例实现的是 64 除以 2³:
mov al, 01000000b      ;AL = 64
shr al, 3                        ;除以 8, AL = 00001000b
⽤移位的⽅法实现有符号数除法可以使⽤ SAR 指令,因为该指令会保留操作数的符号位。原⽂始发于:汇编语⾔SHR(右移)指令:将操作数逻辑右移⼀位