Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ARM中,如果大于而没有分支,如何比较两个寄存器并执行操作_Arm_Branch_Cmp - Fatal编程技术网

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

在ARM中,如果大于而没有分支,如何比较两个寄存器并执行操作,arm,branch,cmp,Arm,Branch,Cmp,我试图比较两个寄存器r5和r6,我知道我可以用它们来做 CMP R7, R5 我想做的是 如果R7>1,则添加R8、R8、#1,而不进行分支,因为我将在代码的不同部分多次使用此选项 我知道如果大于,BGT将分支,或者如果分支后可能返回到以前的位置以添加到计数?许多ARM指令,这意味着您可以根据以下条件执行此指令: cmp r5, r7 addgt r8, r8, #1 //increments r8 if r5 is greater than r7 mov r1, r0 //executes

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

CMP R7, R5
我想做的是

如果R7>1,则
添加R8、R8、#1
,而不进行分支,因为我将在代码的不同部分多次使用此选项

我知道如果大于,BGT将分支,或者如果分支后可能返回到以前的位置以添加到计数?

许多ARM指令,这意味着您可以根据以下条件执行此指令:

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

请澄清你的问题。“cmp r7、r5、r6”不是有效的操作码。如果r5>r6或r7>1,您希望运行添加吗?非常感谢,我不知道如果大于,我可以将添加修改为添加。这是否也适用于大多数指令?大多数ARM指令,但并非全部。检查ARM信息中心(链接在我的答案中)以确保。