![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
![]()
Есть куча способов получить исполняемый файл.
Цитата:
Замены стартера(Bootstrap). https://wiki.osdev.org/Bare_Bones Сжатия и выкидывания секций через линкер. А сравнивать 16 битный код смысла нету. Тогда компиляторы были маленькие писались малыми коллективами. А сейчас есть x64 есть АРМ. Над оптимизацией которых бьются уже большие коллективы, да даже колоборации коллективов. Взять хотя бы уровни оптимизации которых стало больше с -O2 до -О4. И на каждом уровне есть просто куча различных техник и приемов. И вот это только для начала: https://wasm.in/blogs/optimizacija-d...ium-chast-1.9/ https://www.intel.com/content/dam/ww...ion-manual.pdf
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
|
![]() |
![]() |
![]() |
#12 |
Участник клуба
Регистрация: 21.03.2010
Сообщений: 1,508
|
![]()
Я же просил об этом не писать. Напиши пустую программу на С и собери GCC с -О4, ты удивишься её размеру. Я здесь и хочу разобраться, почему после оптимизации "воздуха" получаются "кирпичи". Это мегамозги думают? Вопрос, чем они руководствуются, чтобы добавлять этот "мусор"?
|
![]() |
![]() |
![]() |
#13 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,725
|
![]()
Написал. Выхлоп пустой:
Код:
|
![]() |
![]() |
![]() |
#14 |
Участник клуба
Регистрация: 21.03.2010
Сообщений: 1,508
|
![]() |
![]() |
![]() |
![]() |
#15 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,725
|
![]()
Кб чего? Одной инструкции?
|
![]() |
![]() |
![]() |
#16 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Что Вы называете "мусором"?
смотрите. Аналог такой. у меня есть велосипед. Там два колеса, сидение, руль. я прицепил моторчик, бензобак. Получилось конструкция типа "мопед". вес получился 60 кг. Решил добавить руль, пару колёс, сидения, корпус. Двигатель чуть побольше, бак. Получился автомобиль. Почему вес стал в 20 раз больше и зачем добавили весь этот "мусор" ?! |
![]() |
![]() |
![]() |
#17 | |
Участник клуба
Регистрация: 21.03.2010
Сообщений: 1,508
|
![]() Цитата:
Есть 2 велосипедные рамы, которые ничего не делают. Почему одна весит допустим 300 байт, а другая 4 КБ. За счёт чего? Она лучше, красивее, прочнее? К программам это не применимо, только отказоустойчивость. Она более защищена от взлома? Даввайте только не гадать, а анализировать код? |
|
![]() |
![]() |
![]() |
#18 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,725
|
![]()
Давайте. Приводите аналогичный код на асме и С. Приводите выхлоп компилятора и проводите анализ прям по пунктам: заголовок столько-то, под стек там выделено столько-то, тут столько-то, там столько-то сегментов/таблиц/..., тут ....
P.S. И указывайте опции обязательно. |
![]() |
![]() |
![]() |
#19 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
![]() Код:
Код:
"Famw.exe hello.asm" "C:\Qt\Qt5.2.0\Tools\mingw48_32\bin \i686-w64-mingw32-g++.exe" -s HELLOC.CPP -o helloc.exe -nostdlib -Wl,-b=pe-i386,-luser32,--subsystem=windows -s" 1.5 и 3 Кб. Можно ещё сжать там полно нулей. ![]() P.S. Почему-то к сообщению не цепляются файлы.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 27.05.2019 в 16:41. |
![]() |
![]() |
![]() |
#20 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
![]()
В онлайновом учебнике по программированию на ассемблере в win32 (перевод UniSoft) есть такие строки: «Я провел эксперимент, написал программу (обычное окно с одной кнопкой в центре, которая закрывает его) на разных языках высокого уровня и после компиляции получил вот такие размеры этой самой программы:
Код:
Последний раз редактировалось Mikl___; 27.05.2019 в 17:35. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Реализация других языков в Visual Basic | pikachu_182 | Помощь студентам | 0 | 27.05.2012 16:11 |
Как компиляторы для языков программирования пишутся на самих себе? | bullvinkle | Свободное общение | 29 | 19.03.2010 15:47 |
вместо номера телефона выводится на экран какой-то мусор | le_den | Общие вопросы C/C++ | 2 | 25.11.2008 20:45 |
компиляторы и трансляторы PDP-10 FORTRAN, PDP-1 Assembler и PERL | akimovster | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 24.07.2007 05:59 |