Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.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
Assembly 如何解释本例中的BLO_Assembly_Arm_Instruction Set_Microprocessors - Fatal编程技术网

Assembly 如何解释本例中的BLO

Assembly 如何解释本例中的BLO,assembly,arm,instruction-set,microprocessors,Assembly,Arm,Instruction Set,Microprocessors,在这个例子中,我试图弄清楚BLO在比较什么。我知道如果没有设置进位标志,它会分支。是比较r1和旧r1(上面的指令?),因为代码没有在BGE分支。非常感谢 LDR r0,=0X3 LDR r1, =0X8F CMP r0,r1 BGE a_label SUBS r1,r1,#0XC9 a_label BLO stop SUBS r1,r1,#

在这个例子中,我试图弄清楚BLO在比较什么。我知道如果没有设置进位标志,它会分支。是比较r1和旧r1(上面的指令?),因为代码没有在BGE分支。非常感谢

        LDR     r0,=0X3
        LDR     r1, =0X8F
        CMP     r0,r1
        BGE     a_label
        SUBS    r1,r1,#0XC9

a_label BLO     stop
        SUBS        r1,r1,#0X7D

stop      

在没有
CMP
指令的情况下解释条件代码可能很棘手,因为编写助记符是为了在有
CMP
指令的情况下简化解释。但在这个例子中,情况并没有那么糟:记住
CMP
只是
SUBS
,结果被丢弃,所以

        LDR     r0,=0X3
        LDR     r1, =0X8F
        CMP     r0,r1
        BGE     a_label
        SUBS    r1,r1,#0XC9

a_label BLO     stop
        SUBS        r1,r1,#0X7D

stop      
SUBS   r1, r1, #0xC9
BLO    stop
表示与相同的条件

        LDR     r0,=0X3
        LDR     r1, =0X8F
        CMP     r0,r1
        BGE     a_label
        SUBS    r1,r1,#0XC9

a_label BLO     stop
        SUBS        r1,r1,#0X7D

stop      
CMP    r1, #0xC9
BLO    stop

但在
r1
中留下不同的结果。因此,条件是当
r1
(旧值)在无符号意义上小于0xC9时,它将进行分支——换句话说,当
SUBS
导致无符号值为
r1

时,在没有
CMP
指令的情况下解释条件代码可能很困难,因为助记符的编写是为了在出现
CMP
时简化解释。但在这个例子中,情况并没有那么糟:记住
CMP
只是
SUBS
,结果被丢弃,所以

        LDR     r0,=0X3
        LDR     r1, =0X8F
        CMP     r0,r1
        BGE     a_label
        SUBS    r1,r1,#0XC9

a_label BLO     stop
        SUBS        r1,r1,#0X7D

stop      
SUBS   r1, r1, #0xC9
BLO    stop
表示与相同的条件

        LDR     r0,=0X3
        LDR     r1, =0X8F
        CMP     r0,r1
        BGE     a_label
        SUBS    r1,r1,#0XC9

a_label BLO     stop
        SUBS        r1,r1,#0X7D

stop      
CMP    r1, #0xC9
BLO    stop

但在
r1
中留下不同的结果。因此,条件是当
r1
(旧值)在无符号意义上小于0xC9时,它将进行分支——换句话说,当
SUBS
导致
r1

的无符号值换行时,
BLO
是有效的x86指令吗?@Jose它是ARM指令它的比较(旧)
r1
0xC9
明显。
BLO
是有效的x86指令吗?@Jose这是ARM指令它比较(旧的)
r1
0xC9
明显。
        LDR     r0,=0X3
        LDR     r1, =0X8F
        CMP     r0,r1
        BGE     a_label
        SUBS    r1,r1,#0XC9

a_label BLO     stop
        SUBS        r1,r1,#0X7D

stop