英特爾 XScale(R) 技術主題UMLAL - 無符號長乘法累加

語法

UMLAL[condition][S] dest_lo, dest_hi, op1, op2

其中:

 condition

16 個條件之一。請參閱條件程式碼狀態

 S

更新條件程式碼標誌(位 [20])

 dest_lo

低 32 位的目標暫存器

 dest_hi

高 32 位的目標暫存器

 op1

包含第一個運算元的暫存器

 op2

包含第二個運算元的暫存器

說明

UMLAL 指令在無符號運算元 op1op2 上執行乘法。乘法的 64 位結果加到 dest_lodest_hi。和寫入 dest_lodest_hi。condition 必須是有效值;否則將指令當作 NOP。

定址模式

無運算元

影響的標誌

N

Z

C

V

Q

S

I

F

T

TM

TM

T

T

 

T

 

 

 

編碼

31

 

28

27

26

25

24

23

22

21

20

19

 

16

15

 

12

11

 

8

7

6

5

4

3

 

0

condition

0

0

0

0

1

0

1

S

dest_hi

dest_lo

op2

1

0

0

1

op1

示例

1        ;@.text
2        ;@.globl funumlal
3        ;@.align 0
4        ;
5                    AREA example,CODE,READONLY
6
7                    label1
8        ; The 32-bit unsigned integers held in R2 & R3 are
9        ; multiplied to give a 64-bit result which is then added
10       ; to the 64-bit accumulated value held in R1 (high part)
11       ; & R0 (low part), where the result is placed
12   00000000   F3B45678   MOV     R0, #Ox0
13   00000004   E1A01000   MOV     R1, R0
14   00000008   F3B47678   MOV     R2, #OxA
15   00000012   F2B67678   ADD     R3, R2, #OxE
16   00000016   E0810392   UMLAL   R0, R1, R2, R3