169 похожих чатов

Удивился размеру fas-файла, который одинаково огромен и для мелкой программы

и для большой. Посмотрел внутренности. А там - огромное кол-во функций и структур, которые в моей программе ни разу не использованы. Похоже что в генерируемый fas-файл включается всё содержимое include (где разумеется прописано множество неиспользуемых функций). А можно ли как-то с этим бороться, чтобы в fas было только то что реально используется?

9 ответов

21 просмотр

Увы, это уже не относится к ассемблеру. Таким путём мы придём к компилятору С. Хотя вы можете использовать NASM с оптимизацией от линковщика C. Но это, конечно, не решение, а уход от проблемы.

Евгений- Автор вопроса
CLFLUSH 🇷🇺 rdseed
Увы, это уже не относится к ассемблеру. Таким путё...

Но ведь ассемблер мог бы писать в -s file.fas только то что используется реально? Я конечно понимаю что в ряде случаев может быть какое-то динамическое построение адресов, флагов. Но в общем случае - лишняя инфа не нужна.

Евгений
Но ведь ассемблер мог бы писать в -s file.fas толь...

Конкретно в FASM, насколько я знаю, такой функции нет. Но если вы спрашиваете "реально ли это?" - да, конечно.

Можно использовать внешний компоновщик, который заодно нормальные отладочные символы сгенерирует

Евгений- Автор вопроса
Aleksandr
Можно использовать внешний компоновщик, который за...

Конкретно что надо сделать, в случае FASM? Какой компоновщик подойдёт?

.fas так сделан, чтобы можно было как в fasmw при ошибке заходить в макросы, которые сгенерировали конкретную строчку. Это на самом деле удобно, когда надо эти самые макросы отлаживать. Уменьшить штатными способами нельзя. Можно делать .map из .fas, можно ребилдить .fas, выкидывая всё лишнее, но это всё будут внешние утилиты и соответствующие неудобства.

Евгений- Автор вопроса
s54820
.fas так сделан, чтобы можно было как в fasmw при ...

А какие есть инструменты для работы с fas? Чем в эти макросы заходить? x64dbg умеет заходить в такие макросы?

Евгений
А какие есть инструменты для работы с fas? Чем в э...

listing и prepsrc из официального пакета, например.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта