MAR [ condition ] acc0, op1 , op2
其中:
condition |
16 個條件之一。請參閱條件程式碼狀態。 |
acc0 |
內部 40 位累加器 |
op1 |
指定內部累加器的低 32 位的暫存器 |
op2 |
指定內部累加器的高八位的暫存器 |
指令 MAR 執行以下操作:
if ConditionPassed ( condition ) then
acc0[31:0] = op1 [31:0]
acc0[39:32] = op2 [7:0]
使用 MAR 指令時,暫存器 op1 中的值移到 40 位累加器的位 [31:0],暫存器op2 中的值的位 [7:0] 移到 40 位累加器的位 [39:32]。指令中指定的條件必須與條件程式碼狀態匹配,否則不執行指令。此指令可以在任何處理器模式中執行。
不影響任何標誌。
31 |
|
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
|
16 |
15 |
|
12 |
11 |
|
0 |
condition |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
op2 |
op1 |
0 |
1 ;@.text
2
3 ;@.globl funcmar
4
5 ;@.align 0
6
7 ;@ * * * MAR * * *
8
9
10 AREA example, CODE, READONLY
11 label1
12
13 00000000 E3A0000A MOV R0, #10
14 00000004 E3A01001 MOV R1, #1
15 00000008 E3A02001 MOV R2, #1
16
17 00000012 E2A20001 ADC R0, R2, #1
18
19 00000016 EC400001 MAR acc0, R0, R1
20
21 END