4.10.2. MCR、MCR2、MCRR 和 MCRR2

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

语法

op{cond} coproc, #opcode1, Rt, CRn, CRm{, #opcode2}

op{cond} coproc, #opcode1, Rt, Rt2, CRm

其中:

op

MCRMCR2MCRRMCRR2 之一。

cond

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

coproc

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

opcode1

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

Rt, Rt2

是 ARM 源寄存器。 Rt2 仅适用于 MCRRMCRR2Rt 以及 MCRRMCRR2 中的 Rt2 都不能使用 r15。

CRn, CRm

是协处理器寄存器。 CRn 仅适用于 MCRMCR2

opcode2

是一个依协处理器而定的可选操作码,它适用于 MCRMCR2

用法

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

体系结构

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

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

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

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

这些 32 位 Thumb 指令可用于 ARMv6T2 和 ARMv7。

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

Copyright © 2002-2007 ARM Limited. All rights reserved. ARM DUI 0204HC
Non-Confidential