日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2023/12/13 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ARM学习笔记7——乘法指令 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。