<<
>>

Глава 16 Создание Windows-приложений на ассемблере

Программирование для операционной системы Windows всегда было занятием не из легких, и на эту тему написано немало книг. Сказать что-то новое довольно труд- но, но и обойти эту тему в книге, посвященной одному из языков программирова- ния, на современном этапе развития вычислительной техники было бы не совсем правильно.
Сегодня трудно найти компьютер, на котором бы не была установлена одна из версий Windows, если, конечно, на нем не стоит что-то из «мира» UNIX. Но в этом учебнике речь будет идти исключительно о программировании для Windows на платформе Intel. В подавляющем большинстве книг о программировании для Windows изложе- ние, как правило, ведется на базе языков C/C++, реже — на базе Pascal. А что же ассемблер — в стороне? Конечно, нет! Мы не раз обращали ваше внимание на пра- вильное понимание места ассемблера в архитектуре компьютера. Любая програм- ма на языке самого высокого уровня по сути представляет собой последователь- ность машинных кодов. А раз так, то всегда остается теоретическая возможность написать ту же программу, но уже на языке ассемблера.
Чем можно обосновать необходимость разработки Windows-приложений на языке ассемблера? Приведем следующие аргументы: ⅝ язык ассемблера позволяет программисту полностью контролировать создава- емый им программный код и оптимизировать его по своему усмотрению; ⅜: компиляторы языков высокого уровня помещают в загрузочный модуль про- граммы избыточную информацию, поэтому эквивалентные исполняемые мо- дули, исходный текст которых написан на ассемблере, имеют в несколько раз меньший размер; ж при программировании на ассемблере сохраняется полный доступ k аппарат- ным ресурсам компьютера; 8 приложение, написанное на ассемблере, как правило, быстрее загружается в оперативную память компьютера; Ж приложение, написанное на ассемблере, обладает, как правило, более высокой скоростью работы и ответа на действия пользователя.
Разумеется, эти аргументы не следует воспринимать, как некоторую реклам- ную кампанию в поддержку языка ассемблера. Тем более что компиляторы язы- ков высокого уровня постоянно совершенствуются и подчас способны создавать код, весьма близкий по эффективности к ассемблерному. По этой причине приве- денные аргументы не являются бесспорными. И все же нельзя забывать о том, что существует бесконечное множество прикладных задач, ждущих своей очереди на компьютерную реализацию. Далеко не все из этих задач требуют тяжеловесных средств разработки — многие из них могут быть изящно исполнены на языке ас- семблера, не теряя привлекательности, например, оконных Windows-приложений. Перед началом обсуждения поясним, в чем состоит разница между программи- рованием для DOS и для Windows. Операционные системы MS-DOS и Windows поддерживают две совершенно разные идеологии программирования. В чем раз- ница? Программа DOS после своего запуска должна быть постоянно активной. Если ей, к примеру, требуется получить очередную порцию данных с устройства ввода-вывода, то она сама должна выполнять соответствующие запросы к опера- ционной системе. При этом программа DOS работает по определенному алгорит- му, она всегда знает, что и когда ей следует делать. В Windows все наоборот. Про- грамма пассивна. После запуска она ждет, когда ей уделит внимание операционная система. Операционная система делает это посылкой специально оформленных групп данных, называемых сообщениями. Сообщения могут быть разного типа, они функционируют в системе довольно хаотично, и приложение не знает, какого ти- па сообщение придет следующим. Отсюда следует, что логика построения Windows-приложения должна обеспечивать корректную и предсказуемую работу при поступлении сообщений любого типа. Тут можно провести определенную ана- логию между механизмом сообщений Windows и механизмом прерываний в архи- тектуре IBM PC. Для нормального функционирования своей программы програм- мист должен уметь эффективно использовать функции интерфейса прикладного программирования (Application Program Interface, API) операционной системы.
Windows поддерживает два типа приложений. м Оконное приложение строится на базе специального набора функций API, со- ставляющих графический интерфейс пользователя (Graphic User Interface, GUI). Оконное приложение представляет собой программу, которая весь вы- вод на экран производит в графическом виде. Первым результатом работы окон- ного приложения является отображение на экране специального объекта — окна. После того как окно появилось на экране, вся работа приложения направлена на то, чтобы поддерживать его в актуальном состоянии. ж Неоконное приложение, также называемое консольным, представляет собой про- грамму, работающую в текстовом режиме. Работа консольного приложения напоминает работу программы MS-DOS. Но это лишь внешнее впечатление. Поддержка работы консольного приложения обеспечивается специальными функциями Windows. Вся разница между двумя типами Windows-приложений состоит в том, с ка- ким типом информации они работают. Основной тип приложений в Windows — оконные, поэтому с них мы и начнем знакомство с процессом разработки программ для этой операционной системы.
<< | >>
Источник: В. И. Юров. Assembler. Учебник для вузов. 2-е изд. 2003

Еще по теме Глава 16 Создание Windows-приложений на ассемблере:

  1. М.Руссинович, Д.Соломон. Внутреннее устройство Microsoft Windows (главы 1–4), 2005
  2. Глава 1. Ты – непростое создание
  3. Глава 1. ПРЕДПОСЫЛКИ СОЗДАНИЯ ЮВЕНАЛЬНОГО ПРАВА, ЕГО ОСНОВНЫЕ ПОНЯТИЯ И ИСТОЧНИКИ
  4. ГЛАВА 12 СОЗДАНИЕ НОВОГО ТЕЛА
  5. Глава 36 ФОКУСИРОВАТЬ ВНИМАНИЕ НА ОБЛАДАНИИ ИЛИ НА СОЗДАНИИ?
  6. Глава 9 Создание экспертной базы данных
  7. Глава 25 НАЗАД К СОЗДАНИЮ ТРЕХ МИЛЛИОНОВ ШЕСТИСОТ ТЫСЯЧ
  8. Глава 1. ПРЕДПОСЫЛКИ СОЗДАНИЯ ЮВЕНАЛЬНОГО ПРАВА, ЕГО ОСНОВНЫЕ ПОНЯТИЯ И ИСТОЧНИКИ
  9. Глава 81 - Гражданского кодекса Создание угрозы жизни, здоровью, имуществу физического лица или имуществу юридического лица
  10. ПРИЛОЖЕНИЯ
  11. Приложения
  12. ПРИЛОЖЕНИЕ
  13. Приложение
  14. Приложение 1.
  15. Приложение 3.
  16. Приложение 4.
  17. Приложение 5.
  18. ПРИЛОЖЕНИЕ 1