ARM汇编之乘法指令

news/2024/4/24 3:18:40/文章来源:https://blog.csdn.net/wto9109/article/details/128107432

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.luyixian.cn/news_show_39065.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基础知识java

1.浅克隆和深克隆?深克隆的方法 浅克隆:对象的引用变量只会拷贝地址,不会新建一个对象 深克隆:对象的引用变量也会新建一个对象 实现方式: 浅克隆:实现cloneable接口的clone方法 深克隆:实现Ser…

西门子精彩触摸屏SMART V3组态报警的具体方法示例

西门子精彩触摸屏SMART V3组态报警的具体方法示例 用户自定义报警分为离散量报警和模拟量报警。 离散量报警:离散量对应于二进制数的1位,离散量的两种相反状态可以用1位二进制数的0、1状态来表示。例如:电动机的交流接触器的接通和断开、各种故障信号的出现和消失,都可以用…

flask入门教程之请求与响应

Flask是一个轻量级的web开发框架,依赖jinja2和Werkzeug WSGI服务的一个微型框架。 官方文档:https://flask.palletsprojects.com/en/2.0.x/ 中文文档:http://docs.jinkan.org/docs/flask/ 中文文档的版本会比较低,如果英语OK的话&…

22年-自研-面试题

目录背景题目Activiti回退功能条件分支功能,并行网关、包含网关有没有用到流程流转中,需知会其他人,这些人需同意/做处理(有点流程的感觉),最后所有的意见都要汇总。你的实现思路Redis哪些数据结构&#xf…

【毕业设计】15-基于单片机的交通灯系统设计(原理图+仿真+论文)

【毕业设计】15-基于单片机的交通灯系统设计(原理图、仿真、源代码工程答辩论文答辩PPT) 文章目录【毕业设计】15-基于单片机的交通灯系统设计(原理图、仿真、源代码工程答辩论文答辩PPT)任务书设计说明书摘要设计框架架构设计说明…

【Rust日报】2022-11-29 Wirefish:基于 Tauri 的跨平台数据包嗅探器

Wirefish:基于 Tauri 的跨平台数据包嗅探器作者 stefanodevenuto 通过 Rust Tauri 实现,构建了一个类似 Wireshark 的跨平台数据包嗅探器。这个应用离生产阶段当然还很远,功能和页面上还有很多改善的空间,但是代码组织良好&#…

基于 Hive 的 Flutter 文档类型存储

基于 Hive 的 Flutter 文档类型存储 原文 https://medium.com/gytworkz/document-type-storage-in-flutter-using-hive-a18ea9659d84 前言 长久以来,我们一直使用共享首选项以键对格式在本地存储中存储数据,或者使用 SQLite 在 SQL 数据库中存储数据。 存…

【收藏】安科瑞企业微电网能效管理系统云平台演示账号

安科瑞 李亚俊 Acrel8757 1、AcrelCloud-1000变电所电力运维云平台 网址:https://acrelcloud.cn/ 演示账号:acrel 密码:123456 2、SCADA电力监控系统 网址:http://scada.acrel-eem.com/ 演示账号:acrel 密码:…

Android——使用ContentProvider共享数据

实验名称: 使用ContentProvider共享数据 实验目的: (1)能使用ContentProvider共享数据 (2)能使用内容观察者观察其他程序的数据变化 实验内容及原理&…

Kamiya丨Kamiya艾美捷小鼠血红蛋白ELISA说明书

Kamiya艾美捷小鼠血红蛋白ELISA预期用途: 小鼠血红蛋白ELISA是一种高灵敏度的双位点酶联免疫分析(ELISA)小鼠生物样品中血红蛋白的测定。仅供研究使用。 引言 血红蛋白(HM)是红细胞中的含铁氧转运蛋白。它吸收肺部的…

第10讲:Python列表对象查操作之通过切片获取列表中的元素

文章目录1.切片获取列表中的技术要点1.1切片获取列表中的概念总结1.2.切片的语法格式以及含义3.使用切片方法获取列表中元素3.1.定义一个原始列表列表3.2.当step步长为正数时切片的案例3.3.当step步长为负数时切片的案例3.4.使用负数索引作为切片范围4.将切片后的列表赋值给新的…

【LeetCode】No.103. Binary Tree Zigzag Level Order Traversal -- Java Version

题目链接:https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/ 1. 题目介绍(Binary Tree Zigzag Level Order Traversal) Given the root of a binary tree, return the zigzag level order traversal of its nodes’…

【学习笔记67】JavaScript中的闭包

一、认识函数的过程 1. 定义 在堆内存中开辟一段内存空间(XF001)把函数体的内容,完全百分百的照抄一份,存放在内存空间中(XF001)把内存空间的地址(XF001) 赋值给函数名2. 调用 根据函数名内存储的地址 (XF001) ,去堆内存中找到对应函数会去…

R语言法国足球联赛球员多重对应分析(MCA)

数据集 fooball球员在场上的位置 数据来自国际足联的视频游戏FIFA 。游戏的特点是在游戏的各个方面评价每个球员的能力。等级是量化变量(介于0和100之间),但我们将它们转换为分类变量。所有能力都被编码在4个等级:1.低/ 2.平均/ …

基于单片机技术的自动停车器的设计

目 录 摘 要 I Abstract II 1绪论 1 1.1课题研究背景 1 1.2国内外发展现状 1 1.3汽车自动停车器的研究目的 2 1.4课题研究的意义 2 2汽车停车器的功能设计 3 2.1汽车自动停车器的设计要求 3 2.2停车器的主要功能 3 3汽车自动停车器的硬件设计 5 3.1汽车自动停车器的硬件组成 5 …

数据存储——存储视频

数据存储——存储视频视频的数字化一、视频采样二、视频量化总结:视频数字化的过程视频的数字化 1.视频是图像(帧)在时间上的表示 图象是离散的视频,视频是连续的图像 2.视频储存 每一帧图像或帧被转化为位模式并加以储存 一、视…

三年城市NOH落地100城,毫末智行内部信剑指2025

11月29日,毫末智行董事长张凯、CEO顾维灏联合发布《毫末智行三周岁:三年磨一剑 利刃开新篇》的内部信,提到毫末愿景及战略目标:“让机器智能移动,给生活更多美好。”未来成长为一家产品矩阵覆盖全无人驾驶、机器人等多…

【Android App】Vulkan实现宇宙中旋转雷达动画效果(附源码和原始视频 超详细必看)

需要源码请点赞关注收藏后评论区留言私信~~~ 一、Vulkan简介 Vulkan是一个跨平台的图形绘制接口,被称为下一代OpenGL,因为尽管OpenGL提供了丰富的图形API,但他在底层实现的C代码早已封装起来,由于开发者修改不了底层代码&#xf…

​GENIUS: 根据草稿进行文本生成的预训练模型,可用于多种NLP任务的数据增强...

©PaperWeekly 原创 作者 | 郭必扬 单位 | 上海财经大学信息管理与工程学院AI Lab论文标题:GENIUS: Sketch-based Language Model Pre-training via Extreme and Selective Masking for Text Generation and Augmentation论文作者:Biyang Guo, Yeyu…