Команда CMP не работает должным образом

Я использую команду cmp в процессоре x86 и работает правильно (двоичные файлы генерируются с использованием gcc), но при использовании ее в коре головного мозга a9 она не дает правильного вывода (двоичные файлы генерируются с использованием перекрестного gcc)

специфичные для платы двоичные файлы при сравнении на машине X86 с использованием команды cmp дают правильный вывод.

Машина Х-86:

скажем, у меня есть 2 файла a.bin, b.bin (должны быть одинаковыми при сравнении с использованием cmp)

cmp a.bin b.bin

и его правильное.

Кора A9 руки:

а.бин, б.бин

cmp a.bin b.bin

здесь также должно быть то же самое.

но это создает несоответствие.


любая подсказка пожалуйста!!


person San    schedule 31.05.2013    source источник
comment
Версии gcc одинаковы. Запустите gcc -v на обоих и опубликуйте вывод. Кроме того, вы называете их одинаково? См. также: бинарные изменения каждой сборки.   -  person artless noise    schedule 31.05.2013
comment
это что-то вроде exe vs elf? elf и другие форматы иногда gcc и другие компиляторы ставят отметку времени от времени компиляции, что довольно легко увидеть, сравнивает ли байт файлы. в некоторых форматах может и не быть. если они предположительно представляют собой необработанные двоичные файлы без обертки, подобной elf/coff/exe, то см. ответ tangrs, нет причин ожидать, что два двоичных файла будут совпадать даже с двумя инструментами, имеющими одно и то же родительское имя (gcc, msvc и т. д.).   -  person old_timer    schedule 31.05.2013
comment
пожалуйста, покажите / перечислите различия.   -  person old_timer    schedule 31.05.2013


Ответы (1)


Ваш вопрос не очень ясен и немного расплывчат, поэтому я сделаю шаг в темноту и предположу, что вы спрашиваете, почему один и тот же исходный код компилируется в разные файлы.

Хотя скомпилированная программа (при условии отсутствия проблем с UB или переносимостью) будет функционально одинаковой независимо от того, какой компилятор используется, программа на двоичном уровне не обязательно будет такой же.

Например, разные уровни оптимизации будут генерировать разные файлы. Компилятор может вставлять даты сборки в файл. Разные компиляторы упорядочат код по-разному.

Это все причины, по которым вы можете получать разные результаты для «одной и той же» программы.

person tangrs    schedule 31.05.2013