b 1b 中的b是backward的意思,------>跳到程序的前面(往上)
b 1f 中的f是forward的意思, ------>跳到程序的后面(往下)
1表示标号(局部标号)
分支跳转到局部标号“1”,往下跳
start:
.type start,#function
.rept 8
mov r0, r0
.endr
b 1f
.word 0x016f2818 @ Magic numbers to help the loader
.word start @ absolute load/run zImage address
.word _edata @ zImage end address
1: mov r7, r1 @ save architecture ID
mov r8, r2 @ save atags pointer
分支跳转到局部标号“1”,往上跳
1: ldmia r2!, {r9 - r12, r14} @ copy relocation code
stmia r1!, {r9 - r12, r14}
ldmia r2!, {r9 - r12, r14}
stmia r1!, {r9 - r12, r14}
cmp r2, r3
blo 1b
mov sp, r1
add sp, sp, #128 @ relocate the stack
以上代码摘自内核代码head.S文件中