【ARMv8/v9 常见汇编指令学习 6.1 - armv8 右移指令 LSR 详细介绍】

news/2024/10/19 3:41:42/


请阅读【嵌入式开发学习必备专栏 】


文章目录

armv8 右移指令 LSR

在ARMv8架构中,lsr(Logical Shift Right)指令是一种逻辑右移指令,用于将一个寄存器中的数值向右移动指定的位数。逻辑右移操作会从左侧填充0,这与算术右移(asr,Arithmetic Shift Right)不同,后者会根据符号位填充。lsr指令在进行位操作、快速除法运算(对2的幂次进行除法)或处理位字段时非常有用。

语法

lsr指令的基本语法如下:

lsr <Xd>, <Xn>, #<imm>
  • <Xd>:目的寄存器,存储操作结果。
  • <Xn>:源寄存器,其内容将被右移。
  • #<imm>:立即数,指定右移的位数。

示例

假设我们希望将寄存器X1中的值向右移动2位,并将结果存储到寄存器X0中,可以这样写:

lsr X0, X1, #2

如果X1的内容是0b111100(十进制中的60),执行上述lsr指令后,X0中的内容将是0b1111(十进制中的15)。

注意事项

  • 在使用lsr指令时,需要注意移位数#<imm>的合法范围。对于32位寄存器(W系列),移位数的范围是0到31;对于64位寄存器(X系列),移位数的范围是0到63。
  • 移位操作不仅可以实现快速的乘除法计算(针对2的幂次),还可以用于清理特定的位、设置位字段或者在位层面上操作数据。
  • lsr指令与算术右移指令asr的主要区别在于填充位的处理。lsr总是用0填充空出的位,而asr则根据原数的符号位填充,这在处理带符号整数时非常重要。
    总的来说,lsr是ARMv8指令集中处理位操作的基本指令之一,适用于各种需要逻辑右移操作的场景。

http://www.ppmy.cn/news/1448260.html

相关文章

1. 深度学习笔记--神经网络中常见的激活函数

1. 介绍 每个激活函数的输入都是一个数字&#xff0c;然后对其进行某种固定的数学操作。激活函数给神经元引入了非线性因素&#xff0c;如果不用激活函数的话&#xff0c;无论神经网络有多少层&#xff0c;输出都是输入的线性组合。激活函数的意义在于它能够引入非线性特性&am…

C语言 | Leetcode C语言题解之第61题旋转链表

题目&#xff1a; 题解&#xff1a; struct ListNode* rotateRight(struct ListNode* head, int k) {if (k 0 || head NULL || head->next NULL) {return head;}int n 1;struct ListNode* iter head;while (iter->next ! NULL) {iter iter->next;n;}int add n…

APScheduler定时器使用:django中使用apscheduler,使用mysql做存储后端

一、基本环境 python版本&#xff1a;3.8.5 APScheduler3.10.4 Django3.2.7 djangorestframework3.15.1 SQLAlchemy2.0.29 PyMySQL1.1.0二、django基本设置 2.1、新增一个app 该app用来写apscheduler相关的代码 python manage.py startapp gs_scheduler 2.2、修改配置文件s…

数据结构篇2—《单链表(不带头单向不循环链表)》

文章目录 &#x1f6a9;前言1、单链表的内涵(1) 逻辑结构(2) 物理结构 2、链表的分类3、单链表的具体实现(1) 框架结构(2) SingleLinkList.h头文件的实现(3)SingleLinkList.c源文件的实现①SLTPushBack()尾插函数②SLTPushFront()头插函数③SLTPopBack()尾删函数④SLTPopFront(…

【论文阅读】互连网络的负载平衡路由算法 (GAL, Globally Adaptive Load-balancing 全局自适应负载平衡)

Globally Adaptive Load-balancing 全局自适应负载平衡 GAL: Globally Adaptive Load-balanced routing 全局自适应负载平衡路由 1. GAL on a ring2. GAL on higher dimensional torus3. 实验性能4. 算法稳定性 Stability总结 References Globally Adaptive Load-balancing 全…

Mac M2 本地下载 Xinference

想要在Mac M2 上部署一个本地的模型。看到了Xinference 这个工具 一、Xorbits Inference 是什么 Xorbits Inference&#xff08;Xinference&#xff09;是一个性能强大且功能全面的分布式推理框架。可用于大语言模型&#xff08;LLM&#xff09;&#xff0c;语音识别模型&…

C语言嵌入Lua解释器的方法

Lua语言是一个轻量的脚本语言&#xff0c;可以用很少的资源运行其解释器 C语言是一个很常用的语言&#xff0c;广泛用于嵌入式等底层场景 这两个语言结合&#xff0c;可以应用于嵌入式等多个场景。比如&#xff0c;一些硬件公司会允许开发者使用Lua语言操作其硬件 Lua的安装…

使用FPGA实现串-并型乘法器

介绍 其实我们知道&#xff0c;用FPGA实现乘法器并不是一件很简单的事&#xff0c;而且在FPGA中也有乘法器的IP核可以直接调用&#xff0c;我这里完全就是为了熟悉一些FPGA的语法然后写了这样一个电路。 串-并型乘法器模块 从字面上看&#xff0c;串-并乘法器就是其中一个乘数…