汇编学习之《移位指令》
这章节学习前需要回顾之前的标志寄存器的内容:
汇编学习之《标志寄存器》
算数移位指令
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 指令》
相关文章:
汇编学习之《移位指令》
这章节学习前需要回顾之前的标志寄存器的内容: 汇编学习之《标志寄存器》 算数移位指令 SAL (Shift Arithmetic Left)算数移位指令 : 左移一次,最低位用0补位,最高位放入EFL标志寄存器的CF位(进位标志) OllyDbg查看…...
Nature Communications上交、西湖大学、复旦大学研发面向机器人多模式运动的去电子化刚弹耦合高频自振荡驱动单元
近年来,轻型仿生机器人因其卓越的运动灵活性与环境适应性受到国际机器人领域的广泛关注。然而,现有气动驱动器普遍受限于低模量粘弹性材料的回弹滞后效应与能量耗散特性,加之其"非刚即柔"的二元结构设计范式,难以同时满…...
对备忘录模式的理解
对备忘录模式的理解 一、场景1、题目【[来源](https://kamacoder.com/problempage.php?pid1095)】1.1 题目描述1.2 输入描述1.3 输出描述1.4 输入示例1.5 输出示例 2、理解需求 二、不采用备忘录设计模式1、代码2、问题3、错误的备忘录模式 三、采用备忘录设计模式1、代码1.1 …...
【国产突围!致远电子ZXDoc如何打破Vector垄断,成为新能源车研发“神器”?】
摘要:在汽车“新四化”浪潮下,国产汽车总线工具链软件正迎来高光时刻!广州致远电子推出的ZXDoc以全栈自主化技术硬核国产芯片生态,斩获2024金辑奖“最佳技术实践应用奖”,成为新能源车企研发工程师的“效率倍增器”。本…...
【数据结构】图的基本概念
图的定义 通俗来说一堆顶点被一堆线连在一起,这一坨顶点与线的集合 目录 图的定义 术语 有向图与无向图 简单图与多重图 度、入度与出度 路径与回路 路径长度与距离 子图 连通、连通图与连通分量 强连通、强连通图与强连通分量 完全图 生成树与生成森林 权…...
常见的HR面问题汇总
⚠️注意:以下仅是个人对问题的参考,具体情况视个人情况而定~ 1. 你觉得你有哪些优点和缺点? 优点:学习能力强,遇到问题会主动思考和查找解决方案;有责任心,对待工作认真负责&#…...
【微知】ARM CPU是如何获取某个进程的页表的?(通过TTBR寄存器,MMU进行处理)
ARM CPU 中用于存储访问某个进程的页表的寄存器是 TTBR(Translation Table Base Register)。有TTBR0和TTBR1。TTBR0用户空间的一级页表基址,1是内核页表。cpu访存获取物理地址流程 如果mmu发现tlb里面miss就通过pdbg拿pa物理地址。Intel是CR3…...
从零开始:在Qt中使用OpenGL绘制指南
从零开始:在Qt中使用OpenGL绘制指南 本文只介绍基本的 QOpenGLWidget 和 QOpenGLFunctions 的使用,想要学习 OpenGL 的朋友,建议访问经典 OpenGL 学习网站:LearnOpenGL CN 本篇文章,我们将以绘制一个经典的三角形为例&…...
激光加工中平面倾斜度的矫正
在激光加工中,加工平面的倾斜度矫正至关重要,直接影响加工精度和材料处理效果。以下是系统的矫正方法和步骤: 5. 验证与迭代 二次测量:加工后重新检测平面度,确认残余误差。 反馈优化:根据误差分布修正补偿…...
Android学习总结之应用启动流程(从点击图标到界面显示)
一、用户交互触发:Launcher 到 AMS 的跨进程通信 1. Launcher 处理点击事件(应用层) 当用户点击手机桌面上的应用图标时,Launcher(桌面应用)首先捕获点击事件。每个图标对应一个启动 Intent(通…...
rdiff-backup备份
目录 1. 服务器备份知识点 1.1 备份策略 1.2 备份步骤和宝塔面板简介 1.3 CentOS7重要目录 2. 备份工具 2.1 tar -g 备份演示 2. rsync 备份演示 3. rdiff-backup 备份演示 4. 差异和优缺点 3. rdiff-backup安装和使用 3.1 备份命令rdiff-backup 3.2 恢复命令--…...
PE结构(十五)系统调用与函数地址动态寻找
双机调试 当需要分析一个程序时,这个程序一定是可以调试的,操作系统也不例外。在调试过程中下断点是很重要的 当我们对一个应用程序下断点时,应用程序是挂起的。但当我们对操作系统的内核程序下断点时,被挂起的不是内核程序而是…...
webrtc 本地运行的详细操作步骤 1
前言 选修课的一个课程设计,需要我们本地运行这个开源项目,给我的压力非常大,因为确实不是很熟练这种操作。但是还是得做。谨以此文,纪念这个过程。 之前自己在 github 上面看到有代码仓库,但是比较复杂,在…...
kali——httrack
目录 前言 使用教程 前言 HTTrack 是一款运行于 Kali Linux 系统中的开源网站镜像工具,它能将网站的页面、图片、链接等资源完整地下载到本地,构建出一个和原网站结构相似的离线副本。 使用教程 apt install httrack //安装httrack工具 httrac…...
力扣经典算法篇-6-轮转数组
题干: 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步…...
【计算机网络】Linux配置SNAT/DNAT策略
什么是NAT? NAT 全称是 Network Address Translation(网络地址转换),是一个用来在多个设备共享一个公网 IP上网的技术。 NAT 的核心作用:将一个网络中的私有 IP 地址,转换为公网 IP 地址,从而…...
火山引擎coze用户市场
火山引擎 **Coze**(扣子)的用户市场主要集中在 **需要快速构建和部署智能对话应用的企业及开发者群体**,覆盖多个行业与场景。以下是具体分析: --- ### **一、核心用户群体** 1. **企业用户** - **互联网/科技公司**&#…...
qt designer 软件主题程序设计
对于使用Qt Designer设计的界面,主题切换的实现需要结合Qt的信号槽机制、样式表动态加载以及资源管理。以下是针对Qt Designer UI的详细解决方案: 一、UI文件与主题系统的整合架构 二、核心实现步骤 1. 动态样式表加载系统 // ThemeManager.h class …...
2025/4/2 心得
第一题 题目描述 给定1001个范围在[1,1000]的数字,保证只有1个数字重复出现2次,其余数字只出现1次。试用O(n)时间复杂度来求出出现2次的这个数字。 不允许用数组 输入格式 第一行:一个整数1001; 第二行:1001个用…...
AI安全:构建负责任且可靠的系统
AI已成为日常生活中无处不在的助力,随着AI系统能力和普及性的扩展,安全因素变得愈发重要。从基础模型构建者到采用AI解决方案的企业,整个AI生命周期中的所有相关方都必须共同承担责任。 为什么AI安全至关重要? 对于企业而言&…...
VUE+SPRINGBOOT+语音技术实现智能语音歌曲管理系统
语音控制歌曲的播放、暂停、增删改查 <template><div class"Music-container"><div style"margin: 10px 0"><!--检索部分--><el-input style"width: 200px;" placeholder"请输入歌曲名称"v-model"sen…...
使用 SignalR 在 .NET Core 8 最小 API 中构建实时通知
示例代码:https://download.csdn.net/download/hefeng_aspnet/90448094 介绍 构建实时应用程序已成为现代 Web 开发中必不可少的部分,尤其是对于通知、聊天系统和实时更新等功能。SignalR 是 ASP.NET 的一个强大库,可实现服务器端代码和客户…...
Kotlin 集合函数:map 和 first 的使用场景
Kotlin 提供了丰富的集合操作函数,使开发者可以更加简洁、高效地处理数据。其中,map 和 first 是两个常用的函数,分别用于转换集合和获取集合中的第一个元素。 1. map 的使用场景 场景 1:对象列表转换 在开发中,我们…...
Spring Cloud 框架为什么能处理高并发
Spring Cloud框架能够有效处理高并发场景,核心在于其微服务架构设计及多组件的协同作用,具体机制如下: 一、分布式架构设计支撑高扩展性 服务拆分与集群部署 Spring Cloud通过微服务拆分将单体系统解耦为独立子服务,每个服务可独…...
【Python爬虫高级技巧】BeautifulSoup高级教程:数据抓取、性能调优、反爬策略,全方位提升爬虫技能!
大家好,我是唐叔!上期我们聊了 BeautifulSoup的基础用法 ,今天带来进阶篇。我将分享爬虫老司机总结的BeautifulSoup高阶技巧,以及那些官方文档里不会告诉你的实战经验! 文章目录 一、BeautifulSoup性能优化技巧1. 解析…...
复古未来主义屏幕辉光像素化显示器反乌托邦效果PS(PSD)设计模板样机 Analog Retro-Futuristic Monitor Effect
这款模拟复古未来主义显示器效果直接取材于 90 年代赛博朋克电影中的黑客巢穴,将粗糙的屏幕辉光和像素化的魅力强势回归。它精准地模仿了老式阴极射线管显示器,能将任何图像变成故障频出的监控画面或高风险的指挥中心用户界面。和……在一起 2 个完全可编…...
Spring Boot + MySQL + MyBatis(注解和XML配置两种方式)集成Redis的完整启用及配置详解,包含代码示例、注释说明和表格总结
以下是 Spring Boot MySQL MyBatis(注解和XML配置两种方式)集成Redis的完整启用及配置详解,包含代码示例、注释说明和表格总结: 1. 添加依赖 在pom.xml中添加Spring Boot对MySQL、MyBatis和Redis的支持依赖: <d…...
Webpack vs Vite:现代前端构建工具的巅峰对决与选型指南
构建工具的进化革命当雪碧瓶上的水珠折射出前端工程的变迁史,Webpack与Vite的决战已然成为现代前端开发的分水岭。这场始于打包理念的革命,正在重塑整个前端生态的底层逻辑。本文将从原理架构、性能表现、开发体验三个维度,结合真实项目数据对…...
2023-2024总结记录
概括经历 这一年算是一个人生节点,2023年花了一整年的时间在准备考研,基本上等于一个人奋战,我不怎么去图书馆,只呆在无人的实验室,还好有对象陪我,不然可能要抑郁了。作息上还是很随意,什么时…...
技术驱动革新,强力巨彩LED软模组助力创意显示
随着LED显示技术的不断突破,LED软模组因其独特的柔性特质和个性化显示效果,正逐渐成为各类应用场景的新宠。强力巨彩软模组R3.0H系列具备独特的可塑造型能力与技术创新,为商业展示、数字艺术、建筑装饰等领域开辟全新视觉表达空间。 LED…...
