ARM指令集---cmp、bne、beq

ARM指令集---cmp、bne、beq

(1)例一:cmp同bne搭配

cmp r1,r2  //这个cmp搭配下边的bne指令构成了如果r1≠r2则执行bne指令,跳转到copy_loop函数处执行。否则,就跳过下边

bne copy_loop//的bne指令向下执行。

	public checkerboard_ram

	section CODE:CODE:NOROOT(2)
    thumb

checkerboard_ram:
	ldr	r1, [r0]	; Backup

	ldr	r2, =0
	str	r2, [r0]
	dsb
	ldr	r3, [r0]
	cmp	r2, r3
	bne	checkerboard_fail

	ldr	r2, =0xffffffff
	str	r2, [r0]
	dsb
	ldr	r3, [r0]
	cmp	r2, r3
	bne	checkerboard_fail

	ldr	r2, =0xaaaaaaaa
	str	r2, [r0]
	dsb
	ldr	r3, [r0]
	cmp	r2, r3
	bne	checkerboard_fail

	ldr	r2, =0x55555555
	str	r2, [r0]
	dsb
	ldr	r3, [r0]
	cmp	r2, r3
	bne	checkerboard_fail

checkerboard_succeed:
	str	r1, [r0]
	dsb
	ldr	r0, =0
	bx	lr

checkerboard_fail:
	str	r1, [r0]
	dsb
	ldr	r0, =0xffffffff
	bx	lr

	end

 

(2)例二:cmp同beq搭配

cmp r0,r1//如果r0=r1,就执行beq,跳转到clean_bss函数处执行,否则跳过beq向下执行。

beq clean_bss

(3)总结:

其实上边两句都是跳转指令,跳转到相关函数处执行。区别在于执行跳转的条件不同。
 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值