为什么最后会有一个十六进制转换器的对象?

why is there a object to hex converter in the end?

我正在学习汇编语言 programming.I 遇到了微控制器程序的步骤。 为什么在最后一步将 .obj 文件转换为 .hex 文件。该过程表示文件被转换为 .hex 并刻录为 ROM.As 根据我的理解 .obj 文件已经是机器语言代码并且可以是 运行。 如果这个问题有意义,请解释为什么在最后一步需要 OH 转换器?

“obj”可以是任何东西,没有标准。它可能是机器代码,可能是某种抽象的“目标代码”格式,可能包含也可能不包含调试信息(例如 variable/function 名称)。通常它不是最终的二进制文件,而是链接器可以理解的格式。

即使您使用汇编程序编写,也必须通过 in-circuit 调试器或专用电路编程器以某种方式将该代码下载到内存中。那么您需要一种您的工具可以处理的文件格式。

“abs”通常是机器代码,但包含调试信息,用于通过调试器下载程序并进行故障排除。

“hex”是标准化的“Intel hex”格式,它是没有调试信息的原始机器代码,以 ASCII 格式表示。它通常被 in-circuit 程序员使用,并且是用于生产中最终产品二进制文件的通用格式。 (其他此类常见格式为 .bin 和 .s19)