You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派4B裸机启动代码中arm64汇编`b 1b`含义解析

关于ARM裸机汇编中b 1b指令的解释

1b既不是物理地址,也不是普通标签,它是GNU汇编器(GAS)特有的本地标签引用语法,常见于树莓派这类使用GAS编译的裸机代码中:

  • 以数字开头的1:是本地标签,这类标签允许在代码中重复定义,适合小范围的跳转场景;
  • 后缀b是backward的缩写,表示向前(往代码起始方向)查找最近的同名本地标签;对应的如果是1f,则是forward,代表向后查找最近的1:标签。

举个你代码里大概率存在的对应场景:

1:
    // 示例:等待某个硬件寄存器就绪
    ldr r0, =0x3F00B210  // 树莓派4B的某个外设寄存器地址
    ldr r1, [r0]
    tst r1, #0x10
    bne 1b  // 未就绪则跳回1:处循环

这里b 1b就是跳转到前面的1:标签,实现循环等待逻辑,这在裸机启动代码里很常见(比如等待MMU配置完成、或者外设初始化就绪)。

你之前没见过这种写法,可能是因为接触的是ARM官方汇编器(armasm),它的本地标签语法和GAS不同,而树莓派裸机开发通常用GCC配套的GAS来编译汇编代码。

内容的提问来源于stack exchange,提问作者DanielSun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 06:25:17