Когда я запускаю Hexdump с помощью команды xxd -b "textile.txt" в OS X, терминал печатает как двоичный файл, так и фактический эквивалент ASCII в крайнем правом столбце, показывая текстовые файлы на английском языке.

Если я создаю простую программу на C, которая ничего другого не делает, то выводит на терминал «привет мир» и сохраняю ее как файл .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 ответ1

0

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .