Известно, что к программированию на языке ассемблера обращаются тогда, когда от программы требуется максимальная скорость исполнения, когда необходимо обеспечить взаимодействие с нестандартными внешними устройствами, когда необходимо полностью использовать возможности процессора и операционной системы. Содержание

Цель работы

Введение

1. Всплывающие подсказки

2. Листинг

2.1 Файл HINT.RC

2.2 Файл HINT.INC

2.3 Файл HINT.ASM

3. Результат работы программы

Вывод

Список литературы

Цель работы

Цель курсовой работы: изучение основ программирования на 32-битном ассемблере, при помощи которого необходимо разработать программу, демонстрирующую работу одного из разделов ОС WINDOWS.

В данном варианте рассмотрена работа всплывающими подсказками.

Введение

Ассемблер — один из самых старых из существующих сегодня языков программирования. Когда-то это был самый основной язык, без которого нельзя было заставить компьютер сделать что-то полезное.

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Заказать отчет

Постепенно ситуация менялась. Появились более удобные средства общения с компьютером. Но в отличие от других языков ассемблер не умирал.

Если коротко, то ассемблер — это символическое представление машинного языка. Все процессы в машине на самом низком, аппаратном уровне приводятся в действие только командами машинного языка.

Отсюда понятно, что, несмотря на общее название, язык Ассемблера для каждого типа компьютера свой. Это касается и внешнего вида программ, написанных на Ассемблере, и идей, отражением которых этот язык является.

На языке ассемблера можно запрограммировать все, на что способна соответствующая вычислительная машина, то есть ассемблер является машинно-ориентированным языком программирования. Программируя на ассемблере иногда в силу привычки, иногда в силу необходимости, особенно при организации интерфейса пользователя, приходится многократно программировать одни и те же элементарные задачи. В языках высокого уровня эта проблема решена применением стандартных функций и процедур. В ассемблере эта проблема могла бы быть решена за счет библиотек стандартных функций, как на уровне исходных текстов, так и объектных кодов, но такие библиотеки не стандартизованы и не распространяются вместе с компиляторами. С появлением Windows 95 ситуация несколько изменилась. Создание приложений на языке ассемблера представляет собой весьма сложную задачу в связи с высоким уровнем интеграции прикладной программы и операционной системы, но теперь нет необходимости многократно решать проблемы пользовательского интерфейса и управления исполнением команд на уровне машинных команд. Они решаются теперь с помощью операционной системы за счет обращения к функциям интерфейса прикладного программирования — Application Programming Interface (API).

Основные положения программирования в ОС WINDOWS:

·   Программирование в Windows основывается на использовании функций API (Application Program Interface, т.е. интерфейс программного приложения). Их количество достигает двух тысяч. Программа в значительной степени состоит из таких вызовов. Все взаимодействие с внешними устройствами и ресурсами операционной системы происходит посредством таких функций.

·   Список функций API и их описание перечислен в файле WIN32.HLP, который поставляется, например, с пакетом Borland C++.

·   Главным элементом программы в среде Windows является окно. Для каждого окна определяется своя процедура обработки сообщений.

·   Окно может содержать элементы управления: кнопки, списки, окна редактирования и др. Эти элементы, по сути, также являются окнами, но обладающими особыми свойствами. События, происходящие с этими элементами (и самим окном), приводят к приходу сообщений в процедуру окна.

·   Операционная система Windows использует линейную модель памяти. Другими словами, всю память можно рассматривать как один сегмент. Для программиста на языке ассемблера это означает, что адрес любой ячейки памяти будет определяться содержимым одного 32-битного регистра, например EBX.

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Цена отчета

·   Следствием пункта 5 является то, что фактически нет ограничений в объеме данных, кода или стека (объеме локальных переменных). Выделение в тексте программы сегмента кода и сегмента данных является теперь простой формальностью, улучшающей читаемость программы.

·   Операционная система Windows является многозадачной средой. Каждая задача имеет свое адресное пространство и свою очередь сообщений. Более того, даже в рамках одной программы может быть осуществлена многозадачность — любая процедура может быть запущена как самостоятельная задача.

1. Всплывающие подсказки

В данной курсовой работе рассмотрен вопрос о всплывающих подсказках. В визуальных языках программирования всплывающие подсказки организуются посредством установки соответствующих свойств объектов, расположенных на объекте-контейнере. Задача состоит в разработке механизма, позволяющего без каких-либо дополнительных библиотек устанавливать подсказки на любые объекты, расположенные в окне.

