bne1b的意思

来源:互联网 发布:将dmp文件导入mysql 编辑:程序博客网 时间:2024/06/08 15:43

head.S中初始化内存有以下一段程序:

ENTRY(memsetup)
 @ initialise the static memory

 @ set memory control registers
 mov r1, #MEM_CTL_BASE
 adrl r2, mem_cfg_val
 add r3, r1, #52
1: ldr r4, [r2], #4     <----又跳到这
 str r4, [r1], #4
 cmp r1, r3
 bne 1b

上面的1b标号在head.S中找了半天硬是找不到,把整个vivi都找了一遍还是没有。查了半天原来这个1是局部标号。

当标号为0~9的数字时为局部标号,局部标号可以重复出现,使用方法如下:
 标号f:  表示往前跳,顺序执行的话是没有运行过的程序front的意思。

 标号b: 表示跳转到以前执行过的语句,第一个1标号处 ,back的意思。

 

head.S中还有很多这样的语句也不难理解

1: 1b  @ infinite loop无限循环

只要想着 b 就是back,回去的意思,回到以前那个标号1处,这里即当前标号,即永远循环执行这个语句,相当于while(1)。


原文链接:http://blog.chinaunix.net/uid-20551291-id-1926997.html

0 0
原创粉丝点击