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

汇编——位移指令

基础区分

逻辑移位:无视符号位,空位统一补 0,多用于无符号数
算术移位:保留符号位,符号位不变,多用于有符号数(补码)
循环移位:移出的位绕回另一端,数据不丢失;部分结合进位标志 CF

左移指令 SHL / SAL

  1. SHL 逻辑左移
    格式:SHL 寄存器/内存,移位次数
    规则:所有位整体左移,右侧空位补 0,最高位移入CF
    等效:左移 1 位 = 数值 × 2;左移 n 位 = 数值 × 2n
    示例:
    mov al, 00001011B
    shl al, 1 //结果:00010110B,CF=0
    shl al, 2 //等价 ×4
  2. SAL 算术左移
    格式:SAL 寄存器/内存, 移位次数
    规则、效果、用法和 SHL 完全一致
    原因:左移时符号位会一同移动,算术 / 逻辑无区别,有符号数乘 2 优先用 SAL

右移指令 SHR / SAR

  1. SHR 逻辑右移(无符号数)
    格式:SHR 寄存器/内存, 移位次数
    规则:所有位整体右移,左侧空位补 0,最低位移入CF
    等效:右移 1 位 = 数值 ÷ 2(取整);右移 n 位 = 数值 ÷ 2n
    示例:
    mov al, 00001010B
    shr al, 1 //结果:00000101B,CF=0
  2. SAR 算术右移(有符号数,补码)
    格式:SAR 寄存器/内存, 移位次数
    规则:整体右移,左侧空位补原符号位(最高位),最低位移入CF
    作用:保证正负号不变,实现有符号数除以2
    示例:
    mov al, 10001010B //有符号负数
    sar al, 1 //高位补1,符号不变,等价 ÷2
    关键区别:
    正数:SHR 和 SAR 结果一致
    负数:SHR 高位补 0(符号错乱),SAR 高位补 1(符号保留)

循环移位指令(数据循环,不丢位)

  1. ROL 循环左移
    格式:ROL 寄存器/内存, 移位次数
    规则:
  2. 全体位左移
  3. 最高位 → 同时送到最低位 和 CF
    示例:
    mov al, 10000001B
    rol al, 1 //变为 00000011B,CF=1
  4. ROR 循环右移
    格式:ROR 寄存器/内存, 移位次数
    规则:
  5. 全体位右移
  6. 最低位 → 同时送到最高位 和 CF

带进位循环移位(结合 CF 一起循环)

  1. RCL 带进位循环左移
    格式:RCL 寄存器/内存, 移位次数
    规则:
  2. 整体左移,左侧空出位用原 CF 值填充
  3. 移出的最高位,更新为新的 CF
  4. RCR 带进位循环右移
    格式:RCR 寄存器/内存, 移位次数
    规则:
  5. 整体右移,右侧空出位用原 CF 值填充
  6. 移出的最低位,更新为新的 CF
    用途:多用于超大数移位,借助 CF 衔接多段寄存器数据

补充规则

  1. 移位次数:
    80386 及以上,可直接写立即数(shl eax,2 )
    老式汇编, 把移位位数先存入 CL,再写指令 (mov cl, 3 shl eax, cl)
  2. 标志位:所有移位指令都会修改 CF
  3. 移位后结果为 0 则 ZF=1
  4. 用法速记
    ● 无符号数乘除:SHL / SHR
    ● 有符号数乘除:SAL / SAR
    ● 数据循环不丢位:ROL / ROR
    ● 结合进位做大数移位:RCL / RCR
http://www.jsqmd.com/news/1093031/

相关文章:

  • 考验AI的“自我“-AI对《红楼梦》后40回的改写(30)
  • ReAct Inside —— 从 Message 到 State,看懂 AI Agent 的工作原理
  • Hutool 的 `TimedCache` 到期会自动清理吗? ——————hutool cache的“惰性清理“和“定期清理“
  • 递归函数Recursive Function
  • 如何评价GLM-5.2?
  • 联邦学习侧信道攻击:FLARE框架解析与防御
  • 成功企业的衰亡密码:从“看不见的癌症”到真正的长期主义
  • agency-agents-zh大更新:一句话,让 216个 AI 专家组队替你干活,上线桌面端和web端了!已开源
  • 每日一个开源项目(第145篇):Trellis - 把项目记忆、规范和任务上下文持久化进代码仓库
  • 2026好用的视频去水印工具电脑手机推荐,免费无广告精选
  • 量子约束优化搜索框架CBQS解析与应用
  • 计算机毕业设计之基于SSM框架技术的超市货品销售预警平台的设计与实现
  • 别让AI一直“读心“:冲突触发式心智理论的因果模型
  • 内网 Web 服务断外网后白屏卡顿?全链路排查手册与根治方案
  • 盘点优质虚拟资源货源,这家老牌平台凭什么让我死磕
  • 女性站长学SEO比男性更有优势吗?
  • 数据分析中常用的回归分析是什么?它的应用场景有哪些?
  • BCH码介绍
  • 《HarmonyOS技术精讲-Core File Kit(文件基础服务)》第1篇:文件沙箱概念与核心架构
  • 这份榜单够用!2026年最流行AI论文平台榜单,免费高效产出合规稿
  • 跳出空白文档内耗:Paperxie 毕业论文智能写作,搭建分层式学术创作闭环
  • 2026上海专业招商场地推荐:选址就该这样选
  • 超小尺寸,超高算力:明远智睿RV1126B开发板全面评测
  • 基于大数据爬虫+Hadoop+Spark的食品数据分析预测可视化系统
  • 2026互联网一线大厂Java八股文面试题汇总
  • 收藏 | 程序员小白也能懂的大模型RAG实践:从Demo到生产环境的8大难点解析
  • 普通漏洞和零日漏洞(zero-day vulnerability)区别
  • 网约车后端实战:Gin 网关下的实时订单系统设计与踩坑
  • 拒绝急于求成:2026年GEO优化周期如何科学规划与预期管理
  • 因果性幻觉:A和B之间隔着一万个变量,也能被讲成因果关系。