如何在MPLAB x中查看我C代码的汇编代码

6

我有用C语言编写的代码,但是我需要查看汇编文件以便优化代码并了解某些函数需要多长时间。有人知道快速打开汇编代码的方法吗?


1
可以肯定的是,C编译器的作者比你更擅长汇编级别的优化。为了您的代码和心理健康,请重新考虑您的手动优化计划。 - Seva Alekseyev
确实,您肯定无法比任何现代编译器制作出更好的东西。建议您停止追求“leet h4xx0r sk1llz”,转而做一些有用的事情 - 只是这么说而已。您无法优化已经被机器优化过的东西,这只是一个幼稚的梦想。 - specializt
4
@SevaAlekseyev和specializt,别那么高傲!在现代的8位处理器上进行优化比C编译器更容易。此外,他之所以问这个问题是因为他想知道某些函数需要多长时间,这在PIC处理器上是非常合理的,因为它没有多线程,因此主循环中的所有功能都必须轮询。请让我来翻译。 - c.fogelklou
1
Aldo,免费的mplab编译器根本没有优化 :) - avl_sweden
5个回答

9

我也遇到了和你一样的问题。以下是对我有效的解决方法。

调试主程序,完成后选择

" Window >> Debugging >> Disassembly ".

然后你会看到相应的汇编代码。

希望这可以帮助你。


4
如果有人在未来寻找此解决方案,我也遇到了同样的问题并找到了更好的解决方案。
在MPLAB X中,右键单击工具栏并选择“自定义”(也可以在“视图/工具栏”下找到)。现在在您可以拖动到工具栏的菜单中找到“窗口”树,在其中找到“反汇编列表文件”。将其拖到工具栏上的某个位置(选择一个始终存在的工具栏)。
现在,当您以调试模式构建某些内容时,您可以单击该按钮以打开(格式良好的)汇编窗口。如果保持它打开,它将在每次构建后自动刷新。

2
你基本上只需要不将其完全编译,有可用的标志,这样你就可以看到你的代码处于各种状态,包括汇编语言。
拿一个 .c 文件并使用 gcc -S test.c 进行编译。
编辑:我认为 MPLAB 对你的问题不重要,直到我谷歌了它,但我想假设你正在非操作系统形式下运行此代码?
编辑:一些 MPLAB 答案 http://www.microchip.com/forums/m537589.aspx

1
在文件夹dist/default/production/中,你可能会找到一个'.lst'文件,其中包含程序的注释汇编表示。
至少在我的机器上,MPLAB v3.45和XC8编译器v1.38可以使用该方法。

1
这适用于MPLAB X IDE v5.40:

进入项目属性。
选择模拟器作为工具。
在代码中设置断点。
调试主项目。
窗口->调试->反汇编。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接