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

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

Введение
Готовые функции на блюдечке
некоторые программисты
Листинг1 запуск процесса на выполнение через win32 API – 12 команд и 73h байта

Листинг2 запуск процесса на выполнение
кто-то предпочитает
Листинг3 запуск процесса на выполнение
настоящие программисты
Врезка вызов API-функций из ассемблерный вставок
Листинг 5 "логичный", но неправильный способ вызова API-функций


Листинг6 дизассемблер показываем
дизассемблер IDA Pro – мощное средство выявления ошибок в программах
Листинг7 "не логичный", но правильный способ вызова API-функций
Листинг8 косвенный вызов функции CreateProcess с явным заданием суффикса W

Листинг9 а вот его дизассемблерный листинг — вызывается именно та функция, которая была указана
Листинг10 косвенный вызов функции
Листинг11 компилятор выбрал ASCII-вариант, что соответствует его настройкам по умолчанию
Листинг12 косвенный вызов статически линкуемых функций приводит к краху
Выделение памяти на стеке
Листинг 13 трюкаческий пример
в отладчике хорошо видно
в отладчике хорошо видно
Листинг16 трюкаческий пример, портированный на 286+ процессоры
Листинг17 пример программы на

Листинг18 при выделении большого
Все аргументы в одном месте
Листинг 19 демонстрация передачи аргументов cdecl-функциям через однократно выделяемый блок памяти
Заключение
Содержание раздела