Вывод Hexdump (в частности, xxd) для файлов exec
Когда я запускаю Hexdump с помощью команды xxd -b "textile.txt"
в OS X терминал печатает как двоичный файл, так и фактический эквивалент ASCII в крайнем правом столбце, показывая текстовые файлы на английском языке.
Если я создаю простую C-программу, которая мало что делает, то выводит "hello world" на терминал, и я сохраняю ее как .exec
файл, xxd -b
Вывод команды содержит двоичный файл, который при переводе нигде не найден в исходном коде прекомпиляции исходного файла.exec.
Пример:
0002034: 00000101 00000000 00000010 01011111 01101101 01101000 ..._mh
000203a: 01011111 01100101 01111000 01100101 01100011 01110101 _execu
0002040: 01110100 01100101 01011111 01101000 01100101 01100001 te_hea
0002046: 01100100 01100101 01110010 00000000 00100001 01101101 der.!m
000204c: 01100001 01101001 01101110 00000000 00100101 00000010 ain.%.
Я предполагаю, что за это отвечает процесс компиляции, что приводит меня к предположению, что этот вывод в самом правом столбце на самом деле может быть кодом сборки.
Мой вопрос в резюме:Какова природа вывода шестнадцатеричного дампа для файлов.exec, а именно: это код сборки, а если нет, то что это?
Заранее спасибо.
1 ответ
Не совсем сборка; но я знаю, что довольно часто смешивают сборку и машинный код. Сборка по-прежнему является языком, доступным для чтения (некоторым) людям, и она должна быть скомпилирована для съедобности на машинах. То, что вы видите здесь, это машинный код.