以前看过的汇编代码只有b,bl和bne label等,从未见过bne 1b,今天在看韦东山老师的《Linux完全开发手册》第六章有如下代码:
1:
ldr r4,[r2],#4
str r4,[r1],#4
cmp r1,r3
bne 1b
顿时觉得代码写错了,最后一句应该是bne 1,但是后面居然还有一个1的标号,同样还有bne 1b语句,后面在网上查了之后才知道,bne 1b这条语句里的b是backward的意思,既然有backward就有forward,所有就有bne 1f语句:
eg:
1: ;A
cmp r0, #0
beq 1f ; r0==0那么向前跳转到B处执行
bne 1b ; 否则向后跳转到A处执行
1: ;B
原文链接:https://blog.csdn.net/liaoshengshi/article/details/39827353