【发布时间】:2014-05-24 10:59:42
【问题描述】:
假设你有这个指令:
tst.w r6, #0x1
而 r6 包含某物的地址,它会将 0x1 与该地址还是该地址的值进行比较?
【问题讨论】:
-
ARM 是一种加载/存储架构,不允许对内存进行任何直接操作。该指令将对 R6 和 1 进行逻辑“与”并相应地更改标志。
-
它类似于
bool test(void *p) { return (int)p & 1 ? true : false; },不同之处在于它执行bool的汇编版本并设置条件代码。这就像 dwelch's 的回答,如果你喝了 ARM cool-aid。