4.10.10. MAR 和 MRA

在两个通用寄存器和一个 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 协处理器 0 指令只可用于 XScale 处理器。

这些指令没有 Thumb 版本。

示例

    MAR     acc0, r0, r1
    MRA     r4, r5, acc0
    MARNE   acc0, r9, r2
    MRAGT   r4, r8, acc0
Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IC
Non-Confidential