news 2026/8/5 3:06:49

Cortex-M3:为什么标号(Label)有时是相对地址,有时是绝对地址?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Cortex-M3:为什么标号(Label)有时是相对地址,有时是绝对地址?

难度:★★
本文首发于我的嵌入式技术号「OneChan」,未经授权禁止转载。


先看两行代码:

LDR R0, =Reset_Handler ; ① DCD Reset_Handler ; ②

它们都引用了同一个标号Reset_Handler

但用反汇编器查看,你会发现一个诡异的现象:

  • ① 变成了一条LDR R0, [PC, #offset]——PC 相对寻址
  • ② 变成了一个硬邦邦的 32 位立即数,比如0x08000101——绝对地址

同一个标号,为什么一会儿是相对的,一会儿是绝对的?

更诡异的是:如果你把这段代码从 Flash 挪到 RAM 里运行,① 可能还能跑,② 直接炸。

今天这篇文章,就来拆开标号在不同上下文里的“双重人格”,看看汇编器和链接器如何决定把一个标号变成相对地址还是绝对地址,以及这个决定在运行时会怎样影响你的程序。


一、标号本身没有“绝对”或“相对”的属性

先说清楚第一个误区。

Reset_Handler

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/5 3:06:34

GitHub个人访问令牌(PAT)创建与安全使用全指南

1. 为什么你需要一个个人访问令牌如果你在命令行里用git push往 GitHub 推送代码时,突然弹出一个窗口让你输入用户名和密码,而你明明记得密码是对的,却死活登录不上去,那你大概率是遇到了 GitHub 在 2021 年 8 月 13 日之后实施的…

作者头像 李华
网站建设 2026/8/5 3:06:32

NVIDIA-SMI ERR!错误深度解析:从GPU监控原理到硬件级诊断修复

1. 项目概述:当NVIDIA-SMI不再“听话”如果你是一位深度学习研究员、AI开发者,或者只是位爱折腾高性能计算和游戏的玩家,那么nvidia-smi这个命令对你来说,可能比系统自带的文件管理器还要熟悉。这个由NVIDIA官方提供的命令行工具&…

作者头像 李华
网站建设 2026/8/5 3:05:21

从MTF/SFR曲线看懂镜头光学素质:量化评估与实战解读

1. 从“拍得清”到“测得准”:为什么我们需要SFR/MTF?每次拿到一个新镜头,或者看到评测文章里那些复杂的曲线图,你是不是也和我一样,心里会犯嘀咕:这些图表到底在说什么?为什么一个简单的“清晰…

作者头像 李华
网站建设 2026/8/5 3:04:43

VS Code Remote-SSH 远程开发配置与高效工作流详解

1. 项目缘起:为什么选择 VS Code 连接远程服务器? 如果你是一名开发者,或者需要经常在 Linux 服务器上工作,那么“本地编辑,远程运行”这个场景你一定不陌生。过去,我们可能习惯用 PuTTY、Xshell 这类 SSH…

作者头像 李华
网站建设 2026/8/5 3:04:05

JavaScript测试分层策略:单元、集成与功能测试的实战指南

1. 项目概述:为什么我们需要区分测试类型? 在JavaScript的世界里,写代码只是第一步,确保代码在各种情况下都能如预期般工作,才是项目能走多远的关键。我见过太多项目,初期功能跑得飞快,一到迭代…

作者头像 李华
网站建设 2026/8/5 3:02:01

3分钟快速上手:免安装微信网页版终极解决方案指南

3分钟快速上手:免安装微信网页版终极解决方案指南 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 还在为无法在电脑上使用微信而烦恼吗&am…

作者头像 李华