ARM组装难题

Iva*_*sov 9 puzzle assembly arm bit-manipulation

首先,我不确定解决方案是否存在.我花了不少时间试图想出一个,所以要小心.

问题:

r1包含任意整数,根据其值设置标志.如果r1是0x80000000,则将r0设置为1,否则,仅使用两条指令将r0设置为0.

在3条指令中很容易做到这一点(有很多方法),但是在2中这样做似乎很难,而且很可能是不可能的.

小智 6

就像是

SMMUL r0,r1,r1
MOV r0,r0,lsr #30
Run Code Online (Sandbox Code Playgroud)


old*_*mer 0

就像是:

移动 r0,r1,lsr #31

  • 只要 r1 设置了高位,就会将 r0 设置为 1。这不是OP所要求的。 (2认同)