Chinaunix首页 | 论坛 | 博客
  • 博客访问: 216429
  • 博文数量: 59
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 424
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-25 12:57
文章分类

全部博文(59)

文章存档

2016年(23)

2015年(30)

2014年(6)

我的朋友

分类: LINUX

2016-10-09 10:00:35

原文地址:bne 1b什么意思 作者:lilysulia

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

阅读(1567) | 评论(0) | 转发(0) |
0

上一篇:C语言函数sscanf()的用法

下一篇:MOV PC,LR

给主人留下些什么吧!~~