==============================================================
查了一下书,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的行。