Шаг 9.
Основы программирования в ОС Windows

    На этом шаге мы рассмотрим основные правила создания программ в операционной системе Windows.

    На этом шаге мы рассмотрим два момента, которые крайне важны для начала программирования на Ассемблере в среде Windows. Это:

    Можно выделить три типа структуры программ, которые условно можно назвать

    Здесь и далее мы будем использовать первую, классическую структуру.

    Итак, начнем с нескольких общих положений о программировании в Windows.

  1. Программирование в Windows основывается на использовании функций API (Application Program Interface - интерфейс программного приложения). Их количество достигает двух тысяч. Ваша программа в значительной степени будет состоять из таких вызовов. Все взаимодействие с внешними устройствами и ресурсами операционной системы будет происходить посредством таких функций.
  2. Список функций API и их описание можно брать из файла WIN32.HLP, который поставляется, например, с пакетом Borland C++.
  3. Главным элементом программы в среде Windows является окно. Для каждого окна определяется своя процедура обработки сообщений.
  4. Окно может содержать элементы управления: кнопки, списки, окна редактирования и др. Эти элементы, по сути, также являются окнами, но обладающими особыми свойствами. События, происходящие с этими элементами (и самим окном), приводят к приходу сообщений в процедуру окна.
  5. Операционная система Windows использует линейную адресацию памяти. Другими словами, всю память можно рассматривать как один сегмент. Для программиста на языке ассемблера это означает, что адрес любой ячейки памяти будет определяться содержимым одного 32-битного регистра, например ЕВХ.
  6. Следствием пункта 5 является то, что мы фактически не ограничены в объеме данных, кода или стека (объеме локальных переменных). Сегменты в тексте программы играют теперь другую роль. Они позволяют задать отдельным фрагментам кода (секциям) определенные свойства: запрет на запись, общий доступ и т. д.
  7. Операционная система Windows является многозадачной средой. Каждая задача имеет свое адресное пространство и свою очередь сообщений. Более того, даже в рамках одной программы может быть осуществлена многозадачность - любая процедура может быть запущена как самостоятельная задача.

    Итак, после теоретических положений самое время перейти к программным примерам.

    На следующем шаге мы рассмотрим вызов функций API.




Предыдущий шаг Содержание Следующий шаг