4.9.2. MCR、MCR2、MCRR 和 MCRR2

从 ARM 寄存器移到协处理器。 对于不同的协处理器,有多种附加操作可供您选用。

语法

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

其中:

op1

MCRMCR2

op2

MCRRMCRR2

cond

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

coproc

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

opcode1

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

opcode2

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

opcode3

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

RtRt2

为 ARM 源寄存器。MCRRMCRR2 不能使用 r15。

CRnCRm

是协处理器寄存器。

用法

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

体系结构

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

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

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

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

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

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

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