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

語法

MCR[condition] cpname, cpopcode1, source, cpdest, cpreg[, cpopcode2]
MCR2 cpname, cpopcode1, source, cpdest, cpreg[, cpopcode2]

其中:

 condition

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

 cpname

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

 cpopcode1

協處理器 cpname 的操作

 source

源 ARM* 核心暫存器

 cpdest

協處理器目標暫存器

 cpreg

其它協處理器暫存器

 cpopcode2

協處理器 cpname 的操作

說明

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

備註

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

定址模式

無運算元

影響的標誌

N

Z

C

V

Q

S

I

F

T

T

T

T

T

 

 

 

 

 

編碼

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

0

cpdest

source

cpnum

cpop
code2

1

cpreg

示例

1                          ;@.text
2                          ;@.globl funcmcr
3                          ;@.align 0
4
5
6                          ;@ * * * MCR * * *
7
8                       AREA cp_move, CODE, READONLY
9
10   00000000   EEA8E073   MCR   p0, 5, R14, c8, c3, 3
11   00000004   EEC9D194   MCR   p1, 6, R13, c9, c4, 4
12   00000008   EEEAC2D5   MCR   p2, 7, R12, c10, c5, 6
13   00000012   EE0BB333   MCR   p3, 0, R11, c11, c3, 1
14
15   00000016   FE647418   MCR2  p4, 3, R7, c4, c8, 0
16   00000020   FE858539   MCR2  p5, 4, R8, c5, c9, 1
17   00000024   FEA69650   MCR2  p6, 5, R9, c6, c0, 2
18   00000028   FEC7A771   MCR2  p7, 6, R10, c7, c1, 3
19