ARM学习笔记7——乘法指令

发布者:水手谷水手最新更新时间:2020-02-19 来源: eefocus关键字:ARM  乘法指令  寄存器 手机看文章 扫描二维码
随时随地手机看文章

  ARM乘法指令完成两个数据的乘法,两个32位二进制数相乘的结果是64位的4积。

其中:

  1、“RadHi:RdLo”是由RdHi(最高有效32位)和RdLo(最低有效32位)链接形成的64位数,“[31:0]”只选取结果的最低有效32位

  2、简单的赋值由“:=”表示

  3、累加(将右边加到左边)是由“+=”表示


一、MUL乘法指令

  1、作用
    将Rm和Rs中的值相乘,结果的最低32位保存到Rd中
  2、语法格式
    MUL{}{S} ,,
  3、参数说明
    3.1、S:S位(bit[20])决定指令的操作是否影响CPSR中的条件标志位N位和Z位的值。当S=1时,跟新CPSR中的条件标志位的值;当S=0,指令不更新CPSR中的条件标志位。
    3.2、寄存器位目标寄存器
    3.3、:第一个乘数所在寄存器
    3.4、:第二个乘数所在寄存器

  4、举例:

    R1=R2*R3用指令表示为 MUL R1,R2,R3


二、MLA乘-累加指令
  1、作用
    将Rm和Rs中的值相乘,再将乘积加上第三个操作数,结果的最低32保存到Rd中
  2、语法格式
    MLA{}{S} ,,,
  3、参数说明:
    3.1、:寄存器位目标寄存器
    3.2、:第一个乘数所在寄存器
    3.3、:第二个乘数所在寄存器
    3.4、:将要累加到*结果中的第三操作数
  4、举例说明
    R1=R2*R3+10用指令表示为 : 

     MOV  R0,#0x0A
     MLA  R1,R2,R3,R0


三、UMULL无符号数长乘指令
  1、作用
    UMULL为64位无符号乘法指令,指令将Rm和Rs中的值做无符号数相乘,结果的低32位保存到RsLo中,而高32位保存到RdHi中。
  2、语法格式
    UMULL{}{S} ,,,
  3、参数说明
    3.1、:寄存器位目标寄存器,存储结果的低32位值
    3.2、:寄存器位目标寄存器,存储结果的高32位值
    3.3、:第一个乘数寄存器
    3.4、:第二个乘数寄存器
  4、举例
    完成(R1,R0)=R5*R8操作
    UMULL R0,R1,R5,R8


四、UMLAL无符号长乘-累加操作指令
  1、作用
    UMLAL位64位无符号长乘-累加指令,指令将Rm和Rs中的值做无符号数相乘,64位乘积与RdHi,RdLo相加,结果的低32位保存到RsLo中,而高32位保存到RdHi中。
  2、语法格式
    UMLAL{}{S} ,,,

  3、举例
    完成(R1,R0)=R5*R8+(R1,R0)操作
    UMLAL R0,R1,R5,R8


五、SMULL有符号数长乘操作指令
  1、作用
    SMULL64位有符号长乘指令,指令将Rm和Rs中的值做有符号数相乘,结果的低32位保存到RsLo中,而高32位保存到RdHi中
  2、语法格式
    SMULL{}{S} ,,,
  3、实例
    完成(R3,R2)=R7*R6  
    SMULL R2,R3,R7,R6


六、SMLAL有符号长乘-累加操作指令
  1、作用
    SMLAL为64位有符号长乘法指令,指令将Rm和Rs中的值做有符号数相乘,64位乘积与RdHi,RdLo相加,结果的低32位保存到RsLo中,而高32位保存到RdHi中。
  2、语法指令
    SMLAL{}{S} ,,,
  3、实例
    完成(R3,R2)=R7*R6+(R3,R2)
    SMLAL R2,R3,R7,R6

关键字:ARM  乘法指令  寄存器 引用地址:ARM学习笔记7——乘法指令

上一篇:ARM学习笔记8 通用寄存器和存储器内容交换指令和软中断指令
下一篇:ARM学习笔记6——程序状态寄存器访问指令

推荐阅读最新更新时间:2024-11-12 10:47

