欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 汇编学习之《移位指令》

汇编学习之《移位指令》

2025/9/26 0:08:02 来源:https://blog.csdn.net/u011374344/article/details/146905754  浏览:    关键词:汇编学习之《移位指令》

这章节学习前需要回顾之前的标志寄存器的内容:

汇编学习之《标志寄存器》

算数移位指令

SAL (Shift Arithmetic Left)算数移位指令 :

左移一次,最低位用0补位,最高位放入EFL标志寄存器的CF位(进位标志)

OllyDbg查看执行查看

通过上面我可以看到,我们设置MOV EAX, 80000001后, 其实32位最高位就是1,最低位也是1,

当我们执行SAL EAX 1语句后, 最高位放入二零EFL标志寄存器的CF位,通过OD也可以看到C位是1,同时最低位1向左移动1位后,十六进制的结果就是2;

我们输入的SAL 算数左移,但是OD里面变成了SHL,这里是因为算数左移和逻辑左移是一样的。

SAR((Shift Arithmetic Left))算数右移指令

右移一次,最高位不变,然后向右移动,最低位移入EFL 标志寄存器的CF位中

备注: 无论左移还是右移,是将对应的最高或最低位放入到CF中,也就是说放入前是0,CF是1,放入后CF就是0,反之亦然。

逻辑移位指令

SHL(shift  left)逻辑左移

shl 逻辑左移和 sal 算数左移指令是一样的,这里就不重复说明了。

SHR(shift right)逻辑右移

右移一次, 最高位补0,最低位送入CF标志位, 如图:

上面SAR,SHR的图中可以清晰看到两个的区别就是最高位要不要保持不变。 移动方式都是对的。

上一篇:汇编学习之《运算和逻辑指令》

下一篇: 汇编学习之《test, cmp 指令》

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词