1. Заметим, что всплывающая подсказка — это всего лишь окно с определенными свойствами. Вот эти свойства: DS_CENTER, WS_POPUP, WS_VISIBLE, WS_BORDER. В принципе можно экспериментировать — добавлять или удалять свойства. Но без одного свойства никак не обойтись — это WS_POPUP. POPUP можно перевести как поплавок. Кроме того, определение всплывающего окна в файле ресурсов не должно содержать опции CAPTION.

2. Появление подсказки не должно менять ситуацию в диалоговом окне. Это значит — вызов подсказки должен быть немодальным, при помощи функции CreateDialogIndirect. Кроме того, следует предусмотреть переустановку фокуса на диалоговое окно. Для этого достаточно в нужном месте вызвать функцию SetFocus.

3. Подсказка — это диалоговое окно, и, следовательно, оно должно иметь свою функцию. Что должна содержать эта функция? По крайней мере, обработку трех событий: WM_INITDIALOG, WM_PA1NT, WM_TIMER. По получении сообщения WM_INITDIALOG следует определить размер и положение подсказки.

Кроме того, если предположим, что подсказка должна спустя некоторое время исчезать, следует установить таймер.

По получении сообщения WM_PAINT следует вывести в окно текст подсказки. Если определять размер окна подсказки точно по строке выводимого текста, то цвет фона подсказки будет полностью определяться цветом выводимого текста. По приходе сообщения WM_TIMER мы закрываем подсказку.

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Заказать отчет

4. В основном диалоговом окне определим таймер, в функции которого будет проверяться положение курсора. В зависимости от этого положения будет вызываться или удаляться подсказка. В функции таймера должно предусмотреть:

·   Проверку положения курсора. Если курсор оказался на данном элементе, то вызывать подсказку. При этом желательно, чтобы подсказка появлялась бы с некоторой задержкой. Последнее можно обеспечить введением счетчика — вызывать подсказку, если счетчик превысил некоторое значение.

·   Необходимо обеспечить удаление подсказки, если курсор покидает данный элемент.

Свойства окон:_CENTER — Выравнивает по центру диалоговое окно в рабочей области видеомонитора, который содержит окно владельца. Если окно владельца не определено, диалоговое окно центрируется в рабочей области видеомонитора, определенного системой. Рабочая область — область, не затененная панелью задач или какой-либо панелью приложения._POPUP — Создается временное (pop-up) окно._VISIBLE — Создание окна, видимого сразу после создания. Используется для перекрывающихся и временных окон._BORDER — Создание окна с рамкой из тонких линий.

Функции:

CreateDialogIndirect — Создает блок безpежимного диалога. возвращает дескриптор окна диалогового окна.

Функция SetFocus устанавливает фокус клавиатуры в заданном окне. Окно должно быть связано с очередью сообщений вызывающего потока.

Окно должно быть присоединено к очереди сообщений вызывающего поток. hWnd [in] Дескриптор окна, которое примет ввод информации с клавиатуры. Если этот параметр — ПУСТО (NULL), нажатия клавиши игнорируются. Если функция завершается успешно, величина возвращаемого значения — дескриптор окна, которое до этого имело фокус клавиатуры. Если параметр hWnd недопустимый или окно не связано с очередью сообщений вызывающего потока, величина возвращаемого значения — ПУСТО (NULL)

Сообщения:

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Подробнее

Сообщение WM_INITDIALOG отправляется процедуре диалогового окна непосредственно перед показом на экране диалогового окна.

Процедуры диалогового окна обычно используют это сообщение, чтобы инициализировать органы управления и выполнить какие-либо другие задачи инициализации, которые влияют на внешний вид блока диалога.

Возвращаемые значения Процедура диалогового окна должна возвратить значение ИСТИНА (TRUE), чтобы заставить систему установить фокус клавиатуры в орган управления, заданный параметром wParam.

Или же, она должна возвратить значение ЛОЖЬ(FALSE), чтобы не допустить систему к установке заданного по умолчанию фокуса клавиатуры.

Сообщение WM_PAINT отправляется тогда, когда система или другое приложение делают запрос, чтобы окрасить часть окна приложения. Возвращаемые значения Приложение возвращает нуль, если оно обрабатывает это сообщение.

Сообщение WM_TIMER помещается в очереди сообщений установленного потока, когда у таймера истекает время. Возвращаемое значение Приложение должно возвратить нуль, если оно обрабатывает это сообщение.

