Вывод 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 ответ

Не совсем сборка; но я знаю, что довольно часто смешивают сборку и машинный код. Сборка по-прежнему является языком, доступным для чтения (некоторым) людям, и она должна быть скомпилирована для съедобности на машинах. То, что вы видите здесь, это машинный код.

https://en.wikipedia.org/wiki/Machine_code

Другие вопросы по тегам