ARM學習筆記7——乘法指令

  ARM乘法指令完成兩個數據的乘法,兩個32位二進制數相乘的結果是64位的4積。

其中:

  1、“RadHi:RdLo”是由RdHi(最高有效32位)和RdLo(最低有效32位)鏈接形成的64位數,“[31:0]”只選取結果的最低有效32位

  2、簡單的賦值由“:=”表示

  3、累加(將右邊加到左邊)是由“+=”表示

一、MUL乘法指令

  1、作用
    將Rm和Rs中的值相乘,結果的最低32位保存到Rd中
  2、語法格式
    MUL{<condition>}{S} <Rd>,<Rm>,<Rs>
  3、參數說明
    3.1、S:S位(bit[20])決定指令的操作是否影響CPSR中的條件標志位N位和Z位的值。當S=1時,跟新CPSR中的條件標志位的值;當S=0,指令不更新CPSR中的條件標志位。
    3.2、<Rd>:寄存器位目標寄存器
    3.3、<Rm>:第一個乘數所在寄存器
    3.4、<Rs>:第二個乘數所在寄存器

  4、舉例:

    R1=R2*R3用指令表示為 MUL R1,R2,R3

二、MLA乘-累加指令
  1、作用
    將Rm和Rs中的值相乘,再將乘積加上第三個操作數,結果的最低32保存到Rd中
  2、語法格式
    MLA{<condition>}{S} <Rd>,<Rm>,<Rs>,<Rn>
  3、參數說明:
    3.1、<Rd>:寄存器位目標寄存器
    3.2、<Rm>:第一個乘數所在寄存器
    3.3、<Rs>:第二個乘數所在寄存器
    3.4、<Rn>:將要累加到<Rm>*<Rs>結果中的第三操作數
  4、舉例說明
    R1=R2*R3+10用指令表示為?: 

     MOV ?R0,#0x0A
     MLA? R1,R2,R3,R0

三、UMULL無符號數長乘指令
  1、作用
    UMULL為64位無符號乘法指令,指令將Rm和Rs中的值做無符號數相乘,結果的低32位保存到RsLo中,而高32位保存到RdHi中。
  2、語法格式
    UMULL{<condition>}{S} <RdLo>,<RdHi>,<Rm>,<Rs>
  3、參數說明
    3.1、<RdLo>:寄存器位目標寄存器,存儲結果的低32位值
    3.2、<RdHi>:寄存器位目標寄存器,存儲結果的高32位值
    3.3、<Rm>:第一個乘數寄存器
    3.4、<Rs>:第二個乘數寄存器
  4、舉例
    完成(R1,R0)=R5*R8操作
    UMULL R0,R1,R5,R8

四、UMLAL無符號長乘-累加操作指令
  1、作用
    UMLAL位64位無符號長乘-累加指令,指令將Rm和Rs中的值做無符號數相乘,64位乘積與RdHi,RdLo相加,結果的低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有符號數長乘操作指令
  1、作用
    SMULL64位有符號長乘指令,指令將Rm和Rs中的值做有符號數相乘,結果的低32位保存到RsLo中,而高32位保存到RdHi中
  2、語法格式
    SMULL{<condition>}{S} <RdLo>,<RdHi>,<Rm>,<Rs>
  3、實例
    完成(R3,R2)=R7*R6??
    SMULL R2,R3,R7,R6

六、SMLAL有符號長乘-累加操作指令
  1、作用
    SMLAL為64位有符號長乘法指令,指令將Rm和Rs中的值做有符號數相乘,64位乘積與RdHi,RdLo相加,結果的低32位保存到RsLo中,而高32位保存到RdHi中。
  2、語法指令
    SMLAL{<condition>}{S} <RdLo>,<RdHi>,<Rm>,<Rs>
  3、實例
    完成(R3,R2)=R7*R6+(R3,R2)
    SMLAL R2,R3,R7,R6

?

?

?

轉載于:https://www.cnblogs.com/zjzsky/p/3532818.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/248368.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248368.shtml
英文地址,請注明出處:http://en.pswp.cn/news/248368.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《劍指offer》第四十三題(從1到n整數中1出現的次數)

// 面試題43&#xff1a;從1到n整數中1出現的次數 // 題目&#xff1a;輸入一個整數n&#xff0c;求從1到n這n個整數的十進制表示中1出現的次數。例如 // 輸入12&#xff0c;從1到12這些整數中包含1 的數字有1&#xff0c;10&#xff0c;11和12&#xff0c;1一共出現了5次。#in…

回調函數

又稱callback函數。意思是指&#xff1a;在你的程序中&#xff0c;被windows系統調用的函數。 這些函數雖然由你設計&#xff0c;但是永遠不會也不該被你調用&#xff0c;它們是為windows系統準備的。 窗口函數設計為callback形式&#xff0c;才能開放出一個接口給操作系統調用…

固態硬盤Ghost安裝Windows 10無法引導的問題

機器配置如下&#xff1a; 電腦型號 技嘉 B360M POWER 臺式電腦操作系統 Windows 10 64位 ( DirectX 12 )處理器 英特爾 Core i7-8700 3.20GHz 六核主板 技嘉 B360M POWER ( 英特爾 PCI 標準主機 CPU 橋 - CannonLake - A3…

Linux shell 內部命令與外部命令有什么區別以及怎么辨別

內部命令實際上是shell程序的一部分&#xff0c;其中包含的是一些比較簡單的linux系統命令&#xff0c;這些命令由shell程序識別并在shell程序內部完成運行&#xff0c;通常在linux系統加載運行時shell就被加載并駐留在系統內存中。內部命令是寫在bashy源碼里面的&#xff0c;其…

[轉]矩陣分解在推薦系統中的應用

矩陣分解是最近幾年比較火的算法&#xff0c;經過kddcup和netflix比賽的多人多次檢驗&#xff0c;矩陣分解可以帶來更好的結果&#xff0c;而且可以充分地考慮各種因素的影響&#xff0c;有非常好的擴展性&#xff0c;因為要考慮多種因素的綜合作用&#xff0c;往往需要構造cos…

iPhone 系統刷機

1. 下載好固件(愛思 或者 pp助手) e.g. http://jailbreak.25pp.com/gujian/ 2. 將電腦與手機連接上&#xff0c;彈出iTunes軟件即可 3. 長按手機電源鍵 關閉手機 4. 按住電源健&#xff0c;出現屏幕亮出現蘋果標志后再按住Home健 5. 屏幕黑屏時松開電源健&#xff0c;繼續按照H…

hdu4044

題意&#xff1a;給你一顆樹有n個節點&#xff0c;樹的根節點為1&#xff0c;表示為敵人的基地&#xff0c;其他葉子節點為你的基地&#xff0c;你一開始有m元&#xff0c;給你每個節點可以建造的塔的數量和塔的價格和可以照成的傷害&#xff0c;每個節點至多建立一座塔。敵人的…

RS100項目進展更新

1. 添加手機界面訪問網頁&#xff0c;畢竟PDA的屏幕大小和PC機大小不一致&#xff0c;完成了一自適應網頁&#xff0c;便于在手機上觀看實時畫面&#xff1b; 2. 此項目為一個遠程視頻監控遠程開關項目&#xff0c;遠程PC機或者手機能操作到監控端的開關&#xff0c;所以在遠程…

python os操作

1 # 常用的文件管理操作2 # https://www.cnblogs.com/dkblog/archive/2011/03/25/1995537.html3 import os4 import shutil5 6 # 切換工作目錄,默認是在當前目錄下7 # os.chdir("xx")8 9 # 當前的工作目錄 D:\pythonworkspace\py_base\cn\tele\io 10 print(os.getcw…

洛谷模板,樹狀數組二 差分

