Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Jmp msg_loop




Call DISPATCHMESSAGE, ds offset msg

Call TRANSLATEMESSAGE, ds offset msg

Je end_loop

Cmp ax, 0

Call GETMESSAGE, ds offset msg, 0, 0, 0

Call UPDATEWINDOW, ax

Pop ax

Call SHOWWINDOW, ax, cmdShow

Push ax

Mov bx, CW_USEDEFAULT

Xor ax, ax

Call REGISTERCLASS, ds offset wc

Call GETSTOCKOBJECT, WHITE_BRUSH

Call LOADCURSOR, ax IDC_ARROW

Xor ax, ax

Mov ax, 4CFFh

Or ax, ax

Call INITAPP, hInstance

Or ax, ax

Call INITTASK

Mov ds, ax

.286

Code

Freespace db 16 dup(0)

Data

 

; Для Windows Task Manager'a

; HINSTANCE нашего приложения

hInstance dw?

; Параметр просмотра окна

cmdShow dw?

; Структура PAINTSTRUCT

lppaint PAINTSTRUCT <0>

; Структура сообщения MSGSTRUCT

msg MSGSTRUCT <0>

; Структура описания окна

wc WNDCLASS <0>

; Заголовок окна

lpszTitleName db 'First Window', 0

; Название класса окна

lpszClassName db 'ASMCLASS', 0

; Выводимая в окно строка

lpszText db 'Hello World'

; Длина строки lpszText

lpszTextLength equ $-lpszText

; Заголовок диалогового окна

lpszCaption db 'Mouse Event', 0

; Сообщения диалогового окна

lpszLeftMsg db 'Left button pressed', 0

lpszRightMsg db 'Right button pressed', 0

 

 

; Как говоритья в WarLords "Lets The War Begins"

start:

; Инициализируем сегмент данных

mov ax, @data

; Инициализируем задачу и получаем входные параметры

; Если инициализация прошла успешно

jnz @@OK

; Если ошибка

jmp @@Fail

@@OK:

; Сохраняем HINSTANCE

mov [hInstance], di

; Сохраняем параметр просмотра окна

mov [cmdShow], dx

; Инициализируем приложение

jnz @@InitOK

@@Fail:

; Если инициализация завершилась неудачно

int 21h

@@InitOK:

; Заполняем структуру описания окна

mov [wc.clsStyle], 0

mov word ptr [wc.clsLpfnWndProc], offset WndProc

mov word ptr [wc.clsLpfnWndProc+2], seg WndProc

mov [wc.clsCbClsExtra], 0

mov [wc.clsCbWndExtra], 0

mov ax, [hInstance]

mov [wc.clsHInstance], ax

mov [wc.clsHIcon], 0

; Загружаем курсор IDC_ARROW и вставляем его в структуру

mov [wc.clsHCursor], ax

; Загружаем цвет белого фона и вставляем его в структуру

mov [wc.clsHbrBackground], ax

mov word ptr [wc.clsLpszMenuName], 0

mov word ptr [wc.clsLpszMenuName+2], 0

mov word ptr [wc.clsLpszClassName], offset lpszClassName

mov word ptr [wc.clsLpszClassName+2], ds

; Регистрируем структуру описания окна

; Создаем окно

call CREATEWINDOW, ds offset lpszClassName, ds offset lpszTitleName\, WS_OVERLAPPEDWINDOW, ax, bx, bx, bx, bx, ax, ax, \

[hInstance], ax, ax

; Показываем окно

; Обновляем окно

; Цикл обработки сообщений

msg_loop:

; Получаем сообщение

; Проверяем на наличие сообщения WM_QUIT (AX=0)

; Обрабатываем сообщение

; Обрабатываем следующее сообщение

end_loop:

; Выходим из программы

mov ax, [msg.msWPARAM]




Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 295; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.