MIA - 乘法與內部累加

語法

MIA [ condition ] acc0, op1 , op2

其中:

 condition

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

 acc0

內部 40 位累加器

 op1

包含被乘數的暫存器

 op2

包含乘數的暫存器

說明

MIA 指令執行以下操作:

if ConditionPassed( condition ) then
acc0 = (
op1 [31:0] * op2 [31:0]) + acc0[39:0]

 

MIA 指令執行暫存器 op2 中的有符號值與暫存器 op1 中的有符號值的乘法。結果累加到 40 位累加器。此指令用於操作使用 LDRSH 指令載入到通用暫存器的 16 位數據。

備註

指令中指定的條件必須與條件程式碼狀態匹配,否則不執行指令。

 

影響的標誌

編碼

31

 

28

27

26

25

24

23

22

21

20

19

18

17

16

15

 

12

11

10

9

8

7

6

5

4

3

 

0

condition

1

1

1

0

0

0

1

0

0

0

0

0

op2

0

0

0

0

0

0

0

1

op1

示例

1                    @.text
2                    @.globl funcmia
3                    @.align 0
4
5                    @ * * * MIA * * *
6
7                    AREA example, CODE, READONLY
8
9    00000000   E3A0000A   MOV   R0, #10
10   00000004   E3A01001   MOV   R1, #1
11   00000008   E5801000   STR   R1, [R0]
12   00000012   E1D020F0   LDRSH R2, [R0]
13
14   00000016   E3A0100A   MOV   R1, #10
15   00000020   E3A02002   MOV   R2, #2
16   00000024   E5812000   STR   R2, [R1]
17   00000028   E15138FC   LDRSH R3, [R1, #0x8c]
18
19   00000032   EE203012   MIA   acc0, R2, R3
20                         END

更多資訊

請參閱 MIAPH 指令
請參閱 MIAxy 指令

請參閱 LDRSH 指令