鱼C论坛

 找回密码
 立即注册
查看: 3299|回复: 0

[技术交流] 有关shr 和 shl

[复制链接]
发表于 2013-12-1 15:09:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 catch 于 2013-12-1 15:12 编辑

SHR是汇编逻辑指令,SHR指令将目的操作数顺序右移1位或CL寄存器指定的位数。逻辑右移1位时,目的操作数的最低位移到进位标志位CF,最高位补零。SHR指令影响标志位CF和OF。如果移位次数为1,且移位后符号位的值发生变化,则OF=1,否则OF=0.如果移位次数不为1,则OF不确定。


【格式】:SHR OPR.CNT。其中OPR用除立即数外的任何立即数指定范围从1到31的移位次数。
如MOV AL,62HMOV CL,4
SHR AL,CL
所执行简易理解如下:
01100010B 因为是右移操作,也称为右移补0操作,将二进制位逐次在右边去掉一位然后在左边添个0,移多少位重复上述操作多少次。4次移位后结果为00000110B,即06H.

【应用】 逻辑右移一位的操作,相当于将寄存器或存储器的无符号数除以2,因此同样可以用SHR指令完成除以某些常数的运算。而且移位指令通常比除法指令时运行速度要快得多。


有关类似指令有:
SHL(shift logical left) 逻辑左移
SHLD(shift left double) 双精度左移
SHRD(shift right double) 双精度右移
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-28 17:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表