Ассемблер - экстремальная оптимизация


кто-то предпочитает


Но это еще не предел оптимизации! Воспользовавшись функцией system

из библиотеки MSVCRT.DLL (которая активно используется многими приложениями и практически всегда "болтается" в памяти), мы сократим код до 1Dh байт или даже до 1Ah, если отсрочим восстановление стека, выполнив команду add esp, x в конце функции, выталкивая все аргументы одним махом (подробнее см. "все аргументы в одном месте"):

       push offset file_name      ; имя исполняемого файла с аргументами

       call system          ; прямой вызов функции (почему так — см. врезку)

       add esp,4            ; выталкиваем аргументы из стека (можно сделать позже)



Содержание раздела