==============================================================
查了一下书,0~99应该称为局部标号。
详见 ARM体系结构与编程 第147页
============================================================
昨天在看arm汇编,其中有这样的一段语句
0
ldr r3, [r0], #4
str r3, [r1], #4
cmp r2, r0
bne %B0
bne:不等于则调转
但%B0 ,网上搜了一遍,还是未果。从最后的汇编语言来看,%B 代表,往前搜索 lable为0的行,换句话说,就是指本条语句前,lable为0的地址。整条语句的意思就是,如果不相等则跳转到lable为0的行。
同样,有了bne %B0,也就有了bne %F1,这是向后搜索lable为1的行。参考代码:
; check if EIN0 button is pressed
ldr r0,=GPFCON
ldr r1,=0x0
str r1,[r0]
ldr r0,=GPFUP
ldr r1,=0xff
str r1,[r0]
ldr r1,=GPFDAT
ldr r0,[r1]
bic r0,r0,#(0x1e<<1) ; bit clear
tst r0,#0x1
bne %F1
(省略一些语句)
;Clear SDRAM End
1
;Initialize stacks
bl InitStacks
总结一下 bne %B0,如果不相等则跳到本条语句前的lable为0的行。
bne %F1,如果不相等则跳到本条语句后的lable为1的行。