ARM base instruction -- bfi

Bitfield Insert copies a bitfield of <width> bits from the least significant bits of the source register to bit position <lsb> of the destination register, leaving the other destination bits unchanged.

位域插入将<width>位的位域从源寄存器的最低有效位复制到目标寄存器的位位置<lsb>,保持其他目标位不变。

32-bit variant

Applies when sf == 0 && N == 0.

BFI <Wd>, <Wn>, #<lsb>, #<width>

is equivalent to

BFM <Wd>, <Wn>, #(-<lsb> MOD 32), #(<width>-1)

and is the preferred disassembly when UInt(imms) < UInt(immr).

64-bit variant

Applies when sf == 1 && N == 1.

BFI <Xd>, <Xn>, #<lsb>, #<width>

is equivalent to

BFM <Xd>, <Xn>, #(-<lsb> MOD 64), #(<width>-1)

and is the preferred disassembly when UInt(imms) < UInt(immr).

4005a0: d2800000 mov x0, #0x0 // #0

4005a4: b94023e1 ldr w1, [sp, #32]

4005a8: b3407c20 bfxil x0, x1, #0, #32

4005ac: b94027e1 ldr w1, [sp, #36]

4005b0: b3607c20 bfi x0, x1, #32, #32 // x0=取x1的高32位

相关推荐
Lzh编程小栈3 天前
数据结构与算法之队列深度解析:循环队列+C 语言硬核实现 + 面试考点全梳理
c语言·开发语言·汇编·数据结构·后端·算法·面试
cch89184 天前
汇编与C语言:底层对话VS高效指挥
c语言·开发语言·汇编
jwn9994 天前
PHP vs 汇编:编程语言的两极对决
开发语言·汇编·php
cch89184 天前
汇编vs易语言:底层与中文编程终极对决
汇编
cch89185 天前
汇编VS高级语言:从硬件操控到高效开发
汇编
cch89185 天前
汇编与Java:底层与高层的编程对决
java·开发语言·汇编
cch89185 天前
汇编 vs Python:编程世界的两极对决
开发语言·汇编·python
cch89185 天前
汇编与Go:底层到高层的编程差异
java·汇编·golang
山峰哥6 天前
告别“点点点”:AI 如何重构我们的测试体系与质量防线
服务器·汇编·数据库·人工智能·性能优化·重构
披着羊皮不是狼6 天前
ARM 汇编核心语法速查
汇编·arm开发