刘帅嵌入式系统-MLA指令
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指令相关推荐
- 无符号有符号乘法_刘帅嵌入式系统-乘法指令
ARM有两类乘法指令:一类为32位的乘法指令,即乘法操作的结果为32位:另一类为64位的乘法指令,即乘法操作的结果为64位.两类指令共有以下6条. MUL:32位乘法指令 MLA:32位带加数的乘法指 ...
- 刘帅嵌入式系统-CMN基于相反数的比较指令
CMN指令将寄存器Rn中的值加上< shifter_operand > 表示的数值,根据操作的结果更新CPSR中相应的条件标志位,后面的指令就可以根据CPSR中相应的条件标志位来判断是否执 ...
- 刘帅嵌入式系统-EOR逻辑异或操作指令
EOR指令将< shifter_operand > 表示的数值与寄存器< Rn >值按位做逻辑异或操作,并把结果保存到目标寄存器< Rd > 中,同时根据操作的结果 ...
- 刘帅嵌入式系统-SUB减法指令
SUB指令从寄存器< Rn >中减去< shifter_operand > 表示的数值,并把结果保存到目标寄存器< Rd > 中,同时根据操作的结果更新CPSR中相 ...
- 刘帅嵌入式系统-BLX(1)
第一种格式的BLX指令记作BLX(1),BLX(1)指令从ARM指令集跳转到指定的目标地址,并将程序状态切换为Thumb状态,同时将PC寄存器的内容复制到LR寄存器中. 本指令属于无条件执行的指令(即 ...
- 刘帅嵌入式系统-BLX(2)
第二种格式的BLX指令记作BLX(2).BLX(2)指令从ARM指令集跳转到指定的目标地址,目标地址的指令可以是ARM指令,也可以是Thumb指令.目标地址放在指令中的寄存器中,该地址的bit[0]值 ...
- 东信社保卡医保卡底层指令通讯协议(支持单片机、Linux、ARM等嵌入式系统使用)
东信社保卡读卡器医保卡读卡器底层指令通讯协议,本协议适用有底层开发经验的技术人员使用,支持单片机.Linux.ARM等嵌入式系统使用. 支持的产品型号有:东信EST-100身份证社保卡读卡器.东信ES ...
- 嵌入式系统----原理与应用技术考点
嵌入式系统概论 嵌入式系统的定义: 以应用为中心 以计算机技术为基础 软/硬件可裁剪 满足应用系统对功能.可靠性.成本.体积和功耗的要求 与通用计算机相比,嵌入式系统具有一下重要特征: 通常是面向特定 ...
- 嵌入式系统期末复习重点-西北大学(欧阳老师给的)
第一章 嵌入式系统概论 嵌入式系统的定义 嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗严格要求的专用计算机系统.它具有自主的信息处理能力. ...
- 使嵌入式系统调试更容易:有用的硬件和软件提示
使嵌入式系统调试更容易:有用的硬件和软件提示 Making embedded system debug easier: useful hardware & software tips 嵌入式系 ...
最新文章
- 一站式开源测试平台:MeterSphere
- 项目管理知识体系实战专家胡立
- 使用Xcode和Instruments调试解决iOS内存泄露【转】
- [C++STL]queue容器用法介绍
- 快速了解C#接口(Interface)
- 从0开始安卓开发之路_Android Studio安装包
- android高效简洁的代码实现直播礼物效果
- 163邮箱服务器注册不了怎么办,outlook邮箱添加163邮箱账户失败该怎么办?
- ubuntu 校准时间_ubuntu设置系统时间与网络时间同步
- L44.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- su和visudo
- openssl 1.0.2 漏洞修复指南
- mapgis明码文件转为点线面文件_Geomap格式转化.doc
- R countcolors包:像素级分析处理图片
- 2020年有寓意的领证日期_2020年领证的好日子-2020有寓意的领证日期【蜜匠婚礼】...
- Reactor模式简单实现与理解
- jsp新代码第45课
- 2010级清华计算机专业校友,清华计算机系主任答2010高考考生问-清华大学.PDF
- PS2游戏机硬盘启动制作教程
- 亚洲小姐全球总冠军吴丹,《猎枭生死线》荧幕初吻超越柳岩徐冬冬
- 2022宁夏杯D 包装纸箱设计