<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > ARM匯編指令集之五——乘法指令與乘加指令

ARM匯編指令集之五——乘法指令與乘加指令

作者: 時(shí)間:2016-11-09 來(lái)源:網(wǎng)絡(luò ) 收藏
ARM微處理器支持的乘法指令乘加指令共有6條,可分為運算結果為32位和運算結果為64位兩類(lèi),與前面的數據處理指令不同,指令中的所有操作數、目的寄存器必須為通用寄存器,不能對操作數使用立即數或被移位的寄存器,同時(shí),目的寄存器和操作數1必須是不同的寄存器。

乘法指令與乘加指令共有以下6條:

本文引用地址:http://dyxdggzs.com/article/201611/317601.htm

1、 MUL指令

MUL指令的格式為:

MUL{條件}{S}目的寄存器,操作數1,操作數2

MUL指令完成將操作數1與操作數2的乘法運算,并把結果放置到目的寄存器中,同時(shí)可以根據運算結果設置CPSR中相應的條件標志位。其中,操作數1和操作數2均為32位的有符號數或無(wú)符號數。

指令示例:

MUL R0,R1,R2;R0 = R1×R2

MULS R0,R1,R2;R0 = R1×R2,同時(shí)設置CPSR中的相關(guān)條件標志位

2、 MLA指令

MLA指令的格式為:

MLA{條件}{S}目的寄存器,操作數1,操作數2,操作數3

MLA指令完成將操作數1與操作數2的乘法運算,再將乘積加上操作數3,并把結果放置到目的寄存器中,同時(shí)可以根據運算結果設置CPSR中相應的條件標志位。其中,操作數1和操作數2均為32位的有符號數或無(wú)符號數。

指令示例:

MLA R0,R1,R2,R3;R0 = R1×R2 + R3

MLAS R0×R2 + R3,同時(shí)設置CPSR中的相關(guān)條件標志位

3、 SMULL指令

SMULL指令的格式為:

SMULL{條件}{S}目的寄存器Low,目的寄存器低High,操作數1,操作數2

SMULL指令完成將操作數1與操作數2的乘法運算,并把結果的低32位放置到目的寄存器Low中,結果的高32位放置到目的寄存器High中,同時(shí)可以根據運算結果設置CPSR中相應的條件標志位。其中,操作數1和操作數2均為32位的有符號數。

指令示例:

SMULL R0,R1,R2,R3;R0 =(R2×R3)的低32位

;R1 =(R2×R3)的高32位

4、 SMLAL指令

SMLAL指令的格式為:

SMLAL{條件}{S}目的寄存器Low,目的寄存器低High,操作數1,操作數2

SMLAL指令完成將操作數1與操作數2的乘法運算,并把結果的低32位同目的寄存器Low中的值相加后又放置到目的寄存器Low中,結果的高32位同目的寄存器High中的值相加后又放置到目的寄存器High中,同時(shí)可以根據運算結果設置CPSR中相應的條件標志位。其中,操作數1和操作數2均為32位的有符號數。

對于目的寄存器Low,在指令執行前存放64位加數的低32位,指令執行后存放結果的低32位。

對于目的寄存器High,在指令執行前存放64位加數的高32位,指令執行后存放結果的高32位。

指令示例:

SMLAL R0,R1,R2,R3;R0 =(R2×R3)的低32位+R0

;R1 =(R2×R3)的高32位+R1

5、 UMULL指令

UMULL指令的格式為:

UMULL{條件}{S}目的寄存器Low,目的寄存器低High,操作數1,操作數2

UMULL指令完成將操作數1與操作數2的乘法運算,并把結果的低32位放置到目的寄存器Low中,結果的高32位放置到目的寄存器High中,同時(shí)可以根據運算結果設置CPSR中相應的條件標志位。其中,操作數1和操作數2均為32位的無(wú)符號數。

指令示例:

UMULL R0,R1,R2,R3;R0 =(R2×R3)的低32位

;R1 =(R2×R3)的高32位

6、 UMLAL指令

UMLAL指令的格式為:

UMLAL{條件}{S}目的寄存器Low,目的寄存器低High,操作數1,操作數2

UMLAL指令完成將操作數1與操作數2的乘法運算,并把結果的低32位同目的寄存器Low中的值相加后又放置到目的寄存器Low中,結果的高32位同目的寄存器High中的值相加后又放置到目的寄存器High中,同時(shí)可以根據運算結果設置CPSR中相應的條件標志位。其中,操作數1和操作數2均為32位的無(wú)符號數。

對于目的寄存器Low,在指令執行前存放64位加數的低32位,指令執行后存放結果的低32位。

對于目的寄存器High,在指令執行前存放64位加數的高32位,指令執行后存放結果的高32位。

指令示例:

UMLAL R0,R1,R2,R3 ;R0 =(R2×R3)的低32位+R0

;R1 =(R2×R3)的高32位+R1




評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>