assembly 如何在ARM中比较两个寄存器并在大于时执行操作而不进行分支

v8wbuo2f  于 4个月前  发布在  其他
关注(0)|答案(1)|浏览(66)

我试图比较两个寄存器r5和r6,我知道我可以做

CMP R7, R5

字符串
我想做的是
如果R7 > 1,则ADD R8, R8, #1没有分支,因为我将在代码的不同部分中多次使用它
我知道BGT将分支,如果大于,或者如果它可能返回到以前的位置后,分支添加到计数?

z5btuh9x

z5btuh9x1#

许多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

字符串

相关问题