工具/软件:
我尝试从 Windows 迁移到 Linux、我对 Linux 和 Windows 使用相同的编译器版本22.6.1、但在其中一个 CPU 中、.hex 文件中得到了不同的结果。 我还在.map 文件中做了一个比较、注意到一些符号只移动了1个位置。 这些 simbol 是函数名,我试图检查指令是否相同,但我不知道如何做到这一点。
那么、我的问题是、是否知道同一个工程的 Linux 编译器和 Windows 编译器的输出不同? 如果保证输出相同、那么对于其中一个 CPU、可能会有什么不同? 我可能缺少一些知识、因此希望提供与此相关的文档。
提前感谢
编辑:
大家可以看到、Linux (右)和 Windows (左)之间有一些变化
此外、一些符号会被移动1个字节
编辑2:
我做了更多的研究,注意 diff,在整个代码中唯一相关的 diff 是这个部分,当在 windows (左侧)添加一个额外的指令 MOVL XT, acc 然后使用 XT,其中在 Linux (右侧)直接使用 ACC。 也似乎 ACC 托管在 windows 零件中的较早位置