当前位置: 首页 > 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 指令》

http://www.dtcms.com/a/104936.html

相关文章:

  • 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 设计的创新机遇与挑战
  • 人工智能的三个主义(行为主义、连结主义、符号主义)的整体性关系(并非割裂)
  • MySQL注入中user-agent和cookie存在的注入
  • OpenCV 从入门到精通(day_03)
  • 化学方程式配平 第33次CCF-CSP计算机软件能力认证
  • WEB安全--文件上传漏洞--黑名单绕过
  • 《Linux运维总结:基于银河麒麟V10操作系统+ARM64架构CPU二进制部署单机ACL版consul v1.18.1》
  • 【linux】管理磁盘——RAID10(含备份)与逻辑卷管理
  • Java线程池详解
  • 用deepseek创建可运行的简单的php框架
  • 如何在k8s中对接s3存储
  • 多线程 - wait notify