ARM汇编之乘法指令

news2024/11/27 2:35:19

ARM汇编之乘法指令

前言

首先,请问大家几个小小问题,你清楚:

  • 乘法指令有哪些种类呢?
  • ARM乘法指令具体的使用场景又有哪些?

今天,我们来一起探索并回答这些问题。为了便于大家理解,以下是本文的主题大纲:

在这里插入图片描述


正文

ARM存在两类乘法指令,一个是32位乘法指令,得到的最终结果均为32位。另一个则是64位乘法指令,得到的结果都是64位。

32位乘法指令

MUL指令:

MUL指令的作用如下:

  • 实现两个32位数(可以是有符号数,也可以是无符号数)的乘法运算,并将结果最终存入一个32位的寄存器中;
  • 同时还会根据运算结果设置CPSR寄存器中相应的条件标志位;
  • 由于两个32位数相乘结果为64位,而MUL指令仅仅保留了64位结果的低32位,所以无论对于有符号数还是无符号数的操作数而言,MUL指令执行的结果都是相同的。

MUL指令格式与实例展示如下:

在这里插入图片描述

图1 MUL指令格式

MLA指令

MLA指令作用如下:

  • 实现两个32位(可以为无符号数,也可为有符号数)的乘积,再加上第3个操作数,并将结果保存到一个32位的寄存器中;
  • 同时根据运算结果设置CPSR寄存器中相应的条件标志位;

MLA指令格式与实例展示如下:

在这里插入图片描述

图2 MLA指令格式

64位乘法指令

SMULL指令

SMULL指令作用如下:

  • 实现两个32位的有符号数的乘积,将乘积结果的高32位存放到一个32位寄存器的中,乘积结果的低32位存放到另一个32位的寄存器中;
  • 根据运算结果设置CPSR寄存器中的相应条件标志位,考虑到指令执行的效率,指令中的所有操作数都放在寄存器中。

SMULL指令格式与实例展示如下:
在这里插入图片描述

图3 SMULL指令格式

SMLAL指令

SMLAL指令的作用如下:

  • 实现将两个32位的有符号数的64位乘积结果与和中的64位数相加,加法结果的高32位存放到一个32位的寄存器中,加法结果的低32位数存放到另一个32位的中;
  • 同时根据运算结果设置CPSR寄存器中的条件标志位;

SMLAL指令格式与实例展示如下:
在这里插入图片描述

图4 SMLAL指令格式

UMULL指令

UMULL指令的作用如下:

  • 实现两个32位的无符号数的乘积,乘积结果的高32位存放到一个32位的寄存器中,乘积结果的低32位存放到另一个32位的寄存器中;
  • 同时将根据运算结果设置CPSR寄存器中相应的条件标志位;

UMULL指令格式与实例展示如下:

在这里插入图片描述

图5 UMULL指令格式

UMLAL指令

UMLAL指令的作用如下:

  • 实现将两个32位无符号数的64位乘积结果与和中的64位无符号数相加,加法结果的我高32位存放到一个32位寄存器中,加法结果的低32位存放到另一个32位的寄存器中;
  • 同时根据运算结果设置CPSR寄存器中相应的条件标志位;

UMLAL指令格式与实例展示如下:

在这里插入图片描述

图6 UMLAL指令格式

更多精彩内容,敬请关注公号“ADAS与ECU之吾见”!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/50006.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

精准诊断,精确治疗,智芯传感ZXPA侵入式压力传感器为心血管疾病患者带来福音

近日,据联合国《世界人口展望2022》报告显示,地球人口已正式步入“80亿时代”!人口数量增加,从一个侧面反映了人类文明的进步。此外,随着人类预期寿命增加,加上生育率下降,将加剧全球人口老龄化…

基于模型的聚类和R语言中的高斯混合模型

介绍 四种最常见的聚类方法模型是层次聚类,k均值聚类,基于模型的聚类和基于密度的聚类 . 最近我们被客户要求撰写关于聚类的研究报告,包括一些图形和统计输出。 可以基于两个主要目标评估良好的聚类算法: 高组内相似性低组间相…

小程序中的自定义组件以及组件通信、数据共享、插槽、behaviors

一、创建组件和使用自定义组件 1.创建组件 ①在项目的根目录中,鼠标右键,创建components -> 文件夹 ②在新建的components -> 文件夹上,鼠标右键,点击“新建Component ③键入组件的名称之后回车,会自动生成组件对应的4个…

卡尔曼滤波Kalman Filtering:介绍

本文是Quantitative Methods and Analysis: Pairs Trading此书的读书笔记。 控制理论(control theory)是工程学的分支之一,主要应对工程系统控制的问题。比如控制汽车发动机的功率输出,稳定电动机的转速,控制“反应速率”&#x…

企业数字化办公利器——华为云桌面Workspace

随着云办公生态的逐渐成熟,华为云桌面也成为了越来越多企业实现随时随地移动办公的选择。 华为云桌面Workspace是一款SAAS产品,是基于华为云云原生架构设计和构建的云桌面服务,可支持云桌面的快速创建、部署和集中运维管理,免除大…

2023年java代做题目参考整理

为方便毕业设计选题,特别整理以下几百题目供参考 班级风采网站的设计 工资绩效管理系统的开发 电子产品销售网站的设计与实现 酒店预订信息管理系统的设计 成绩管理系统 B2C的电子商务系统(J2EE) B2C购物网站设计 教学网站及网上考试系统的设计与实现 ERP采…

