4.4.11. MIA、MIAPH 和 MIAxy

带内部累加的乘法(32 位乘 32 位,40 位累加)。

带内部累加的乘法,组合半字(16 位乘 16 位两次,40 位累加)。

带内部累加的乘法(16 位乘 16 位,40 位累加)。

语法

MIA{cond} Acc, Rn, Rm
MIAPH{cond} Acc, Rn, Rm
MIA<x><y>{cond} Acc, Rn, Rm

其中:

cond

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

Acc

是内部累加器。 标准名称为 accx,其中 x 为 0 到 n 范围内的整数。 n 的值取决于处理器。 在目前的处理器中它是 0。

Rn, Rm

是存放要相乘的值的 ARM 寄存器。

不要将 r15 用作 RnRm

<x><y>

是下列项之一: BB, BT, TB, TT

用法

MIA 指令可将 RnRm 中的两个有符号整数值相乘,然后将乘积与 Acc 中的 40 位值相加。

MIAPH 指令可将 RnRm 的低半部有符号整数相乘,将 RnRm 的高半部有符号整数相乘,然后再将两个 32 位乘积与 Acc 中的 40 位值相加。

MIAxy 指令可将选自 Rs 的 16 位有符号整数与选自 Rm 的 16 位有符号整数相乘,然后再将 32 位乘积与 Acc 中的 40 位值相加。 <x> == B 表示使用 Rn 的低 16 位(位 [15:0]),<x> == T 表示使用 Rn 的高 16 位(位 [31:16])。 <y> == B 表示使用 Rm 的低 16 位(位 [15:0]),<y> == T 表示使用 Rm 的高 16 位(位 [31:16])。

条件标记

这些指令不更改标记。

Note

这些指令不会产生异常。 如果这些指令发生溢出,则将不返回结果,且不发出警告。

体系结构

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

这些指令没有 Thumb 版本。

示例

    MIA     acc0,r5,r0
    MIALE   acc0,r1,r9
    MIAPH   acc0,r0,r7
    MIAPHNE acc0,r11,r10
    MIABB   acc0,r8,r9
    MIABT   acc0,r8,r8
    MIATB   acc0,r5,r3
    MIATT   acc0,r0,r6
    MIABTGT acc0,r2,r5
Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IC
Non-Confidential