当前位置: 首页 > news >正文

汇编学习之《移位指令》

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

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

算数移位指令

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 指令》

相关文章:

  • Citus源码(2)分布式读流程分析与基础概念梳理(shardid、placementid、groupid)
  • 【QT】QT的多界面跳转以及界面之间传递参数
  • 【超详细】一文解决更新小米澎湃2.0后LSPose失效问题
  • 使用 Less 实现 PC 和移动端样式适配
  • Java基础-27-多态-多态好处和存在的问题
  • win server2022 限制共享文件夹d
  • PWA 进阶教程(二): 如何在 PWA 中实现推送通知
  • Linux系统调用编程
  • LeetCode102.二叉树的层序遍历
  • 【操作系统】Linux进程管理和调试
  • QML Book 学习基础6(定位/布局元素)
  • 【浏览器的渲染原理】
  • uniapp微信小程序开发工具本地获取指定页面二维码
  • 【AI工具】DeepSeek直接生成图片,效果不错
  • 前后端数据序列化:从数组到字符串的旅程(附优化指南)
  • 爬虫:请求头,requests库基本使用
  • 《C++Linux编程进阶:从0实现muduo 》-第8讲.C++面试如何高效获取线程ID
  • nginx如何重启
  • 物联网时代,HMI 设计的创新机遇与挑战
  • 人工智能的三个主义(行为主义、连结主义、符号主义)的整体性关系(并非割裂)
  • 上海这个咖啡文化节首次“走出去”,率本土品牌亮相英国伦敦
  • 雅典卫城上空现“巨鞋”形状无人机群,希腊下令彻查
  • 体坛联播|巴萨提前2轮西甲夺冠,郑钦文不敌高芙止步4强
  • 陕西榆林:全力推进榆林学院升格榆林大学
  • 《歌手2025》公布首发阵容,第一期就要淘汰一人
  • 甘肃发布外卖食品安全违法行为典型案例:一商家用鸭肉冒充牛肉被罚