|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.05.2019, 09:54 | #1 |
Участник клуба
Регистрация: 21.03.2010
Сообщений: 1,508
|
Размер программы assembler'a или какой мусор добавляют компиляторы других языков?
Приветствую!
Вот код программы ассемблера: Код:
Код:
Можно было бы предположить, что в код C добавляются все обработчики исключительных ситуаций или можно модифицировать программу дизассемблером и добавить вызов любой функции из модуля <stdio.h> и программа корректно вызовет его, но это не так, при добавлении до компиляции вызова ещё одной функции приведёт к большему увеличению размера ЕХЕшника. В этой теме моя задача будет самостоятельно или с Вашей помощью выяснить это и проверить так ли хорошо компиляторы оптимизируют скорость, как многим людям внушили. Про время разработки я ЗНАЮ, что долго, здесь это не обсуждается. Отписывайтесь по теме, пожалуйста. |
27.05.2019, 10:12 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Так дизассемблируйте и посмотрите что в коде.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
27.05.2019, 10:55 | #3 |
Участник клуба
Регистрация: 21.03.2010
Сообщений: 1,508
|
На данном этапе изучения ассемблера это не представляется возможным. Просто когда все смеются и говорят "Не лезь, там всё оптимизировано!", то пусть также смеясь напишут, что оптимизировано. Я буду собирать аргументы и перепроверять. Конечно, если это им не сложно. Просто профессионалы не всегда охотно хотят помогать новичкам, но вдруг?
|
27.05.2019, 10:56 | #4 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,708
|
Цитата:
А можно еще древнее компиляторы взять? Можно еще опции не указывать. Дебаг версию собирать и доп.инфу не стрипать. Можно еще забыть, что короче код не значит быстрее. |
|
27.05.2019, 10:58 | #5 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,708
|
Цитата:
|
|
27.05.2019, 11:06 | #6 | ||
Участник клуба
Регистрация: 21.03.2010
Сообщений: 1,508
|
Цитата:
Про стрип я знаю. Просто не успел вчера сделать. Но опыт мне подсказывает, что стрип или релиз-версия уберут до 60%, то есть будет не в 14, а в 5 раз, но всё равно больше. Вечером сделаю и отпишусь. Цитата:
Последний раз редактировалось xwicked; 27.05.2019 в 11:09. |
||
27.05.2019, 11:09 | #7 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,708
|
Тогда принтф со сканфом не используйте. Кстати, где сканф вариант в вашем асме?
|
27.05.2019, 11:14 | #8 |
Участник клуба
Регистрация: 21.03.2010
Сообщений: 1,508
|
Вот это хорошее замечание, исправлю. А printf почему не использовать, в С есть что-то более низкоуровневое?
|
27.05.2019, 11:21 | #9 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,708
|
Потому что принтф содержит форматную строку и ее разбор, даже в ИДЕ для микроконтроллеров есть опция использовать либу с полным принтфом, урезанным и без поддержки форматирования. И вы взялись сравнивать асм с С/С++?
Цитата:
|
|
27.05.2019, 11:26 | #10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
не знаю, но, имхо, какое-то ядро линкёр всё равно пристыкует.
у меня пустая программа Код:
и EXE получился размером 6036 байт. после TDSTRIP.exe размер EXE получился 4256 байт |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Реализация других языков в 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 |