4.9.3. MRC、MRC2、MRRC 和 MRRC2

从协处理器移到 ARM 寄存器。

对于不同的协处理器,有多种附加操作可供您选用。

语法

op1{cond} coproc, #opcode1, Rt, CRn, CRm{, #opcode2}
op2{cond} coproc, #opcode3, Rt, Rt2, CRm

其中:

op1

MRCMRC2

op2

MRRCMRRC2

cond

是一个可选的条件代码(请参阅条件执行)。 在 ARM 代码中,不允许为 MRC2MRRC2 使用 cond

coproc

是要运行指令的协处理器的名称。 标准名称为 pn,其中 n 为 0 到 15 范围内的整数。

opcode1

是一个特定于协处理器的 3 位操作码。

opcode2

是一个特定于协处理器的可选 3 位操作码

opcode3

是一个特定于协处理器的 4 位操作码。

RtRt2

是 ARM 源寄存器。 不要使用 r15。

MRCMRC2 中,Rt 可为 APSR_nzcv

CRnCRm

是协处理器寄存器。

用法

这些指令的具体用法取决于协处理器。 有关详细信息,请参阅协处理器文档。

体系结构

MRC ARM 指令在所有版本的 ARM 体系结构中都有效。

MRC2 ARM 指令可用于 ARMv5 及更高版本。

MRRC ARM 指令可用于 ARMv6 和更高版本,以及 ARMv5 的 E 变体。

MRRC2 ARM 指令可用于 ARMv6 及更高版本。

这些 32 位 Thumb 指令可用于 ARMv6T2 及更高版本。

这些指令均无 16 位 Thumb 版本。

Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IC
Non-Confidential