. В данной программе используем условные конструкции времени выполнения. Данный шаг вполне закономерен и обусловлен только необходимостью несколько сократить объем, а также упростить читаемость программы.

Вложенность условных конструкций, а также расстановка скобок вызваны желанием сократить длину строки и одновременно необходимостью транслировать программу с помощью MASM32.

. Трансляция программы.

Пакет MASM32./c /coff /DMASM hint.asm

RC hint.rc/SUBSYSTEM:WINDOWS hint.obj hint.res

pausehint.exe

. Процедура таймера проверяет каждые 0.5 секунды положение курсора. Если курсор находится на элементе (окне редактирования или кнопке) и подсказка еще не вызвана (H1 или Н2 отлична от нуля), то вызывается подсказка. При этом учитывается еще величина счетчика (P1), чтобы подсказка появлялась с некоторой задержкой. Если при очередном вызове процедуры окажется, что курсор находится уже вне элемента, а подсказка еще на экране, то она удаляется. Данный механизм не учитывает тот случай, когда курсор быстро перейдет от одного элемента к другому. В этом случае вероятна ситуация, когда на экране окажется две подсказки. Впрочем, первая подсказка должна тут же исчезнуть.

. Функция GetCursorPos получает положение курсора в абсолютных координатах относительно экрана. Функция GetWindowRect также получает положение элемента окна в абсолютных координатах. Предварительно приходится определять дескриптор окна при помощи функции GetDlgItem.

2. Листинг

.1 Файл HINT.RC

// файл HINT.RC

// определение констант

#define WS_SYSMENU 0x00080000L

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Подробнее

// элементы на окне должны быть изначально видимы

#define WS_VISIBLE 0x10000000L

// бордюр вокруг элемента

#define WS_BORDER 0x00800000L

// при помощи TAB можно по очереди активизировать элементы

#define WS_TABSTOP 0x00010000L

// текст в окне редактирования прижат к левому краю

#define ES_LEFT 0x0000L

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Заказать отчет

// стиль всех элементов на окне

#define WS_CHILD 0x40000000L

// стиль — кнопка

#define BS_PUSHBUTTON 0x00000000L

// центрировать текст на кнопке

#define BS_CENTER 0x00000300L

// тип окна — «поплавок»

#define WS_POPUP 0x80000000L

// стиль — диалоговое окно

#define DS_CENTER 0x0800L

// определение диалогового окна

DIAL1 DIALOG 0, 0, 200, 50WS_SYSMENU | DS_CENTER

CAPTION «Вариант 18 — всплывающие подсказки»10, «Courier new»

{

// окно редактирования, идентификатор 1″», 1, «edit», ES_LEFT | WS_CHILD

| WS_VISIBLE | WS_BORDER

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Цена отчета

| WS_TABSTOP , 5, 5, 130, 12

// кнопка, идентификатор 2″Выход», 2, «button», BS_PUSHBUTTON

| BS_CENTER | WS_CHILD | WS_VISIBLE | WS_TABSTOP,

150, 5, 40, 12

}

// диалоговое окно подсказкиDIALOG 0, 0, 200, 8

STYLE DS_CENTER| WS_POPUP | WS_VISIBLE | WS_BORDER8, «MS Sans Serif»

{

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Цена отчета

}

.2 Файл HINT.INC

; файл HINT.INC

;константы

;цвет фона окна подсказки

RED = 127= 255= 212equ (RED or (GREEN shl 8)) or (BLUE shl 16)

;цвет текста окна подсказки= 20

GREEN = 20= 20equ (RED or (GREEN shl 8)) or (BLUE shl 16)

;сообщение приходит при закрытии окна_CLOSE equ 10h

WM_INITDIALOG equ 110h_COMMAND equ 111h_TIMER equ 113h_SETTEXT equ 0Ch_COMMAND equ 111h_PAINT equ 0Fh

;прототипы внешних процедур[email protected]:NEAR

