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



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

продолжение


370 Глава
Создание Windows-приложений на ассемблере
Листинг
запустить цикл обработки сообщений */
NULL, 0,
{
использование клавиатуры
управление Windows
}
return
}
LRESULT CALLBACK
(HWND
message,
IParam)
вызывается операционной системой Windows
получает в качестве параметров сообщения из очереди
данного приложения
{
swi tch(message)
{
case
/* завершение программы */
break;
default:
попадают все сообщения,
обрабатываемые в данной оконной функции.
эти сообщения направляются обратно Windows
обработку по умолчанию
return
(hWnd, message, wParam,
}
return 0;
}
Рассмотрим более подробно суть действий, выполняемых каждым из трех эле-
ментов Windows-приложения. В листинге
видно, что минимальное Windows-
приложение на языке C++ состоит из двух функций: главной — WinMain и окон-
ной — WindowProc. Цель WinMain — сообщить системе о новом для нее приложении,
его свойствах и особенностях. Для достижения этой цели WinMain выполняет опре-
деленную последовательность действий.
1. Определяет и регистрирует класс окна приложения.
2. Создает и отображает окно приложения зарегистрированного класса.
3. Создает и запускает цикл обработки сообщений для приложения.
4. Завершает программу при получении оконной функцией соответствующего
сообщения.
Оконная функция получает все сообщения, предназначенные данному окну,
и обрабатывает их, возможно, вызывая для этого другие функции.
Видимая часть работы каркасного приложения заключается в создании нового
окна на экране. Оно отвечает всем требованиям стандартного окна Windows-при-
ложения, то есть его можно развернуть, свернуть, изменить размер, переместить
в другое место экрана и т. д. Для этого, как вы увидите, нам не придется написать
ни строчки кода, а нужно будет всего лишь удовлетворить определенные требова-
ния, предъявляемые к приложениям со стороны Windows.
Мы не будем больше обсуждать код листинга
так как это довольно по-
дробно и полно сделано в других источниках. Взамен этого мы пойдем по другому
пути — заглянем за «фасад» приведенного Windows-приложения и посмотрим на
работу, выполняемую компилятором по формированию соответствующего испол-


 Windows-приложение на C/C++ 371
кода. Причем сделать это целесообразно на двух этапах: в процессе фор-
мирования объектного кода и после формирования загрузочного модуля.
В процессе формирования объектного модуля компилятор преобразует исход-
ный текст на языке C/C++ в эквивалентный текст на языке ассемблера. В контек-
сте нашего обсуждения это достаточно ценная информация. Для того чтобы полу-
чить такой текст, необходимо в командной строке компилятора задать специальный
ключ ДА (см. make-файл в каталоге
главы с программой
среди
файлов, прилагаемых к
/FA
Полученный текст на ассемблере ценен тем, что в нем каждой строке исходного
текста программы на C/C++ сопоставляется текст на ассемблере. В листинге 16.2
приведен фрагмент этого файла
а полный его текст находится в ка-
талоге
среди файлов, прилагаемых к книге.
Листинг
Фрагмент ассемблерного представления исходного файла
TITLE
include
if
gt 510
FLAT
else
SEGMENT PARA
PUBLIC
endif
PUBLIC
_DATA
DATA
PUBLIC
SEGMENT
ENDS
PUBLIC
EXTRN
_TEXT SEGMENT
File
PROC NEAR
;Строка 5
push ebp
ebp, esp
sub esp,
push ebx
push
push edi
; Строка 10
; Строка 12
mov DWORD
OFFSET
; Строка 13
mov DWORD
0
; Строка 16
push 32512 ; 00007f00H
Все прилагаемые к книге файлы можно найти по адресу


Download 12,06 Mb.

Do'stlaringiz bilan baham:
1   ...   204   205   206   207   208   209   210   211   ...   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