if (R1 > R2 || R3 > R4)
R1 = R1 + 1
我无法弄清楚如何处理多种情况。说明看起来像这样吗?
CMP R1, R2
CMPNE R3, R4
ADDEQ R1, R1, #1
答案 0 :(得分:0)
if (R1 > R2 || R3 > R4)
R1 = R1 + 1
OR条件使得这很棘手,因为它需要进行短路评估。你可以做的是通过比较进行评估,只有当r1不大于r2时才进行评估,然后让add指令查看上次比较完成时标志的结果。
cmp r1, r2 ; compare r1 and r2
cmpls r3, r4 ; if lower or same, compare r3 and r4
addhi r1, r1, #1 ; if higher, add 1