STM32学习之Keil5软件配置

前言:代码编写环境可以让编写者在代码编写上有一定的好处,从而得到高效的代码编写。本次笔者写的是一些市面上常用的嵌入式开发软件Keil5,在初始化使用软件界面需要进行配置的。主要分为五大部分(文本美化、代码编辑技巧、查找和替…

一篇图解Linux内存碎片整理

我们知道物理内存是以页为单位进行管理的,每个内存页大小默认是4K(大页除外)。申请物理内存时,一般都是按顺序分配的,但释放内存的行为是随机的。随着系统运行时间变长后,将会出现以下情况: 要解…

树莓派板载蓝牙使用

1 设置树莓派板载蓝牙 1.1 相关环境安装、配置 sudo apt-get update sudo apt-get install pi-bluetooth bluez bluez-firmware blueman1.2 树莓派蓝牙操作 参考: https://blog.csdn.net/guzhong10/article/details/78574577 有时候会失败, 可以尝试…

[附源码]SSM计算机毕业设计学校缴费系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

文件包含总结

概念 是指将已有的代码以文件形式包含到某个指定的代码中,从而使用其中的代码或者数据,一般是为了方便直接调用所需文件,文件包含的存在使得开发变得更加灵活和方便。 文件包含常见函数 include() // 执行到include时才包含文件&#xff…

区间信息维护与查询【线段树 】 - 原理2 线段树中的“懒操作”

区间信息维护与查询【线段树 】 - 原理2 线段树中的“懒操作” 之前我们已经说了对线段树的点更新和区间查询,若要求对区间中的所有点都进行更新,该怎么办? 若对区间的每个点都进行更新,则时间复杂度较高,可以引入懒…

Cocos2d-x 3D渲染技术 (三)

包围盒算法 说白了就是给物体装进一个盒子里,该盒子可以装下物体。目的是为了进行碰撞检测。 种类: 球状碰撞体立方体碰撞体胶囊碰撞体Mesh碰撞体 实现原理是OBB包围盒。 经常使用的两种碰撞算法是OBB包围盒和AABB包围盒算法。 OBB包围盒算法 方向…

JavaScript -- 01. 基础语法介绍

文章目录基础语法1 Hello World2 JS的编写位置3 基本语法3.1 多行注释3.2 单行注释3.3 区分大小写3.4 空格和换行会被忽略3.5 以分号结尾3.6 字面量3.7 变量3.8 变量的内存结构3.9 常量3.10 标识符基础语法 JS的基本语法 1 Hello World js的三种输出方式 <!DOCTYPE html&g…

精彩回顾 | 云原生系统软件的产业应用

11月18日&#xff0c;2022年第五届中国金融科技产业大会暨第四届中新&#xff08;苏州&#xff09;数字金融应用博览会“基础软件与云原生系统软件”分论坛成功举办。该论坛由由中国计算机学会CTO CLUB&#xff08;苏州&#xff09;承办&#xff0c;江苏省金融科技云原生融合创…

如何用 Python 做一个简单的翻译工具?

前言 平时经常在网上翻译一些单词&#xff0c;突发奇想&#xff0c;可不可以直接调某些免费翻译网站的接口呢&#xff1f;然后做一个图形界面的翻译小工具&#xff1f;下面开始实践 &#xff08;文末送读者福利&#xff09; 1.先找一下有哪些免费翻译的接口 百度了一下关键字…

神经架构搜索的综合调查:挑战和解决方案(二)

4 PERFORMANCE COMPARISON NAS 是一项很有前途的研究。在本节中&#xff0c;我们根据主流搜索方法 [27, 28] 对现有 NAS 的性能进行分类和比较&#xff0c;同时还根据第 3 节报告了它们使用的优化策略。这些搜索方法主要包括以下内容&#xff1a;强化学习&#xff08;RL&#…

操作系统学习笔记(Ⅲ):内存

目录 1 内存管理 1.1 内存基础知识 1.内存 2.进程运行 1.2 内存管理的概念 1.3 覆盖与交换 1.覆盖 2.交换 3.区别 1.4 连续分配管理方式 1.单一连续分配 2.固定分区分配 3.动态分区分配 1.5 动态分区分配算法 1.首次适应算法 2.最佳适应算法 3.最坏适应算法 …

网络安全与IP安全

网络安全 是指网络系统的硬件&#xff0c;软件以及系统中的数据收到的保护。 保护的基本属性为&#xff1a;机密性&#xff0c;身份认证&#xff0c;完整性和可用性&#xff1b; 基本特征&#xff1a;相对性&#xff0c;时效性&#xff0c;相关性&#xff0c;不确定性&#xf…

React项目实战之租房app项目(六)渲染房源列表axios优化封装顶部搜索栏列表找房模块之条件筛选

前言 目录前言一、地图找房模块-获取并渲染房源列表1.1 房源列表示例图1.2 实现步骤1.3 代码示例二、axios优化2.1 问题概述2.2 配置生产环境和开发环境2.3 axios优化三、封装顶部搜索导航栏四、列表找房模块-导入顶部导航栏组件五、列表找房模块-条件筛选&#xff08;上&#…