在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 2551|回复: 1

[资料] ARM指令之乘法指令

[复制链接]
发表于 2015-12-28 17:03:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

ARM乘法指令完成2个寄存器中数据的乘法。按产生结果的位宽一般分为2类:一类是232位二进制相乘的结果是64位;另一类是232位二进制相乘,仅保留最低有效32位。

2种类型都有“乘一累加”的变形,即将乘积连续相加成为总和,而且有符号和无符号操作数都能使用。2种类型指令共有6,如表所列

乘法指令.jpg

对于有符号和无符号操作数,结果的最低有效32位是一样的,所以对于只保留32位的结果的乘法指令,无须区分有符号数和无符号数2种指令格式。

二进制编码

乘法的二进制编码如图所示

乘法指令的二进制编码.jpg

说明

表列出了各种形式乘法功能,对指令编码及表中使用的寄存器表示符号解释如下:

对于32位乘积结果指令,Rd为结果寄存器,RmRsRn为操作数寄存器。R15不能用作RdRmRsRn。且Rd不能与Rm相同。

对于64位乘积结果指令,RdLoRdHi为结果寄存器,“RdLoRdHi”是由RdHi(最高有效32位)和RdLo(最低有效32位)连接形成64位乘积结果,RmRs为操作数寄存器。R15不能用作RdLoRdHiRmRs,且RdLoRdHi不能与Rm相同。

选择[31:0]意指只选取乘积结果的最低有效32位。

简单的赋值由“<-”表示。

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

与其他数据处理指令一样,S位控制条件码的设置。当在指令中设置了S位时:

根据结果更新标志位NZ。对于产生32结果的指令形式,N标志位设置为Rd的第3位的值;对于产生64位结果的指令形式,N标志位设置的是RdHi的第31位的值;如果RdRdHiRdLo0,则Z标志设置位。

ARMV4及以前版本中,标志CV不可靠;

ARMV5及以后版本中,不影响标志CV

汇编格式

产生最低有效32位乘积的指令:

MUL{<cond>}{S}        RdRmRs

MULA{<cond>}{S}            RdRmRsRn

产生64位乘积的命令:

<mul>{<cond>}{S}RdHi,RdLo,Rm,Rs

在此<mul>64位乘法类型(UMULLUMLALSMULLSMLAL)。

例子

形成两个矢量的标量积:

MOV             R11#20                     ;初始化循环计数

MOV             R10#0                      ;初始化总和

LOOP     LDR              R0[R8],#4                 ;读取第一分量

              LDR              R1[R9],#4                 ;读取第二分量

              MLA              R10R0R1R0       ;乘积累加

              SUBS            R11R11#1              ;减循环计数

              BNE              LOOP                  

乘以一个常数可由调一个常数到寄存器,然后使用这些指令中的一种来实现。但是使用移位和加法或减法构成一小段数据处理指令通常更加有效。例如,将R0乘以35

ADD              R0R0R0LSL#2          ;R0`<-5×R0

RSB               R0R0R0LSL#3          ;R0``<-7×R0`

注意事项

它与其他数据处理指令的重要区别为:

—不支持第2操作数为立即数

—结果寄存器不能同时为第一源寄存器,即Rd、RdHi、RdLo不能与Rm为同一寄存器,RdHi和RdLo不能为同一寄存器。

应避免R15为任意操作数或结果寄存器。

早期的ARM处理器仅支持32位乘法指令。ARM7版本和后续的在名字中有M的处理器才支持64位乘法指令。

凌阳教育,专注嵌入式人才培养多年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官网

发表于 2018-12-20 12:27:06 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 16:34 , Processed in 0.082392 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表