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


Содержание


Введение
Готовые функции на блюдечке
Рисунок 2 некоторые программисты
Листинг1 запуск процесса на выполнение через win32 API – 12 команд и 73h байта
Листинг2 запуск процесса на выполнение
Рисунок3 …кто-то предпочитает
Листинг3 запуск процесса на выполнение
Рисунок4 настоящие программисты
>>> Врезка вызов API-функций из ассемблерный вставок
Листинг 5 "логичный", но неправильный способ вызова API-функций
Листинг6 дизассемблер показываем
Рисунок6 дизассемблер IDA Pro – мощное средство выявления ошибок в программах
Листинг7 "не логичный", но правильный способ вызова API-функций
Листинг8 косвенный вызов функции CreateProcess с явным заданием суффикса W
Листинг9 а вот его дизассемблерный листинг — вызывается именно та функция, которая была указана
Листинг10 косвенный вызов функции
Листинг11 компилятор выбрал ASCII-вариант, что соответствует его настройкам по умолчанию
Листинг12 косвенный вызов статически линкуемых функций приводит к краху
Выделение памяти на стеке
Листинг 13 трюкаческий пример
Рисунок8 в отладчике хорошо видно
Рисунок9 в отладчике хорошо видно
Листинг16 трюкаческий пример, портированный на 286+ процессоры
Листинг17 пример программы на
Листинг18 при выделении большого
Все аргументы в одном месте
Все аргументы в одном месте - часть 2
Листинг 19 демонстрация передачи аргументов cdecl-функциям через однократно выделяемый блок памяти
Заключение



- Начало -