(转)汇编bne的问题
网址:http://blog.csdn.net/lwj103862095/article/details/8073571
memsetup:
@ 设置存储控制器以便使用SDRAM等外设
mov r1, #MEM_CTL_BASE @ 存储控制器的13个寄存器的开始地址
adrl r2, mem_cfg_val @ 这13个值的起始存储地址
add r3, r1, #52 @ 13*4 = 54
1:
ldr r4, [r2], #4 @ 读取设置值,并让r2加4
str r4, [r1], #4 @ 将此值写入寄存器,并让r1加4
cmp r1, r3 @ 判断是否设置完所有13个寄存器
bne 1b @ 若没有写成,继续
mov pc, lr @ 返回
bne 1b什么意思呢?一开始老是在找1b的标号处,找了些许时间也没有发现哪里有这个标号。
后来查找相关资料发现,原来0~9的数字为局部标签。局部标签可以重复使用,语法为:
xf:往前跳的意思,就是还未执行的程序,x代表0~9的某个标签,f代表forward的意思。
xb:往后跳的意思,回到原来已经执行过的语句,x达标0~9的某个标签,b代表backward的意思。
上面bne 1b 的意思是,如果r1!=r3 即r1的地址的不等于r3的地址,也就是还没设置完
这13个寄存器,就要重新跳到
1:
ldr r4, [r2], #4 @ 读取设置值,并让r2加4
str r4, [r1], #4 @ 将此值写入寄存器,并让r1加4
......
处执行;直到r1=r3,即设置好这13个寄存器。才会结束这个局部循环。
——————————————————————————————————————
eg:
1: ;A
cmp r0, #0
beq 1f ; @ r0==0那么向前跳转到B处执行
bne 1b ; @ 否则向后跳转到A处执行
1: ;B
——————————————————————————————————————
有趣的是:
1:b 1b @无限循环的意思,与while(1)等效
转载于:https://www.cnblogs.com/qiuheng/p/5741256.html
(转)汇编bne的问题相关推荐
- 汇编 bne 1b和bne 1f浅析
以前看过的汇编代码只有b,bl和bne label等,从未见过bne 1b,今天在看韦东山老师的<Linux完全开发手册>第六章有如下代码: 1: ldr r4,[r2],#4 str r ...
- 汇编bne的问题 汇编中的标号1: 以及bne 1b解释
下面一段程序摘自<嵌入式Linux应用开发完全手册>page-95 memsetup: @ 设置存储控制器以便使用SDRAM等外设 mov r1, #MEM_CTL_BAS ...
- ARM汇编 beq和bne
1. 前阵子看cpu从sleep模式唤醒时,对tst bne和tst beq有些模糊.先记录: 摘抄如下: TST R0, #0X8 BNE SuspendUp :BNE指令是" ...
- bne 1b 汇编含义
bne 1b 汇编含义 汇编指令中 bne label 这条指令有以下两种特别的写法:bne 1b, bne 1f. bne 1b 指的是 backward,倒退寻找标号为 1 的地方并跳转. 同样也 ...
- ARM汇编 beq和bne %BXX前XXb, %FXX后XXf
%BXX前XXb, %FXX后XXf 1. 前阵子看cpu从sleep模式唤醒时,对tst bne和tst beq有些模糊.先记录: 摘抄如下: TST R0, #0X8 BNE Sus ...
- arm汇编语言中bne 1b的意思
bne - branch if nemachines: base syntax: bne $soffset8 format: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ...
- 经常使用ARM汇编指令
一面学习,一面总结,一面记录. 以下是整理在网上找到的一些资料,简单整理记录一下,方便以后查阅. ARM处理器的指令集能够分为跳转指令.数据处理指令.程序状态寄存器(PSR)处理指令.载入/存储指令. ...
- 嵌入式 ARM 汇编编程例题(二维数组按规律求和,求两数 gcd / lcm,求数组 min / max,字符串复制,排序)
文章目录 0x00. 整数加减乘除 0x01. 一维数组按某种规律求和 0x01.1 求 1~100 之和 0x01.2. 求一维数组的和 0x01.2. 求一维数组的所有奇数的和 0x02. 二维数 ...
- Linux内核源码分析--内核启动之(2)Image内核启动(汇编部分)(Linux-3.0 ARMv7) 【转】...
转自:http://blog.chinaunix.net/uid-25909619-id-4938389.html 在完成了zImage自解压之后,就跳转到了解压后的内核(也就是vmlinux的bin ...
最新文章
- python使用numpy的np.power函数计算numpy数组中每个数值的指定幂次(例如平方、立方)、np.power函数默认返回整数格式、np.float_power函数默认返回浮点数
- java常用容器(集合)的总结
- 字段对应数组_字段不同的多个工作薄汇总? 还要固定字段位置 !难不倒我!...
- cannot open layout editor - how to fix error message
- 知乎: 如何评价阿里开源的企业级 Node.js 框架 egg? #18
- [算法导论]哈希表 @ Python
- c语言计算机二级知识点总结,计算机二级考试C语言知识点总结
- 【NVIDIA】Win10 + CUDA10 + cuDNN 安装教程(转载)
- 从ToC到ToB,疫情给我们的影响是什么?
- cass坡度土方计算案例_CASS土方量计算总结
- android文件浏览器,安卓最强大的文件浏览器:ES文件浏览器
- 怎么给视频打马赛克?视频剪辑时快速添加马赛克的方法
- SpringBoot 与 Kotlin 完美交融
- 弱网条件下基于阻抗小扰动稳定性分析,小信号模型,阻抗扫描(电容电流反馈有源阻尼),单逆变器SRF-PLL
- 设计模式之禅【访问者模式】
- 应用容器化之Kubernetes实践
- 根据收入计算纳税和税后所得
- 嵌入式系统开发的基础知识
- 从《雪白血红》说起(1)
- k8s滚动更新(六)--技术流ken
热门文章
- vtt或srt字幕挂载
- 服务器和交换机物理连接_二层、三层及四层交换机的区别 | 小知识
- Linux中常用的英文总结
- 递归回溯生成和解决数独问题c/c++
- 数学建模-数学规划模型
- ubuntu--ogv格式转mp4格式
- 大淘客的index.php,index.php · zenozhengs/大淘客CMS底部菜单修改版 - Gitee.com
- 巴比特 | 元宇宙每日必读:多路径试水却并未摸清元宇宙的轮廓,互联网大厂对元宇宙的布局仍处于“盲人摸象”的阶段?...
- 自写自用的移动小程序故障管理扫码报修系统
- PyCenterNetDetector is not in the models registry