大家好,我是小典,我来为大家解答以上问题。shrimp是什么意思,shr很多人还不知道,现在让我们一起来看看吧!
1、相同点:汇编语言中SAR和SHR指令都是右移指令,SAR是算数右移指令(shift arithmetic right),而SHR是逻辑右移指令(shift logical right)。
2、两者的在于SAR右移时保留操作数的符号,即用符号位来补足,而SHR右移时总是用0来补足。
例如10000000算数右移一位是11000000,而逻辑右移一位是01000000。
3、用法不同:
SAR功能是将操作数右移,符号位保持不变,可用于有符号数除法;
SHR功能是将操作数右移,原最低位移入进位标志CF,原最高位补0;可用于无符号数除法.
例如,AL=1110 1110,BL=0110 1100,CL=2
SHR AL,CL后
AL=0011 1011 SHR最高位用0填补
SAR AL,CL
AL=1111 1011 SAR最高位不变
SAR BL,CL
BL=0011 1011 SAR最高位不变
扩展资料:
逻辑右移SHR
SHR指令影响标志位CF和OF。如果移位次数为1,且移位后符号位的值发生变化,则OF=1,否则OF=0.如果移位次数不为1,则OF不确定。
【格式】:SHR OPR.CNT。其中OPR用除立即数外的任何寻址方式。移位次数由CNT决定,在8086中可以是1或CL,CNT为1时只移一位。
如:MOV AX,62H
SHR AX,1
当移位数大于1时,需要先将移位数放进CL中然后再进行移位操作。可以使用8位立即数指定范围从1到31的移位次数。
如MOV AL,62H
MOV CL,4
SHR AL,CL
所执行简易理解如下:
01100010B因为是右移操作,也称为右移补0操作,将二进制位逐次在右边去掉一位然后在左边添个0,移多少位重复上述操作多少次。4次移位后结果为00000110B,即06H.
【应用】逻辑右移一位的操作,相当于将寄存器或存储器的无符号数除以2,因此同样可以用SHR指令完成除以某些常数的运算。而且移位指令通常比除法指令时运行速度要快得多。
参考资料:
搜狗百科——SAR(SAR算法)
搜狗百科——SHR(计算机术语)
本文到此讲解完毕了,希望对大家有帮助。