ARM Assembly: 第8课 branching

branch causes a branch to a target address.  The "B" mnemonic signifies an unconditional branch.

 单个的B表示进入一个无条件的分支,而含条件的分支通常可以基于APSR 条件flag进行指令的执行。比如,基于condition flag z是否为1, 我们可以进行BEQ结果的判断。

如下面代码

.global _start
_start:
    mov r0, #4         ; Move the immediate value 4 into register r0
    mov r1, #5         ; Move the immediate value 5 into register r1
    
    cmp r0, r1         ; Compare the values in r0 and r1 (sets the APSR flags)
    bgt cond1          ; Branch to label 'cond1' if r0 is greater than r1
    b   cond2          ; Unconditional branch to label 'cond2'

cond1:
    mov r2, #1         ; If r0 > r1, move 1 into r2
    
cond2:
    mov r3, #2         ; Always move 2 into r3

下面是各种条件分支的触发机制和与condition flag的关系。【2】

参考链接【2】

参考链接:

【1】Documentation – Arm Developer

【2】Documentation – Arm Developer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值