4.11.10. MAR 和 MRA

XScale 协处理器 0 指令。

在两个通用寄存器和一个 40 位内部累加器之间传送。

语法

MAR{cond} Acc, RdLo, RdHi
MRA{cond} RdLo, RdHi, Acc

其中:

cond

是一个可选的条件代码(请参阅条件执行)。

Acc

是内部累加器。 此累加器的标准名称为 accx,其中 x 为一个整数,范围为 0 到 n。具体的 n 值取决于处理器。 对于当前处理器,其值为 0。

RdLo, RdHi

是通用寄存器。RdLoRdHi 不能为 pc,对于 MRA,它们必须为不同的寄存器。

用法

MAR 指令可将 RdLo 中的值复制到 Acc 的位 [31:0] 中,还会将 RdHi 的最低有效字节复制到 Acc 的位 [39:32] 中。

MRA 指令可进行以下操作:

  • Acc 的 [31:0] 位复制到 RdLo

  • Acc 的 [39:32] 位复制到 RdHi [7:0] 位

  • 通过将 Acc 的 [39] 位复制到 RdHi 的 [31:8] 位来对该值进行符号扩展。

体系结构

这些 ARM 指令只可用于 XScale 处理器。

这些指令没有 Thumb 版本。

示例


    MAR     acc0, r0, r1

    MRA     r4, r5, acc0

    MARNE   acc0, r9, r2

    MRAGT   r4, r8, acc0

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