Size: a a a

Ассемблер

2021 June 16

CB

Cyber Bully in Ассемблер
источник

d

disba1ancer in Ассемблер
за размер всегда приходится платить, даже если всё на чистом асме
источник

АШ

Алексей Шведов... in Ассемблер
Вот в этом проблема. Сначала ты мучаешься, чтобы наконец получить нормальный размер для Си, а потом оказывается, что страдает скорость, а ещё тебе надо потеть, чтобы получить API через хитрости системы.

С ассемблером всё намного проще и удобнее. Сам хозяин своей судьбы
источник

CB

Cyber Bully in Ассемблер
/Gs- и __declspec(safebuffers) перед функцией вообщем
источник

s

s54816 in Ассемблер
Конкретно в TCC — да. Он вообще не пытается оптимизировать, кроме самых простых случаев. Зато с ним не нужно никаких дополнительных телодвижений делать, чтобы получать мелкие бинарники.
источник

d

disba1ancer in Ассемблер
msvc на помойку сразу выбросите, лучше уж шланг возмите
источник

CB

Cyber Bully in Ассемблер
Ну так с асмом тоже придется делать такое
источник

АШ

Алексей Шведов... in Ассемблер
Не придётся
источник

АШ

Алексей Шведов... in Ассемблер
А с FASM так вообще легкотня
источник

d

disba1ancer in Ассемблер
придётся, просто ты этого не поймёшь
источник

АШ

Алексей Шведов... in Ассемблер
Ну да, вот куча случаев было, и не пришлось. И я ещё не понимаю
источник

CB

Cyber Bully in Ассемблер
Если ты выкинешь из линковки какой-нибудь user32.lib и захочешь окошко сделать то придется руками грузить user32.dll и в таблице экспорта апи искать ( GetProcAddr вроде в винде ? )
источник

АВ

А зачем Вам in Ассемблер
В jonesforth.S
источник

d

disba1ancer in Ассемблер
скорее всего для .lib лишнее выкидывается, и GetProcAddr как раз сидит в той самой user32, емнип
источник

CB

Cyber Bully in Ассемблер
у мс написано что в кернел32
источник

АШ

Алексей Шведов... in Ассемблер
Ну вот API системы - руками можно взять из SEH, и читать экспорт таблицу файла, или если нужна доп библиотека - получаешь GetProcAddress, LoadLibrary, и вперёд. Будет больше размер файла

Можно ещё через dd вписать в импорт таблицу PE, тогда будет размер файла меньше

С оптимизацией и весом тоже всё просто. Захотел - где-то оптимизировал, захотел - где-то уменьшил вес, добавил тактов. И так это всё можно скомпенсировать. Си так не сможет

И не нужно никакие компиляторы дополнительные качать, что-то в флагах заменять, что-то ещё где-то копаться
источник

CB

Cyber Bully in Ассемблер
из  Seh?
источник

АШ

Алексей Шведов... in Ассемблер
Ну да. Так же InMemoryOrderModuleList
источник

CB

Cyber Bully in Ассемблер
А
источник

CB

Cyber Bully in Ассемблер
Peb
источник