我正在学习汇编语言编程。我遇到了微控制器程序的步骤。在最后一步为什么将 .obj 文件转换为 .hex 文件。该过程表明该文件被转换为 .hex 并刻录到 ROM。据我了解,.obj 文件已经是机器语言代码并且可以运行。如果这个问题有意义,请解释为什么最后一步需要 OH 转换器?
问问题
462 次
1 回答
3
“obj”可以是任何东西,没有标准。它可能是机器代码,可能是一些抽象的“目标代码”格式,它可能包含也可能不包含调试信息(例如变量/函数名称)。通常它不是最终的二进制文件,而是链接器可以理解的格式。
即使您使用汇编程序编写代码,也必须通过在线调试器或专用电路编程器以某种方式将该代码下载到内存中。然后,您需要您的工具可以处理的文件格式。
“abs”通常是机器代码,但包含调试信息,用于通过调试器下载和排除程序故障。
“hex”是标准化的“Intel hex”格式,它是没有调试信息的原始机器代码,以 ASCII 格式表示。它通常由在线程序员使用,也是生产中最终产品二进制文件的通用格式。(其他此类常见格式为 .bin 和 .s19)
于 2020-08-28T09:21:04.190 回答