|
|
1
5
如果您有一个足够新的ARM内核,那么问题很简单:
看见 http://www.keil.com/support/man/docs/armasm/armasm_cjagdjbf.htm
看见 http://www.keil.com/support/man/docs/armasm/armasm_cihjedjg.htm |
|
|
2
4
怎么样:
(这假设r1的上半字是空的,就像参考代码一样。) 根据具体情况,您可以通过将最后一个mov与稍后的代码合并来省略它。 |
|
|
3
2
“将其替换为存储的半个字r1”-这是否意味着您可以假定r1的前16位为零?如果是,,
|
|
|
4
1
在ARMv6(例如MPCore)上,您可以说
|
|
5
0
如果需要保留下半部分,是否可以将寄存器左移8位并返回?不过,这可能是相同数量的指令。 |
|
|
6
0
对于C代码
gcc生成
它不使用任何即时信息,但它仍然是两个指令。 |
|
|
7
0
您可以使用BFC指令。位字段清除。此指令从m位清除n位 |
|
no one special · 32位整数缩放,无溢出 8 年前 |
|
|
Benn Tan · 比特操作:更难翻动硬币 8 年前 |
|
|
Ganesh Thampi · 使用位运算符将十进制转换为二进制 8 年前 |
|
|
Ganesh Thampi · 使用位的奇偶程序 8 年前 |
|
|
datapanda · 三维网格的莫顿反向编码 8 年前 |
|
|
rubyquartz · 交换无符号短整数的字节 8 年前 |
|
|
John Proctor · C中位的掩蔽范围 8 年前 |
|
|
Areg Sarvazyan · 从无符号int中提取位的函数 8 年前 |
|
|
user9505617 · 按位异或0xFFFFFFFF? 8 年前 |