使用调试信息反汇编 IAR 8051

Disassemble IAR 8051 with debug information

我在项目中开发8051固件,必须使用IAR作为工具链。构建系统是 CMake。我无法使用 IAR IDE.

为了优化我的源代码,我想查看生成的二进制文件的反汇编,最好带有标签。有没有办法让 xlink 输出一些我可以分析的东西?我知道 IAR IDE 调试器有调试视图,但我不能使用 IDE。好像xlink可以输出很多文件格式,但是哪些可以在命令行提取调试信息?

链接器通常不是生成程序集列表的工具。它通常只知道字节、节、要解析的引用、要定位的地址、要生成的输出格式等等。只有少数链接器知道如何使用最终地址修补 compiler/assembler 生成的列表。

所以你需要看看了解机器代码的工具,编译器或汇编器。不幸的是,IAR 似乎没有提供反汇编程序。

关于“iar 8051 编译器选项”的快速网络研究揭示了 this compiler guide。又一次快速浏览 table 目录导致了“编译器选项描述”一章,其中描述了选项 -l。指南说:

Use this option to generate an assembler or C/C++ listing to a file. Note that this option can be used one or more times on the command line.

这应该足以看到生成的程序集。如果你想要链接后分配的地址,链接器可以提供。

无论如何,作为最后的手段,你想看看像Ghidra这样的体面的反汇编程序。