MLA指令实现两个32位的数(可以为无符号,也可以为有符号)的乘积,再将乘积加上第3个操作数,并将结果存放到一个32位的寄存器中,同时可以根据运算结果设置CPSR寄存器中相应的条件标志位。考虑指令执行的效率,指令中所有操作数都存放在寄存器中。

指令的编码格式

指令的语法格式

MLA{< cond >} {S} < Rd >, < Rm >, < Rs >, < Rn >

其中:

  • < cond >为指令执行的条件码。当忽略< cond >时,指令为无条件执行。
  • S决定指令的操作是否影响CPSR中的条件标志位N位和Z位的值。当有S时,指令更新CPSR中的条件标志位的值;当没有S时,指令不更新CPSR中的条件标志位的值。
  • < Rd >寄存器为目标寄存器。
  • < Rm >寄存器为第1个乘数所在的寄存器。
  • < Rs >为第2个乘数所在的寄存器。
  • < Rn >为第3个操作数所在的寄存器,该操作数是一个加数。

指令操作的伪代码

if ConditionPass(cond) thenRd=(Rm * Rs + Rn)[31:0]if S==1 thenN Flag=Rd[31]Z Flag=if Rd == 0 then 1 else 0C Flag=unaffectedV Flag=unaffected

指令的使用

由于两个32位的数相乘的结果位64位,而MLA指令仅仅保存了64位结果的低32位,所以对于带符号的和无符号的操作数来说,MLA指令执行的结果相同。

对于ARMv5及以上的版本,MLAS指令不影响CPSR寄存器中的C条件标志位。对于以前的版本,MLAS指令执行后,CPSR寄存器中的C条件标志位数值是不确定的。

寄存器< Rm >、< Rn >及< Rd >为 R15时,指令执行的结果不可预期。

示例

MLA R0, R1, R2, R3  ;R0 = R1 * R2 + R3

刘帅嵌入式系统-MLA指令相关推荐

  1. 无符号有符号乘法_刘帅嵌入式系统-乘法指令

    ARM有两类乘法指令:一类为32位的乘法指令,即乘法操作的结果为32位:另一类为64位的乘法指令,即乘法操作的结果为64位.两类指令共有以下6条. MUL:32位乘法指令 MLA:32位带加数的乘法指 ...

  2. 刘帅嵌入式系统-CMN基于相反数的比较指令

    CMN指令将寄存器Rn中的值加上< shifter_operand > 表示的数值,根据操作的结果更新CPSR中相应的条件标志位,后面的指令就可以根据CPSR中相应的条件标志位来判断是否执 ...

  3. 刘帅嵌入式系统-EOR逻辑异或操作指令

    EOR指令将< shifter_operand > 表示的数值与寄存器< Rn >值按位做逻辑异或操作,并把结果保存到目标寄存器< Rd > 中,同时根据操作的结果 ...

  4. 刘帅嵌入式系统-SUB减法指令

    SUB指令从寄存器< Rn >中减去< shifter_operand > 表示的数值,并把结果保存到目标寄存器< Rd > 中,同时根据操作的结果更新CPSR中相 ...

  5. 刘帅嵌入式系统-BLX(1)

    第一种格式的BLX指令记作BLX(1),BLX(1)指令从ARM指令集跳转到指定的目标地址,并将程序状态切换为Thumb状态,同时将PC寄存器的内容复制到LR寄存器中. 本指令属于无条件执行的指令(即 ...

  6. 刘帅嵌入式系统-BLX(2)

    第二种格式的BLX指令记作BLX(2).BLX(2)指令从ARM指令集跳转到指定的目标地址,目标地址的指令可以是ARM指令,也可以是Thumb指令.目标地址放在指令中的寄存器中,该地址的bit[0]值 ...

  7. 东信社保卡医保卡底层指令通讯协议(支持单片机、Linux、ARM等嵌入式系统使用)

    东信社保卡读卡器医保卡读卡器底层指令通讯协议,本协议适用有底层开发经验的技术人员使用,支持单片机.Linux.ARM等嵌入式系统使用. 支持的产品型号有:东信EST-100身份证社保卡读卡器.东信ES ...

  8. 嵌入式系统----原理与应用技术考点

    嵌入式系统概论 嵌入式系统的定义: 以应用为中心 以计算机技术为基础 软/硬件可裁剪 满足应用系统对功能.可靠性.成本.体积和功耗的要求 与通用计算机相比,嵌入式系统具有一下重要特征: 通常是面向特定 ...

  9. 嵌入式系统期末复习重点-西北大学(欧阳老师给的)

    第一章 嵌入式系统概论 嵌入式系统的定义 嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗严格要求的专用计算机系统.它具有自主的信息处理能力. ...

  10. 使嵌入式系统调试更容易:有用的硬件和软件提示

    使嵌入式系统调试更容易:有用的硬件和软件提示 Making embedded system debug easier: useful hardware & software tips 嵌入式系 ...

最新文章

  1. 一站式开源测试平台:MeterSphere
  2. 项目管理知识体系实战专家胡立
  3. 使用Xcode和Instruments调试解决iOS内存泄露【转】
  4. [C++STL]queue容器用法介绍
  5. 快速了解C#接口(Interface)
  6. 从0开始安卓开发之路_Android Studio安装包
  7. android高效简洁的代码实现直播礼物效果
  8. 163邮箱服务器注册不了怎么办,outlook邮箱添加163邮箱账户失败该怎么办?
  9. ubuntu 校准时间_ubuntu设置系统时间与网络时间同步
  10. L44.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- su和visudo
  11. openssl 1.0.2 漏洞修复指南
  12. mapgis明码文件转为点线面文件_Geomap格式转化.doc
  13. R countcolors包:像素级分析处理图片
  14. 2020年有寓意的领证日期_2020年领证的好日子-2020有寓意的领证日期【蜜匠婚礼】...
  15. Reactor模式简单实现与理解
  16. jsp新代码第45课
  17. 2010级清华计算机专业校友,清华计算机系主任答2010高考考生问-清华大学.PDF
  18. PS2游戏机硬盘启动制作教程
  19. 亚洲小姐全球总冠军吴丹,《猎枭生死线》荧幕初吻超越柳岩徐冬冬
  20. 2022宁夏杯D 包装纸箱设计

热门文章

  1. 有哪些免费不收费的文件数据恢复软件?
  2. 校园学生管理系统设想
  3. Python爆破RAR密码
  4. 一篇文章带你读懂水晶易表的简介及其安装初识
  5. HEX、RGB颜色表
  6. 各种网络协议的类型、优缺点、作用
  7. linux下面的j2sdk的安装和配置过程!
  8. CSS border 属性
  9. 计算机浏览器,有哪些好用的PC浏览器?
  10. FC经典游戏600合集for mac(小霸王游戏) 中文版