размер исполняемых файлов? - PullRequest
3 голосов
/ 04 апреля 2011

Я создал очень маленький код для добавления двух целых чисел и сохранения результата в других переменных, как на ассемблере, так и на языке c. код в сборке стоил мне 617 байт, но код на C занял 25 тыс. байт !! почему есть огромная разница? Также, как я могу просмотреть символические инструкции по сборке для написанного мною кода C?

1 Ответ

4 голосов
/ 04 апреля 2011

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

Издержки, которые вы видите в этом случае, вероятно, связаны со статическим связыванием стандартных компонентов, таких как printf.Скорее всего, оператор включения добавил их.

Если вы хотите увидеть, как выглядит ваш вывод, вам понадобится диссамблер. Здесь - это документация для NASM , если вы хотите взглянуть на него.

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

...