EXTERN [email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:NEARCreateDialogParamA:NEARSetFocus:NEARlstrcpyA:NEARDestroyWindow:NEARlstrlenA:NEARGetDlgItem:NEARGetCursorPos:NEARTextOutA:NEARSetBkColor:NEARSetTextColor:NEARBeginPaint:NEAREndPaint:NEARGetTextExtentPoint32A:NEARMoveWindow:NEARGetWindowRect:NEARReleaseDC:NEARGetDC:NEARSendDlgItemMessageA:NEARExitProcess:NEARGetModuleHandleA:NEARDialogBoxParamA:NEAREndDialog:NEARSetTimer:NEARKillTimer:[email protected] = [email protected] = [email protected] = [email protected] = [email protected] = [email protected] = [email protected] = [email protected] = [email protected] = [email protected] = [email protected] = [email protected] = [email protected] = [email protected] = [email protected] = [email protected] = [email protected] = [email protected][email protected] = [email protected] = [email protected] = [email protected] = [email protected] = SetTimer

[email protected] = KillTimer

; структуры

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

MSGSTRUCT STRUCDD ?DD ?DD ?DD ?DD ?

MSPT DD ?ENDS

; структура размера окна

RECT STRUCDD ?DD ?DD ?DD ?ENDS

;структура размерSTRUCDD ?

Y DD ?ENDS

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Заказать отчет

; структура для BeginPaintSTRUCDWORD 0DWORD 0DWORD 0DWORD 0DWORD 0DWORD 0DWORD 0DWORD 0DB 32 dup (0)

PAINTSTR ENDS

; структура для получения позиции курсора

POINT STRUCDD ?DD ?ENDS

.3 Файл HINT.ASM

; файл HINT.ASM

.386P

; плоская модель

.MODEL FLAT, stdcall

include hint.inc

; директивы компоновщику для подключения библиотекMASM

includelib c:masm32libuser32.libc:masm32libkernel32.libc:masm32libgdi32.lib

; для компоновщика TLINK32.EXEc:tasm32libimport32.lib

;————————————————-

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Цена отчета

; сегмент данных

_DATA SEGMENT DWORD PUBLIC USE32 ‘DATA’MSGSTRUCT <?>DD 0 ; дескриптор приложенияDB «DIAL1»,0DB «HINTW»,0DD ?DD ?

;——————————-RECT <?>RECT <?>SIZ <?>PAINTSTR <?>

PT POINT <?>

; дескрипторы окон-подсказок, для первого и второго элементаDD 0DD 0

; строка-подсказкаDB 60 DUP (?)

; перечень подсказокDB «Изменение строки»,0DB «Кнопка выхода»,0

; для временного хранения контекста устройстваDD ?

; счетчикDD ?

_DATA ENDS

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Заказать отчет

; сегмент кода

_TEXT SEGMENT DWORD PUBLIC USE32 ‘CODE’

START:

; получить дескриптор приложения0

CALL [email protected][HINST], EAX

;—————————-0OFFSET WNDPROC0OFFSET PA[HINST][email protected],-1KOL

KOL:

;——————————[email protected]

;——————————

; процедура окна

; расположение параметров в стеке

; [EBP+014Н] ; LPARAM

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Заказать отчет

; [EBP+10Н] ; WAPARAM

; [EBP+0CH] ; MES

; [EBP+8] ; HWNDPROCEBPEBP,ESPEBXESIEDI

;——————————DWORD PTR [EBP+0CH],WM_CLOSE

JNE L1

; здесь реакция на закрытие окна

; удалить таймер:2 ; идентификатор таймера

PUSH DWORD PTR [EBP+08H]

CALL [email protected]

; закрыть диалог0

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Заказать отчет

PUSH DWORD PTR [EBP+08H][email protected]:DWORD PTR [EBP+0CH], WM_INITDIALOG

JNE L2

; здесь начальная инициализация

; установить таймер

PUSH OFFSET TIMPROC500 ; интервал 0.5 с.2 ; идентификатор таймераDWORD PTR [EBP+08H][email protected]:DWORD PTR [EBP+0CH],WM_COMMANDL3

; кнопка выхода?WORD PTR [EBP+10H],2L3L4::EDIESIEBXEBPEAX,016

WNDPROC ENDP

;———————————————

; процедура таймера

; расположение параметров в стеке

; [EBP+014Н] ; LPARAM — промежуток запуска Windows

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Заказать отчет

; [EBP+10Н] ; WAPARAM — идентификатор таймера

; [EBP+0CH] ; WM_TIMER

; [EBP+8] ; HWNDPROCEBP

MOV EBP,ESP

; получить положение курсора

PUSH OFFSET [email protected]

; запомнить координатыEAX,PT.X

MOV XX,EAXEAX,PT.Y

MOV YY,EAX

; получить положение элементов

; окно редактирования1DWORD PTR [EBP+08H]

CALL [email protected] R1EAX

CALL [email protected]

; кнопка выхода2

PUSH DWORD PTR [EBP+08H][email protected] R2EAX

CALL [email protected]

; увеличить счетчикP1

MOV ECX,XXEDX,YY

; проверка условий

.IF H1==0 && P1>5

.IF EDX<=R1.B && EDX>=R1.T && ECX>=R1.L && ECX<=R1.R

; подготовить строкуOFFSET HINT1OFFSET HINTS

CALL [email protected]

; создать диалоговое окно — подсказку

CALL [email protected],EAX

; установить фокус

PUSH DWORD PTR [EBP+08H][email protected]

; обнулить счетчикP1,0_END

.ENDIF

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Цена отчета

.ENDIF

.IF H1!=0

.IF (EDX>R1.B || EDX<R1.T) || (ECX<R1.L || ECX>R1.R)

; удаление подсказки в связи с перемещением курсора

PUSH [email protected],0_END

.ENDIF

.ENDIF

.IF H2==0 && P1>5

.IF EDX<=R2.B && EDX>=R2.T && ECX>=R2.L && ECX<=R2.R

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Подробнее

; подготовить строкуOFFSET HINT2OFFSET HINTS

CALL [email protected]

; создать диалоговое окно — подсказку

PUSH 0OFFSET HINTDWORD PTR [EBP+08H]OFFSET HIN[HINST]

CALL [email protected],EAX

; установить фокус

PUSH DWORD PTR [EBP+08H][email protected]

; обнулить счетчикP1,0_END

.ENDIF

.ENDIF

.IF H2!=0

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Цена отчета

.IF (EDX>R2.B || EDX<R2.T) || (ECX<R2.L || ECX>R2.R)

;удаление подсказки в связи с перемещением курсора

PUSH [email protected],0_END

.ENDIF

.ENDIF

; восстановить стек

_END:

POP EBP16ENDP

; процедура окна всплывающей подсказки

HINT PROCEBPEBP,ESPDWORD PTR [EBP+0CH],WM_INITDIALOG

JNE NO_INIT

; инициализация

; получить контекст

PUSH DWORD PTR [EBP+08H]

CALL [email protected],EAX

; получить длину строки

PUSH OFFSET [email protected]

; получить длину и ширину строкиOFFSET S

PUSH EAXOFFSET HINTSDC

CALL [email protected]

; установить положение и размер окна-подсказки

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Подробнее

PUSH 0S.YS.X,2S.XYY,20YYXX,10XXDWORD PTR [EBP+08H]

CALL [email protected]

; закрыть контекстDC

PUSH DWORD PTR [EBP+08H]

CALL [email protected]

; установить таймер06000 ; интервал 6 с.3 ; идентификатор таймера

PUSH DWORD PTR [EBP+08H][email protected]_INIT:DWORD PTR [EBP+0CH],WM_PAINT

JNE NO_PAINT

; перерисовка окна

; получить контекст

PUSH OFFSET PSDWORD PTR [EBP+08H]

CALL [email protected],EAX

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Заказать отчет

; установить цвета фона и текста подсказки

PUSH [email protected]@8

; вывести текстOFFSET [email protected] [email protected]

; закрыть контекстOFFSET PSDWORD PTR [EBP+08H][email protected]_PAINT:DWORD PTR [EBP+0CH],WM_TIMER

JNE FIN

; обработка события таймера

; удалить таймер и удалить диалоговое окно

; подсказка удаляется в связи с истечением срока 6 с.

PUSH 3DWORD PTR [EBP+08H][email protected] PTR [EBP+08H][email protected]:EBP16ENDP

_TEXT ENDSSTART

программа ассемблер всплывающий подсказка

3. Результат работы программы

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Цена отчета

Вывод

В результате выполнения курсовой работы был изучен один из разделов ОС WINDOWS — всплывающие подсказки. Была написана программа на 32-битном ассемблере с применением API-функций.

Список литературы

1. http://msdn.microsoft.com/library/ms123401http://www.codenet.ru/progr/delphi/WinAPI/

2. http://vsokovikov.narod.ru/index.htm

3. В.Ю. Пирогов: Ассемблер для Windows, изд. Молгачева С. В., 2002 г., 552 с.

4. Вахрушева Е.А. «Методическое пособие для выполнения курсовой работы «Изучение операционной системы Windows» — Ижевск: ИжГТУ, 2012. — 56 с.

Средняя оценка 0 / 5. Количество оценок: 0

Поставьте оценку первым.

Сожалеем, что вы поставили низкую оценку!

Позвольте нам стать лучше!

Расскажите, как нам стать лучше?

190

Закажите такую же работу

Не отобразилась форма расчета стоимости? Переходи по ссылке