You copied the Doc URL to your clipboard.

ARM Compiler armasm User Guide : MRC and MRC2

MRC and MRC2

Move to ARM Register from Coprocessor. Depending on the coprocessor, you might be able to specify various additional operations.


MRC2 is not supported in ARMv8.


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

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



is an optional condition code.

In A32 code, cond is not permitted for MRC2.


is the name of the coprocessor the instruction is for. The standard name is pn, where n is an integer whose value must be:

  • In the range 0-15 in ARMv7 and earlier.
  • 14 or 15 in ARMv8.
is a 3-bit coprocessor-specific opcode.
is an optional 3-bit coprocessor-specific opcode.

is the ARM destination register. Rt must not be PC.

Rt can be APSR_nzcv. This means that the coprocessor executes an instruction that changes the value of the condition flags in the APSR.

CRn, CRm

are coprocessor registers.


The use of these instructions depends on the coprocessor. See the coprocessor documentation for details.


These 32-bit instructions are available in A32 and T32.

There are no 16-bit versions of these instructions in T32.

Related reference

Was this page helpful? Yes No