Дипломированных специалистов «Информатика и вычислительная техника»


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



Download 12,06 Mb.
Pdf ko'rish
bet212/357
Sana22.02.2022
Hajmi12,06 Mb.
#115195
TuriДиплом
1   ...   208   209   210   211   212   213   214   215   ...   357
Bog'liq
assembler uchebnik dlya vuzov 2-e izd YuRXUW1

386 Глава
Создание Windows-приложений на ассемблере
Листинг
<14>
<15> tfendif //
Последние версии операционных систем Windows поддерживают две системы
кодировки символов: однобайтную (ANSI) и двухбайтную (UNICODE). Поддерж-
ка кодировки UNICODE была введена Microsoft, чтобы облегчить локализацию
программных продуктов на неанглоязычном рынке. Операционная система
Windows NT поддерживает только кодировку UNICODE. Операционная система
Windows 95/98 имеет довольно плохо скрытое наследие MS-DOS и не поддержи-
вает в своей внутренней работе кодировку UNICODE (она поддерживается лишь
на уровне функций Win32 API). Для работы с обеими кодировками программный
интерфейс Win32 API имеет два варианта функций. Эти функции различаются
последним символом в названии. Если это А, то данная функция работает в коди-
ровке ANSI, если W, то функция работает в кодировке UNICODE. Следующий
момент, требующий пояснения, — наличие суффикса Ех в названиях функций.
Объяснение этому можно найти в листинге 16.5. Директива условной компиляции
(строка 8) проверяет текущую версию операционной системы. Если это Windows
95/98 или NT, то можно использовать расширенные (с суффиксами Ех) варианты
функций Win32 API. Они обладают дополнительными возможностями по сравне-
нию со старыми вариантами функций Win32 API. Исчерпывающим источником
информации по функциям Win32 API (и не только) является MSDN (Microsoft
Developer Network — информационная система поддержки разработчика по про-
дуктам Microsoft), его можно найти в Интернете по адресу
microsoft.com/
Строка 35. В соответствии с соглашениями операционной системы Windows,
оконная функция приложения должна быть видимой за пределами приложения,
в котором она описана. Это связано с тем, что оконная функция вызывается самой
операционной системой Windows при поступлении сообщений для данного при-
ложения. По этой причине оконная функция нашего каркасного приложения объяв-
лена общей (public).
Строки 36-50 содержат описание сегмента данных, в котором определяются
переменные и экземпляры структур, используемые в каркасном приложении.
Упомянем еще об одном важном техническом моменте программирования для
операционной системы Windows — соглашениях об именовании различных про-
граммных объектов. Обозначениям в Windows придается большое значение. Это
объясняется сложностью разрабатываемых систем, а также тем, что пользователи
и разработчики должны понимать друг друга при создании как программных про-
дуктов, так и документации к ним. Без согласованных правил по обозначению тех
или иных объектов им не обойтись. Единых требований на этот счет нет. В насто-
ящее время де-факто в качестве системы обозначений принята так называемая
форма венгерской записи. Более подробные сведения о ней с указанием первоис-
точника приведены в файле
Notation.htm, который находится
среди файлов, прилагаемых к книге. Не стоит принимать венгерскую форму запи-
си за некую догму. Это всего лишь одна из возможных систем обозначений. При
желании вы можете ввести свою собственную систему. Для того чтобы заставить


Каркасное Windows-приложение на ассемблере 387
компилятор ассемблера различать строчные и прописные буквы, необходимо ука-
зать ключ /ml в командной строке.
Перед рассмотрением сегмента кода обратите внимание на его начало (стро-
ка
В нем отсутствуют привычные команды загрузки сегментного регистра дан-
ных. Загрузчик Windows самостоятельно загружает сегментные регистры, при этом
учитывается требуемая модель памяти (директива
В первой части главы
мы упоминали, что для запуска приложения под управлением Windows необходи-
мо выполнить нескольких шагов, в которых выполняется вызов ряда функций
Win32 API. Перечислим их.
1. Выполнение стартового кода.
2. Выполнение главной функции (в C/C++ — вызов функции
которая
выполняет следующие действия:
1) регистрирует класс окна;
2) создает окно;
3) отображает окно;
4) запускает цикл обработки сообщений;
5) завершает выполнение приложения.
3. Организация обработки сообщений в оконной процедуре.
А как вызывать функции Win32 API в программе на ассемблере? Вызов этих
функций осуществляется аналогично вызову внешних функций (см. главу 15).
Передача всех параметров осуществляется через стек. По этой причине важно знать
размеры передаваемых величин. Здесь проявляется полезность венгерской систе-
мы обозначений. О размере переменной можно судить по ее названию. К тому же
в Win32
переменных имеет размер двойного слова (четыре байта).
В соответствии с параметром
директивы
параметры в стек должны по-
мещаться справа налево, то есть первым в стек идет последний параметр функции.
Продолжим рассмотрение каркасного Windows-приложения (см. листинг 16.4).

Download 12,06 Mb.

Do'stlaringiz bilan baham:
1   ...   208   209   210   211   212   213   214   215   ...   357




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish