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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

无符号有符号乘法_刘帅嵌入式系统-乘法指令

發(fā)布時間:2024/8/23 windows 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 无符号有符号乘法_刘帅嵌入式系统-乘法指令 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

ARM有兩類乘法指令:一類為32位的乘法指令,即乘法操作的結果為32位;另一類為64位的乘法指令,即乘法操作的結果為64位。兩類指令共有以下6條。

  • MUL:32位乘法指令
  • MLA:32位帶加數(shù)的乘法指令
  • SMULL:64位有符號數(shù)乘法指令
  • SMLAL:64位帶加數(shù)的有符號數(shù)乘法指令
  • UMULL:64位無符號數(shù)乘法指令
  • UMLAL:64位帶加數(shù)的無符號數(shù)乘法指令

MUL

MUL指令實現(xiàn)兩個32位的數(shù)(可以為無符號,也可以為有符號)的乘積,并將結果存放到一個32位的寄存器中,同時可以根據(jù)運算結果設置CPSR寄存器中相應的條件標志位。考慮指令執(zhí)行的效率,指令中所有操作數(shù)都存放在寄存器中。

指令的編碼格式

指令的語法格式

MUL{< cond >} {S} < Rd >, < Rm >, < Rs >

其中:

  • < cond >為指令執(zhí)行的條件碼。當忽略< cond >時,指令為無條件執(zhí)行。
  • S決定指令的操作是否影響CPSR中的條件標志位N位和Z位的值。當有S時,指令更新CPSR中的條件標志位的值;當沒有S時,指令不更新CPSR中的條件標志位的值。
  • < Rd >寄存器為目標寄存器。
  • < Rm >寄存器為第1個乘數(shù)所在的寄存器。
  • < Rs >為第2個乘數(shù)所在的寄存器。

指令操作的偽代碼

if ConditionPass(cond) then Rd=(Rm * Rs)[31:0] if S==1 then N Flag=Rd[31] Z Flag=if Rd == 0 then 1 else 0 C Flag=unaffected /*See "C flag" note*/ V Flag=unaffected

指令的使用

由于兩個32位的數(shù)相乘的結果位64位,而MUL指令僅僅保存了64位結果的低32位,所以對于帶符號的和無符號的操作數(shù)來說,MUL指令執(zhí)行的結果相同。

對于ARMv5及以上的版本,MULS指令不影響CPSR寄存器中的C條件標志位。對于以前的版本,MULS指令執(zhí)行后,CPSR寄存器中的C條件標志位數(shù)值是不確定的。

寄存器< Rm >、< Rn >及< Rd >為 R15時,指令執(zhí)行的結果不可預期。

示例

MUL R0, R1, R2 ;R0 = R1 * R2MULS R0, R1, R2 ;R0 = R1 * R2 同時設置CPSR中N位和Z位

總結

以上是生活随笔為你收集整理的无符号有符号乘法_刘帅嵌入式系统-乘法指令的全部內容,希望文章能夠幫你解決所遇到的問題。

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