英特爾 XScale(R) 技術主題MCR/MCR2 - 從協處理器移動到 ARM* 核心暫存器

語法

MRC[condition] cpname, cpopcode1, dest, cpsource, cpreg[, cpopcode2]
MRC2 cpname, cpopcode1, dest, cpsource, cpreg[, cpopcode2]

其中:

 condition

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

 cpname

協處理器的名稱 (p0..p15)

 cpopcode1

協處理器 cpname 的操作

 dest

目標暫存器

 cpsource

源協處理器暫存器

 cpreg

其它協處理器暫存器

 cpopcode2

協處理器 cpname 的操作

說明

MRC 指令將 cpsource 中包含的值移動到 dest 或條件程式碼標誌。MRC2 指令將 cpsource 中的值移動到 dest。不過,這些指令僅可無條件執行。MRC2 指令由於可提供額外的操作碼空間,因此對於協處理器設計者而言特別有用。condition 必須是有效值;否則將指令當作 NOP。

備註

如果沒有協處理器可以執行此指令,則產生未定義的指令異常。

定址模式

無運算元

影響的標誌

N

Z

C

V

Q

S

I

F

T

TM

TM

TM

TM

 

 

 

 

 

編碼

31

 

28

27

26

25

24

23

 

21

20

19

 

16

15

 

12

11

 

8

7

 

5

4

3

 

0

condition

1

1

1

0

cpop
code1

1

cpsource

dest

cpnum

cpop
code2

1

cpreg

示例

1                           ;@.text
2                           ;@.globl funcmrc
3                           ;@.align 0
4
5
6                            ;@ * * * MRC * * *
7
8                    AREA cp_move, CODE, READONLY
9
10   00000000   EEB8E073   MRC    p0, 5, R14, c8, c3, 3
11   00000004   EED9D194   MRC    p1, 6, R13, c9, c4, 4
12   00000008   EEFAC2D5   MRC    p2, 7, R12, c10, c5, 6
13   00000012   EE1BB333   MRC    p3, 0, R11, c11, c3, 1
14
15   00000016   FE747418   MRC2   p4, 3, R7, c4, c8, 0
16   00000020   FE958539   MRC2   p5, 4, R8, c5, c9, 1
17   00000024   FEB69650   MRC2   p6, 5, R9, c6, c0, 2
18   00000028   FED7A771   MRC2   p7, 6, R10, c7, c1, 3
19                         END
T