我在x86处理器中使用cmp命令并且工作正常(二进制文件是使用gcc生成的)但是在arm cortex 9中使用它时,它没有给出正确的输出(使用cross gcc生成二进制文件)
在X86机器上使用cmp命令进行比较时,会产生正确的输出。
x - 86机:
说我有两个文件a.b bin, b.b bin(应该是相同的,而比较使用cmp)
cmp a.bin b.bin
上肢皮质A9:
a.bin, b.bin
cmp a.bin b.bin
此处也必须相同
但是会产生不匹配
请提供任何线索!!
你的问题不是很清楚,有点模糊,所以我将在黑暗中尝试一下,假设你是在问为什么相同的源代码编译成不同的文件。
尽管无论使用哪种编译器,编译后的程序(假设没有UB或可移植性问题)在功能上都是相同的,但二进制级别的程序不一定是相同的。
例如,不同的优化级别将生成不同的文件。编译器可以将构建日期嵌入到文件中。不同的编译器会以不同的方式排列代码。这些都是为什么你可能会在"相同"程序中得到不同输出的原因。