arm启动脚本里面经常出现1b

来源:互联网 发布:域名查询 美橙互联 编辑:程序博客网 时间:2024/05/18 04:00

在启动脚本里面经常出现1b 这个东西,找了很久一直不知道是什么,下面帖子讲的很好,于是转载了

转载地址:http://blog.chinaunix.net/uid-20551291-id-1926997.html

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)。


0 0