ARM7单片机(学习ing)—(一)、输入/输出端口GPIO编程—01
一、输入/输出端口GPIO编程 一—(01)、一位数码管静态显示(通过74HC595实现) 1、管脚连接模块 首先介绍一下LPC2106的相关的管脚~~ 特性:可以实现独立的管脚配置 应用:管脚连接模块的用途是将管脚配置为需要的功能(这一章节主要就是介绍GPIO功能~~别的会在接下来的章节中分别予以介绍~~) 描述:管脚连接模块可以使所选管脚具有一个以上的功能。配置寄存器控制多路开关来连接管脚与片内外设。外设在激活和任何相关只读使能之前必须连接到适当的管脚。任何使能的外设功能如果没有映射到相应的管脚,则被认为是无效的。 寄存器的描述: 管脚连接模块包括两个寄存器: 管脚功能寄存器0:(PINSEL0) PINSEL0寄存器按
[单片机]
<font color='red'>ARM</font>7单片机(学习ing)—(一)、输入/输出端口GPIO编程—01
基于ARM Cortex-M3的小型化远程监控智能电源系统
传统的电源维护采用的是人工手动式维护管理模式,而 智能 电源监控 系统以嵌入式技术、计算机技术、通信技术等为基础,实现了电源系统向智能化、自动化管理模式的转变。 随着当代科技的日益发展,数量巨大的各类设备的电源维护管理需要投入大量的人力、物力,像通信/ 电力设施所处环境越来越复杂,人烟稀少、交通不便、危险度高等都增大了维护的难度和费用。这对电源设备的监控管理提出了更高的要求。电源监控系统需要对系统中各状态量进行监视,还必须能对各供电支路进行控制和管理。维护管理人员可远程进行数据查询、控制等维护工作,并可利用友好的人机界面方便地得到需要的信息。 数字化技术的发展表现出了传统技术无法比拟的优势,整个电源监控系统的信号采样、处理、控
[电源管理]
基于<font color='red'>ARM</font> Cortex-M3的小型化远程监控智能电源系统
MSP430CPU介绍
总结 1. CPU介绍 MSP430的CPU具有诸如计算分支、表格处理、支持高级语言(C)等现代处理器特征,其特点包括: 1.RISC精简指令集 2.正交体系结构 3.包括程序计数器PC、堆栈寄存器SP、状态寄存器SR在内的全部寄存器可访问 3.单周期寄存器操作 4.更大的寄存器容量以减少内存访问 5.20位地址总线允许直接访问,在整个内存范围内进行分支,而不进行分页。 6.16位数据总线允许长字访问 7.提供常数发生器产生6个常用常数以减少代码大小 8.直接内存到内存传送不需要中间寄存器 9.字节、字、20位地址直接访问 2. 中断 中断向量为16位地址,可指向低64KB内存,这也意味着中断服务程序必须位于低64KB的内存空
[单片机]
MSP430CPU介绍
STM32学习008_ARM产品浅析
ARM是英国Acorn有限公司设计的基于RSIC的一款微处理器,全称为Acorn RISC Machine,ARM处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。 ARM处理器的三大特点是:耗电少功能强、16位/32位双指令集和合作伙伴众多。 1、体积小、低功耗、低成本、高性能; 2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件; 3、大量使用寄存器,指令执行速度更快; 4、大多数数据操作都在寄存器中完成; 5、寻址方式灵活简单,执行效率高; 6、指令长度固定。 ARM处理器共有37个寄存器,被分为若干个组(BANK),这
[单片机]
STM32学习008_<font color='red'>ARM</font>产品浅析
密谋取代x86!运行EXE的ARM芯片技术非高通独占
不久之前高通对外正式宣布称自家是目前唯一一家与ARM达成协议,获得推出可运行Windows系统芯片的授权许可。不过ARM高管近日澄清称,ARM并没有阻止授权芯片厂商开发可运行x86系统的芯片,而且法律上也没有限制。ARM还坦承在去年被日本软银收购之后,就已经置顶了“所有计算设备”范畴的规划,以扩大公司的业务范围。 不过虽然高通和ARM之间没有这明确的协议规定,但在微软和高通之间可就不一定了,早期的WIndows手机和ARM芯的平板基本全部是与高通合作的产物。在此前跨平台的Windows RT失败后,微软并没有放弃,此次在ARM芯上运行x86版的EXE程序是通过在ARM芯片的基础上开发模拟器实现的。虽然目前不知道效率如何,AR
[嵌入式]
密谋取代x86!运行EXE的<font color='red'>ARM</font>芯片技术非高通独占
arm:启动代码判断是从nand启动还是从norflash启动,拷贝程序到内存的过程
一、nand启动和nor启动:   CPU从0x00000000位置开始运行程序。   1、nand启动:   如果将S3C2440配置成从NANDFLASH启动(将开发板的启动开关拔到nand端,此时OM0管脚拉低)S3C2440的Nand控制器会自动把Nandflash中的前4K代码数据搬到内部SRAM中(地址为0x40000000),同时还把这块SRAM地址映射到了0x00000000地址。CPU从0x00000000位置开始运行程序。   2、如果将S3C2440配置成从Norflash启动(将开发的启动开关拔到nor端,此时OM0管脚拉高),0x00000000就是norflash实际的起始地址,norf
[单片机]
<font color='red'>arm</font>:启动代码判断是从nand启动还是从norflash启动,拷贝程序到内存的过程
手把手教你写S12XS128程序(15)--A/D寄存器说明5
5、ATD0状态寄存器5---ATD0START0、ATD0START0 ATD0START0反映当前的转换通道、A/D转换是否结束、是否有外部触发等; ATD0START1反映转换序列中相应的转换是否完成。寄存器ATD0START0、 SCF ---转换序列完成标志 在单次转换模式时,当转换完成后置位 (SCAN = 0) 在连续转换模式时,当第一次转换完成后置位 (SCAN = 1),当AFFC = 0,写 1 清零。 ETORF ---外部触发覆盖标志 如果在转换过程中高/低电平出现,置位 FIFOR 当结果寄存器在读出之前已经被写入时,置位 ( CCF 没有清零) CC 转换计数器---
[单片机]
ARM920T看门狗定时器、系统时钟
看门狗定时器 原理:看门狗每隔一定时间【假设为3小时】就会饿,每次饿时都会叫,如果你不想让它叫,只要保证每隔3小时喂一次狗就可以。 递减计数器为0时会自动重启控制器。 用途: 1.用于解决远程控制器在出现电磁干扰、噪声、系统错误等外界条件造成的系统死机等不正常运行问题。 2.可以通过设置产生定时的中断信号。 结论: 1.设置WTCON 设置看门狗定时器的使能; 2.设置WTCON 和 位来设置看门狗控制器的工作频率。 3.设置WTCON 和WTCON 使能产生中断和复位信号。 4.设置WTDAT设置计数值。 --------------------------------------------------------------
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved