热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

ARM指令解析之LSL

在手册的C3.3.9章节里面介绍。LSLLogicalshiftleftLSL(immediate)onpageC6-995打开配套链接C6.2.166LSL(immediat

在手册的C3.3.9章节里面介绍。

LSL Logical shift left LSL (immediate) on page C6-995
打开配套链接=>C6.2.166 LSL (immediate)

提示该指令类似于一个助记符,实际指令是UBFM
LSL , , #
is equivalent to
UBFM , , #(- MOD 32), #(31-)
and is the preferred disassembly when imms + 1 == immr.

那么我们再继续研究 UBFM指令=>C6.2.310 UBFM
该指令实际是无符号数的位域移动指令。

看懂了UBFM之后,我们采用特殊值法分析LSL。
我们假设shift == 26

那么 r = (- MOD 32) = ((-26 + 32) MOD 32) = 6
s = (31-) = (31 - 26) = 5
指令退化成 UBFM , , #6, #5

由于 s <= r, 所以如下规则生效:
If is less than , this copies a bitfield of (+1) bits from the least significant bits of the source register to bit position (regsize-) of the destination register, where regsize is the destination register size of 32 or 64 bits.

也就是 拷贝 Wn的[5:0]位域到Wd的[26:31]
其中, 5是由 imms + 1 == 6共6个位域得来; 26是由32 - 6 == 26得来

参考文档《armv8-芯片手册_arm_v8.4.pdf》


推荐阅读
  • Spring学习(4):Spring管理对象之间的关联关系
    本文是关于Spring学习的第四篇文章,讲述了Spring框架中管理对象之间的关联关系。文章介绍了MessageService类和MessagePrinter类的实现,并解释了它们之间的关联关系。通过学习本文,读者可以了解Spring框架中对象之间的关联关系的概念和实现方式。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 本文介绍了如何使用n3-charts绘制以日期为x轴的数据,并提供了相应的代码示例。通过设置x轴的类型为日期,可以实现对日期数据的正确显示和处理。同时,还介绍了如何设置y轴的类型和其他相关参数。通过本文的学习,读者可以掌握使用n3-charts绘制日期数据的方法。 ... [详细]
  • PHP引用的概念和用法详解
    本文详细介绍了PHP中引用的概念和用法。引用是指不同的变量名访问同一个变量内容,类似于Unix文件系统中的hardlink。文章从引用的定义、作用、语法和注意事项等方面进行了解释和示例。同时还介绍了对未定义变量使用引用的情况,以及在函数和new运算符中使用引用的注意事项。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • 本文讨论了在使用Git进行版本控制时,如何提供类似CVS中自动增加版本号的功能。作者介绍了Git中的其他版本表示方式,如git describe命令,并提供了使用这些表示方式来确定文件更新情况的示例。此外,文章还介绍了启用$Id:$功能的方法,并讨论了一些开发者在使用Git时的需求和使用场景。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • TPL实现Task.WhileAll扩展方法
    文章翻译整理自NikolaMalovic两篇博文:Task.WhileAllAwaitabletaskprogressreporting当Task.WhenAll遇见 ... [详细]
  • 应用场景当遇到数据分类,聚类,预测等场景问题,普通的SQL方法无法解决,需要借助算法这件武器,比如聚类算法,分类算法,预测算法等等,但是手动去研究一个算法比较吃力,有没有那种工具, ... [详细]
  • 文章目录前言pandas主要分为如下几个阶段:表格数据操作:增删改查实现多个表格的处理数据清洗操作:缺失值、重复值、异常值、数据标准化、数 ... [详细]
  • SQL Server 2008 到底需要使用哪些端口?
    SQLServer2008到底需要使用哪些端口?-下面就来介绍下SQLServer2008中使用的端口有哪些:  首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果 ... [详细]
  • 屏幕设计设置默认值
    例如:PARAMETERS:P_werksTYPEmt61d-werksOBLIGATORYDEFAULTCSAS.工厂效果如下:转载于:https: ... [详细]
  • 基于词向量计算文本相似度1.测试数据:链接:https:pan.baidu.coms1fXJjcujAmAwTfsuTg2CbWA提取码:f4vx2.实验代码:imp ... [详细]
  • “千足虫”(TrojanKdcyy.a)的变种病毒正在网络迅速传播。如果用户计算机没有及时升级修补RealPlayer媒体播放器相应的漏洞补丁,那么当用户使用浏览器访问带有“Re ... [详细]
  • 艾西达克FlexiDOCK MB522SPB内置硬盘盒评测
    flexiDOCKMB522SP-B是一款精心打造的无托盘硬盘盒,支持2.5SSD/HDD厚度5mm-9.5mm的硬盘,为了提高产品耐用性,MB522SP-B外壳由金属制成 ... [详细]
author-avatar
润秋赋_137
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有