ARM学习笔记7——乘法指令
ARM乘法指令完成兩個(gè)數(shù)據(jù)的乘法,兩個(gè)32位二進(jìn)制數(shù)相乘的結(jié)果是64位的4積。
其中:
1、“RadHi:RdLo”是由RdHi(最高有效32位)和RdLo(最低有效32位)鏈接形成的64位數(shù),“[31:0]”只選取結(jié)果的最低有效32位
2、簡(jiǎn)單的賦值由“:=”表示
3、累加(將右邊加到左邊)是由“+=”表示
一、MUL乘法指令
1、作用
將Rm和Rs中的值相乘,結(jié)果的最低32位保存到Rd中
2、語法格式
MUL{<condition>}{S} <Rd>,<Rm>,<Rs>
3、參數(shù)說明
3.1、S:S位(bit[20])決定指令的操作是否影響CPSR中的條件標(biāo)志位N位和Z位的值。當(dāng)S=1時(shí),跟新CPSR中的條件標(biāo)志位的值;當(dāng)S=0,指令不更新CPSR中的條件標(biāo)志位。
3.2、<Rd>:寄存器位目標(biāo)寄存器
3.3、<Rm>:第一個(gè)乘數(shù)所在寄存器
3.4、<Rs>:第二個(gè)乘數(shù)所在寄存器
4、舉例:
R1=R2*R3用指令表示為 MUL R1,R2,R3
二、MLA乘-累加指令
1、作用
將Rm和Rs中的值相乘,再將乘積加上第三個(gè)操作數(shù),結(jié)果的最低32保存到Rd中
2、語法格式
MLA{<condition>}{S} <Rd>,<Rm>,<Rs>,<Rn>
3、參數(shù)說明:
3.1、<Rd>:寄存器位目標(biāo)寄存器
3.2、<Rm>:第一個(gè)乘數(shù)所在寄存器
3.3、<Rs>:第二個(gè)乘數(shù)所在寄存器
3.4、<Rn>:將要累加到<Rm>*<Rs>結(jié)果中的第三操作數(shù)
4、舉例說明
R1=R2*R3+10用指令表示為?:
MOV ?R0,#0x0A
MLA? R1,R2,R3,R0
三、UMULL無符號(hào)數(shù)長乘指令
1、作用
UMULL為64位無符號(hào)乘法指令,指令將Rm和Rs中的值做無符號(hào)數(shù)相乘,結(jié)果的低32位保存到RsLo中,而高32位保存到RdHi中。
2、語法格式
UMULL{<condition>}{S} <RdLo>,<RdHi>,<Rm>,<Rs>
3、參數(shù)說明
3.1、<RdLo>:寄存器位目標(biāo)寄存器,存儲(chǔ)結(jié)果的低32位值
3.2、<RdHi>:寄存器位目標(biāo)寄存器,存儲(chǔ)結(jié)果的高32位值
3.3、<Rm>:第一個(gè)乘數(shù)寄存器
3.4、<Rs>:第二個(gè)乘數(shù)寄存器
4、舉例
完成(R1,R0)=R5*R8操作
UMULL R0,R1,R5,R8
四、UMLAL無符號(hào)長乘-累加操作指令
1、作用
UMLAL位64位無符號(hào)長乘-累加指令,指令將Rm和Rs中的值做無符號(hào)數(shù)相乘,64位乘積與RdHi,RdLo相加,結(jié)果的低32位保存到RsLo中,而高32位保存到RdHi中。
2、語法格式
UMLAL{<condition>}{S} <RdLo>,<RdHi>,<Rm>,<Rs>
3、舉例
完成(R1,R0)=R5*R8+(R1,R0)操作
UMLAL R0,R1,R5,R8
五、SMULL有符號(hào)數(shù)長乘操作指令
1、作用
SMULL64位有符號(hào)長乘指令,指令將Rm和Rs中的值做有符號(hào)數(shù)相乘,結(jié)果的低32位保存到RsLo中,而高32位保存到RdHi中
2、語法格式
SMULL{<condition>}{S} <RdLo>,<RdHi>,<Rm>,<Rs>
3、實(shí)例
完成(R3,R2)=R7*R6??
SMULL R2,R3,R7,R6
六、SMLAL有符號(hào)長乘-累加操作指令
1、作用
SMLAL為64位有符號(hào)長乘法指令,指令將Rm和Rs中的值做有符號(hào)數(shù)相乘,64位乘積與RdHi,RdLo相加,結(jié)果的低32位保存到RsLo中,而高32位保存到RdHi中。
2、語法指令
SMLAL{<condition>}{S} <RdLo>,<RdHi>,<Rm>,<Rs>
3、實(shí)例
完成(R3,R2)=R7*R6+(R3,R2)
SMLAL R2,R3,R7,R6
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/zjzsky/p/3532818.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的ARM学习笔记7——乘法指令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分期乐有额度不能提现?不能提现怎么办?
- 下一篇: RS100项目进展更新