題目鏈接&#xff1a;https://www.luogu.org/problemnew/show/P3368 先介紹下差分&#xff1a; 設數組a[]{1,6,8,5,10}&#xff0c;那么差分數組b[]{1,5,2,-3,5} 也就是說b[i]a[i]-a[i-1];(a[0]0;)&#xff0c;那么a[i]b[1]....b[i];(這個很好證的)。 假如區間[2,4]都加上2的話…

KMS安裝后激活機器

slmgr /skms 192.168.26.82 slmgr /ato轉載于:https://www.cnblogs.com/EllieSoft/p/3410320.html

Java內存模型深度解析:總結

處理器內存模型 順序一致性內存模型是一個理論參考模型&#xff0c;JMM和處理器內存模型在設計時通常會把順序一致性內存模型作為參照。JMM和處理器內存模型在設計時會對順序一致性模型做一些放松&#xff0c;因為如果完全按照順序一致性模型來實現處理器和JMM&#xff0c;那么…

sourcetree,創建工作流報錯:Fatal: Not a gitflow-enabled repo yet. Please run 'git flow init' first.-》解決辦法...

1、打開項目下.git/config文件&#xff0c;或者如下圖操作&#xff1a; 2、打開config文件以后&#xff0c;刪除所有 [gitflow *條目并保存文件 3、關閉并重新打開sourcetree 4、倉庫-》Git 工作流-》初始化倉庫即可轉載于:https://www.cnblogs.com/yxfeng/p/10536955.html

關于a標簽的href屬性的注意事項

今天在做一個lightbox效果的時候出現了一個問題。 當往下滾動再點擊按鈕出現lightbox的時候&#xff0c;lightbox的遮罩層不能鋪滿&#xff08;即滾動高度處不能鋪上&#xff09;&#xff0c;如下圖所示。原因是提交按鈕使用的是a標簽&#xff0c;當給a標簽寫上href屬性的時候&…

爬蟲開發4.三種數據解析方式

數據解析三種方式引言&#xff1a;回顧requests實現數據爬取的流程 指定url基于requests模塊發起請求獲取響應對象中的數據進行持久化存儲其實&#xff0c;在上述流程中還需要較為重要的一步&#xff0c;就是在持久化存儲之前需要進行指定數據解析。因為大多數情況下的需求&…

在mac上安裝gitlab

參考鏈接&#xff1a; https://www.cnblogs.com/floodwater/p/10138265.html 注意事項&#xff1a; 在安裝gitlab-ce時&#xff0c;配置hostname域名后&#xff0c;通過域名訪問gitlab時&#xff0c;需要配置本機hosts文件&#xff0c;不然不能訪問 本地hosts文件中配置后 就可…

org.apache.maven.archiver.MavenArchiver.getManifest錯誤

org.apache.maven.archiver.MavenArchiver.getManifest錯誤 網上普遍要add&#xff0c;&#xff0c;&#xff0c;&#xff0c;&#xff0c; 正解&#xff1a; 接到一個新需求&#xff0c;開始搭建項目時遇到了如標題錯誤。查詢網絡普遍得到是更新maven插件版本。 之前已安裝過此…

d3.js 入門指南

說到數據可視化&#xff0c;我們會行到很多優秀的框架&#xff0c;像echarts、highcharts&#xff0c;這些框架很優雅&#xff0c;健壯&#xff0c;能滿足我們對可視化的大部分需求&#xff0c;但是缺點也很明顯&#xff0c;就是這些框架幾乎是不可定制化的&#xff0c;當遇到特…

【LeetCode】200. 島嶼的個數

題目 給定一個由 1&#xff08;陸地&#xff09;和 0&#xff08;水&#xff09;組成的的二維網格&#xff0c;計算島嶼的數量。一個島被水包圍&#xff0c;并且它是通過水平方向或垂直方向上相鄰的陸地連接而成的。你可以假設網格的四個邊均被水包圍。 示例 1:輸入: 11110 110…

AI 模擬退火算法

模擬退火算法轉載于:https://www.cnblogs.com/yangwenhuan/p/10548171.html