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

         

некоторые программисты


Грань между плюсами "мышиным" и "рукописным" кода очень тонка. Отклонение в одну строну — снижает продуктивность программы, в другую — увеличивает (причем зря) время разработки. Короче, не будем разводить демагогию, а рассмотрим фрагмент кода, запускающий процесс на выполнение стандартным способом через win32 API-функцию CreateProcess:

       xor eax,eax          ; eax := 0

       push offset pi              ; lpProcessInformation

       push offset sis      ; lpStartupInfo

       push eax             ; lpCurrentDirectory

       push eax             ; lpEnvironment

       push eax             ; dwCreationFlags

       push eax             ; bInheritHandles

       push eax             ; lpThreadAttributes

       push eax             ; lpProcessAttributes

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

       push eax             ; lpApplicationName

       call ds:[CreateProcess]; косвенный

вызов API-функции

через IAT



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