嵌入式学习笔记(16)反汇编工具objdump

2.4.1反汇编的原理&为什么要用反汇编

arm-linux-objdump -D led.elf > led_elf.dis

objdump是gcc工具链中的反汇编工具,作用是由编译链接好的elf格式的可执行程序反过来得到汇编源代码

-D表示反汇编

> 左边的是elf可执行程序(反汇编的源)

> 右边的是反汇编生成的反汇编程序

反汇编的原因有以下:

1)逆向破解。

2)调试程序时,反汇编可以帮助我们理解,尤其是在理解链接脚本、链接地址等概念时。

3)把C语言源代码编译链接生成的可执行程序反汇编后得到的反汇编代码可以帮助我们理解C语言和汇编语言之间的对应关系。非常有助于深入理解C语言。

2.4.2反汇编文件的格式和看法

(汇编 assemnbly 反汇编 dissembly)

标号地址、标号名字、指令地址、机器码、指令机器码及汇编到的指令

扩展:ARM汇编中用地址池方式来实现非法立即数

2.4.3初识指令地址

下载烧录执行的bin文件,内部其实就是一条一条的指令机器码。这些指令每一条都有一个指令地址,这个地址时链接的时候ld给指定的(ld根据我们写的链接脚本来指定)

2.4.4展望:反汇编工具帮助我们分析链接脚本

反汇编的时候得到的指令地址是链接器考虑了链接之后得到的地址,而我们写代码时通过指定的链接脚本来让链接器给我们链接合适的地址。但是有时候我们写的链接脚本有误(或者我们根本不知道这个链接脚本会怎么样),这时候可以通过反汇编文件来分析这个链接脚本的效果。看是不是我们想要的,如果不是,再改再看。

嵌入式物联网的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而错失高薪offer。不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。点击这里************扫码进群领资料************,0元领取学习资源,让你的学习之路更加顺畅!记得点赞、关注、收藏、转发哦!

相关推荐
华清远见IT开放实验室21 小时前
【课程升级】STM32U5体系化课程深度升级!全103集,覆盖裸机开发+TouchGFX图形界面+智能手表项目,从入门到实战!
stm32·单片机·嵌入式硬件·智能手表
铁手飞鹰21 小时前
[Linux笔记]内核裁剪
linux·笔记·linux内核裁剪
楼田莉子21 小时前
Linux进程间通信——System V系列
linux·服务器·c++·学习·信息与通信
一路往蓝-Anbo21 小时前
第 2 篇:单例模式 (Singleton) 与 懒汉式硬件初始化
开发语言·数据结构·stm32·单片机·嵌入式硬件·链表·单例模式
321.。21 小时前
从 0 到 1 实现 Linux 下的线程安全阻塞队列:基于 RAII 与条件变量
linux·开发语言·c++·学习·中间件
啵啵鱼爱吃小猫咪21 小时前
机器人标准DH(SDH)与改进DH(MDH)
开发语言·人工智能·python·学习·算法·机器人
嵌入你的世界1 天前
cmBacktrace 实现原理解析:从 HardFault 现场到源码回溯
stm32·单片机·嵌入式硬件·cmbacktrace
时光慢煮1 天前
从进度可视化出发:基于 Flutter × OpenHarmony 的驾照学习助手实践
学习·flutter·华为·开源·openharmony
BackCatK Chen1 天前
浅聊:STM32 2026 年核心技术及选型建议
stm32·单片机·嵌入式硬件·csdn年度技术趋势预测
week_泽1 天前
GBDT 算法中构建第一个弱学习器(CART 回归树)-计算示例
学习·算法·回归·gbdt