如何在ARM中比较两个寄存器并执行操作(如果大于没有分支)

时间:2014-12-08 08:03:06

标签: arm branch cmp

我想比较两个寄存器r5和r6,我知道我可以用

CMP R7, R5

我想做的是

如果R7> 1然后ADD R8, R8, #1没有分支,因为我将在代码的不同部分多次使用它

我知道BGT会分支,如果大于,或者如果分支加入计数后可以返回上一个位置?

1 个答案:

答案 0 :(得分:0)

许多ARM指令are defined as OP{cond},这意味着您可以根据条件执行此指令:

cmp r5, r7
addgt r8, r8, #1 //increments r8 if r5 is greater than r7
mov r1, r0 //executes in any case