ARM基础学习-局部标号
来源:互联网 发布:淘宝mg美即面膜 编辑:程序博客网 时间:2024/06/06 01:25
局部标号主要用于在局部范围内使用。他由两部分组成:开头是一个0~99的数字,后面紧跟着一个通常表示该局部变量作用范围的符号。
局部变量的作用范围通常为当前段,也可以用伪操作ROUT来定义局部变量的作用范围。
局部标号定义格式:N{routname} 其中:N 局部标号,为0~99。 routname 局部标号作用范围的名称,由ROUT 伪指令定义。 局部标号引用格式: %{F|B}{A|T} N{routname} 其中: % 表示局部标号引用操作。 F 指示编译器只向前搜索 B 指示编译器只向后搜索 A 指示编译器搜索宏的所有嵌套层次 T 指示编译器搜索宏的当前层 如果F和B都没有指定,则编译器先向前搜索,再向后搜索。如果A和T 都没有指定,编译器搜索所有从宏的当前层次到宏的最高层次,比当前层次的层次不再搜索。 如果指定了routname,编译器向前搜索最近的ROUT 伪指令,若routname 与该ROUT伪指令定义的名称不匹配,编译器报告错误,汇编失败。
memsetup: @ 设置存储控制器以便使用SDRAM等外设 mov r1, #MEM_CTL_BASE @ 存储控制器的13个寄存器的开始地址 adrl r2, mem_cfg_val @ 这13个值的起始存储地址 add r3, r1, #52 @ 13*4 = 541: ldr r4, [r2], #4 @ 读取设置值,并让r2加4 str r4, [r1], #4 @ 将此值写入寄存器,并让r1加4 cmp r1, r3 @ 判断是否设置完所有13个寄存器 bne 1b @ 若没有写成,继续 mov pc, lr @ 返回
上面bne 1b 的意思是,如果r1!=r3 即r1的地址的不等于r3的地址,也就是还没设置完这13个寄存器,就要重新跳到:
1: ldr r4, [r2], #4 @ 读取设置值,并让r2加4 str r4, [r1], #4 @ 将此值写入寄存器,并让r1加4 ......
处执行;直到r1=r3,即设置好这13个寄存器。才会结束这个局部循环。
0 0
- ARM基础学习-局部标号
- 关于ARM汇编中的标号的学习
- ARM汇编中的标号
- ARM汇编中的标号
- ARM汇编中的标号
- matlab基础学习——标号、符号、运算符号
- ARM汇编中的标号使用
- ARM基础学习-寄存器
- arm汇编标号globel和word解释
- 浅谈ARM 汇编中的标号(Labels)
- arm汇编标号.globel和.word解释
- arm汇编标号.globel和.word解释
- DMA基础(ARM学习2)
- ARM -A9 基础学习()
- 标号
- 标号
- 标号
- 标号
- Kruskal算法简明
- 打印某一区间的素数(质数)
- Java编程的内存机制
- linux服务器重启服务命令步骤
- android修改默认的打包签名
- ARM基础学习-局部标号
- activity基础(Activity Task)
- docker
- linux,安装并配置PHP环境
- 二分查找、折半查找
- 23种设计模式
- Js实现上下左右无缝隙滚动代码 二
- DPDK之(四)——中断机制简析
- android图形系统详解六:View layer