4.7.1. BFC 和 BFI

位域清零和位域插入 清除寄存器中相邻的位,或将一个寄存器中的相邻位插入另一个寄存器中。

语法

BFC{cond} Rd, #lsb, #width
BFI{cond} Rd, Rn, #lsb, #width

其中:

cond

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

Rd

是目标寄存器。 Rd 不能为 r15。

Rn

是源寄存器。 Rn 不能为 r15。

lsb

是要清除或复制的最低有效位。

width

是要清除或复制的位数。 width 不能为 0,且 (width+lsb) 必须小于 32。

BFC

lsb 开始,清除 Rd 中的 width 个位。 Rd 中的其他位保持不变。

BFI

Rn 中从 [0] 位开始的 width 位替换 Rd 中从 lsb 开始的 width 位。 Rd 中的其他位保持不变。

条件标记

这些指令不更改标记。

体系结构

这些 ARM 指令可用于 ARMv6T2 及更高版本。

这些 32 位 Thumb 指令可用于 ARMv6T2 及更高版本。

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

Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IC
Non-Confidential