汇编语言SHR(右移)指令:将操作数逻辑右移一位
SHR(右移)指令使目的操作数逻辑右移一位,最高位用 0 填充。最低位复制到进位标志位,而进位标志位中原来的数值被丢弃:SHR 与《SHL指令》一节中介绍的 SHL 的指令格式相同。在下面的例子中,AL 中的最低位 0 被复制到进位标志位,而 AL 中的最高位用 0 填充:
mov al, 0D0h ; AL = 11010000bshr al, 1 ; AL = 01101000b, CF = 0father的对应词
在多位移操作中,最后一个移出位 0(LSB)的数值进入进位标志位:mov al, 00000010bshr al, 2 ; AL = 00000000b, CF = 1
位元除法
数值进行右移(向 LSB 移动)即执行了位元除法(Bitwise Division)。将一个无符号数右移 n 位,即将该数除以 2n。下述语句将 32 除以 2¹,结果为 16:mov dl, 32 ;移动前:00100000 = 32shr dl, 1 ;移动后:00010000 = 16
下例实现的是 64 除以 2³:mov al, 01000000b ;AL = 64shr al, 3 ;除以 8, AL = 00001000bfather的对应词
用移位的方法实现有符号数除法可以使用 SAR 指令,因为该指令会保留操作数的符号位。版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。