Ассемблер для Windows. Владислав Пирогов.
Получить книгу!
Получить книгу!
Несмотря на то, что сегодня очень мало кто использует ассемблер для создания программ под Windows, всем рекомендую прочитать эту книгу.
Но, прежде чем рассказать о книге, несколько слов о том, для чего люди используют ассемблер, если есть языки высокого уровня и соответствующие средства разработки.
Итак, Ассемблер в Windows используют:
- Для создания программ с небольшим размером исполняемого файла.
- Для реализации алгоритмов, когда требуется максимальное быстродействие.
- В тех случаях, когда реализовать алгоритм на языке Ассемблера проще, чем на языке высокого уровня (да-да - бывает и такое!).
- Когда надо дизассемблировать программу и посмотреть, как там что работает (ну или ломануть её, на худой конец))).
- Просто “из спортивного интереса”.
Есть и другие причины. Но, думаю, вполне достаточно и этих, чтобы изучить Ассемблер хотя бы в общих чертах.
А теперь о книге.
Книга очень познавательная.
Будет полезна как новичкам, так и опытным программистам на Ассемблере, которые пока имеют мало опыта для создания программ под Windows.
Объём книги (ВНИМАНИЕ!!!) - 875 страниц!
Уже только это говорит о том, что эта книга - просто кладезь информации для любителей ассемблера.
Автор рассмотрел множество вопросов - от создания простейшей первой программы до работы с графикой и многозадачности.
В общем, я уже захлёбываюсь от переполняющего меня восхищения, вызванного огромным объёмом работы, который провернул автор при создании этой книги (это я говорю без иронии - я сам пишу книгу по ассемблеру уже несколько лет, но до сих пор не написал и половины от задуманного).
Ну хватит эмоций. Перейдём к сухим фактам. Вот основные разделы книги:
- ОСНОВЫ ПРОГРАММИРОВАНИЯ В WINDOWS.
- Средства программирования в Windows. Первая программа на языке ассемблера и её трансляция. Объектные модули. Директивы INVOKE. Данные об объектном модуле. Упрощённый режим сегментации. О пакете MASM32.
- Основы программирования в операционной системе Windows. Вызов функций API. Структура программы. Примеры простых программ для Windows. Цикл обработки сообщений. Передача параметров через стек.
- Примеры простых программ на ассемблере. Принципы построения оконных приложений. Окно с кнопкой. Окно с полем редактирования. Окно со списком. Дочерние и собственные окна.
- Ассемблер MASM. Командная строка ML.EXE. Командная строка LINK.EXE. Включение в исполняемый файл отладочной информации. Получение консольных и GUI приложений. Автоматическая компоновка. Самотранслирующаяся программа.
- О кодировании текстовой информации в операционной системе Windows. OEM и ANSI. Кодировка Unicode.
- ПРОСТЫЕ ПРОГРАММЫ, КОНСОЛЬНЫЕ ПРИЛОЖЕНИЯ, ОБРАБОТКА ФАЙЛОВ.
- Вывод графики и текста в окно. Библиотека GDI. Вывод текста в окне. Выбор шрифта. Графические образы.
- Графика: GDI+, DirectX, OpenGL. Функции GDI+. Библиотека DerectX. Программирование OpenGL.
- Консольные приложения. Создание консоли. Обработка событий от клавиатуры и мыши. Таймер в консольном приложении.
- Понятие ресурса. Редакторы и трансляторы ресурсов. Язык описания ресурсов. Немодальные диалоговые окна.
- Примеры программ, использующих ресурсы. Динамическое меню. Горячие клавиши. Управление списками. Программирование в стиле Windows XP и Windows Vista.
- Управление файлами: начало. Характеристики файлов. Файловая система FAT32. Файловая система NTFS. Поиск файлов. Приёмы работы с двоичными файлами. Пример получения временных характеристик файла.
- Директивы и макросредства ассемблера. Метки, строки, структуры, объединения. Удобный приём работы со структурами. Условное ассемблирование. Вызов процедур. Макроповторения. Макроопределения. Директивы транслятора ассемблера. Конструкции времени исполнения программы. Пример программы, одинаково транслируемой как в MASM, так и в TASM.
- Ещё об управлении файлами. Полное описание функции CreateFile. Почтовый ящик или mailslot. Каналы передачи информации (pipes). Дисковые устройства. Обзор функций API для работы с файлами. Асинхронный ввод-вывод. Запись в файл дополнительной информации.
- СЛОЖНЫЕ ПРИЁМЫ ПРОГРАММИРОВАНИЯ В WINDOWS.
- Таймер в оконных приложениях. Общие сведения. Простейший пример использования таймера. Взаимодействие таймеров. Всплывающие подсказки.
- Многозадачное программирование. Процессы и потоки. Взаимодействие потоков.
- Создание динамических библиотек. Общие понятия. Неявное связывание. Использование общего адресного пространства. Совместное использование памяти разными процессами.
- Сетевое программирование. Сетевые устройства. Поиск сетевых устройств и подключение к ним. Сетевые протоколы TCP/IP. Управление сокетами. Пример простейшего клиента и сервера.
- Разрешение некоторых проблем программирования в Windows.
- Некоторые вопросы системного программирования в Windows. Страничная и сегментная адресация. Адресное пространство процесса. Управление памятью. Фильтры (HOOKS).
- Современное использование ассемблера с языками высокого уровня. Согласование вызовов, имён и параметров. Простой пример использования ассемблера с языками высокого уровня. Передача параметров через регистры. Вызовы API и ресурсы в ассемблерных модулях. Развёрнутый пример использования языков ассемблера и Си. Встроенный ассемблер. Пример использования динамической библиотеки. Использование языка Си из программ, написанных на языке ассемблера.
- Программирование сервисов. Основные понятия и функции управления. Структура сервисов. Пример сервиса.
- ОТЛАДКА, АНАЛИЗ КОДА ПРОГРАММ, ДРАЙВЕРЫ.
- Обзор инструментов для отладки и дизассемблирования. Утилиты фирмы Microsoft и другие инструменты.
- Отладчик OllyDbg. Начало работы с отладчиком. Точки останова и другие возможности.
- Описание работы с дизассемблером W32Dasm и отладчиком SoftICE.
- Основы анализа кода программ. Переменные и константы. Управляющие структуры языка Си. Локальные переменные. Функции и процедуры. Оптимизация кода. Объектное программирование.
- Исправление исполняемых модулей. Пример исправления. Пример снятия защиты.
- Структура и написание драйверов. О ядре и структуре памяти. Управление драйверами. Пример простейшего драйвера, работающего в режиме ядра. Драйверы режима ядра и устройства.
- ПРИЛОЖЕНИЯ.
- Справочник API-функций и сообщений Windows.
- Справочник по командам и архитектуре микропроцессора Пентиум. Регистры микропроцессора Пентиум. Команды процессора. Команды арифметического сопроцессора. Расширение MMX.
- Защищённый режим микропроцессоров Пентиум. Об уровнях привилегий. Селекторы.
- Структура исполняемых модулей. Общая структура PE-модуля. Заголовок PE-модуля. Таблица секций. Секции экспорта, импорта и ресурсов. Локальная область данных потоков. Таблица настроек адресов. Отладочная информация.
- Файл kern.inc.
- Пример консольного приложения с полной обработкой событий.
Получить книгу!
Получить книгу!