【发布时间】:2008-11-16 18:49:08
【问题描述】:
在 ARM 汇编中,立即数由 8 位旋转值编码,这意味着我们只能编码
(0-256)^2n.
现在我的问题是我想清除 r0 的高 16 位并将其替换为存储的半字 r1。但是由于我必须做的立即数范围有限:-
bic r0, r0, #0xff000000
bic r0, r0, #0x00ff0000
add r0, r0, r1, LSL #16
是否可以用一条指令替换 2 条 bic 指令? 0xffff0000 是不可编码的。也许我应该使用另一个逻辑运算来清除高 16 位?
谢谢
编辑:对不起,我忘了说 r1 的前 16 位是空的,我使用的是 ARM7TDMI
【问题讨论】:
标签: assembly arm bit-manipulation