logo
Разработка диалогового окна в MASM32

4. Руководство программиста

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

Данная программа предназначена для подсчёта функции: при вводе коэффициентов . Написана в MASM32 с использованием стандартных библиотек.

Минимальные системные требования:

1) операционная система: Windows XP;

2) процессор: Pentium III;

3) видео: 800x600;

4) оперативная память: 2 Мб.

5) Клавиатура, мышь

Условия выполнения программы:

Ввод в 16-ричной системе счисления.

Данная программа использует следующие переменные:

ClassName - название класса окна;

AppName - заголовок окна;

MenuName- название меню;

ButtonClassName- название класса кнопки;

ButtonText - текст на кнопке;

EditClassName - название класса поля ввода;

TestString - текст тестовой строки;

OurText5

OurText6

dva- целое число два;

a - коэффициент а (формат: строка);

x - коэффициент b (формат: строка);

Otvet - ответ после проведения операций в сопроцессоре (формат: вещественное число);

buffer - ответ после проведения операций в сопроцессоре (формат: строка);

Используемые библиотеки:

Системные библиотеки kernel32.lib, user32.lib и gdi32.lib содержат функции WIN API. Библиотека masm32.lib содержит функции StrToFloat и FloatToStr.

Рассмотрим основные использованные функции/процедуры:

DWORD dwExStyle, // улучшенный стиль окна

LPCTSTR lpClassName, // указатель на зарегистрированное имя класса

LPCTSTR lpWindowName, // указатель на имя окна

DWORD dwStyle, // стиль окна

int x, // горизонтальная позиция окна

int y, // вертикальная позиция окна

int nWidth, // ширина окна

int nHeight, // высота окна

LPCTSTR lpString, // строка символов

int cbString // число символов

HWND hWnd, // дескриптор окна или элемента управления с текстом

LPTSTR lpString, // адрес буфера для текста

int nMaxCount // максимальное число символов для копирования

HWND hWnd, // дескриптор окна или элемента управления

LPCTSTR lpString // адрес строчки

HWND hWnd, // дескриптор принимающего окна

UINT Msg, // отправленное сообщение

WPARAM wParam, // дополнительная конкретизирующая информация

LPARAM lParam // дополнительная конкретизирующая информация

StrToFloat- функция перевода строки из ASCII в число с плавающей точкой двойной точности [3];

stringValue : string; // преобразуемая строка

floatValue : Extended; // полученное число

FloatToStr- функция, обратная предыдущей [3];

floatValue : Extended; // преобразуемое число

stringValue : string; // полученная строка

Использованные команды арифметического сопроцессора:

finit- инициализирует арифметический сопроцессор, очистка регистров сопроцессора и его флагов;

fld- загружает параметр, написанный после функции, в виде вещественного числа в вершину стека;

fild- загружает целое число, переводит его в вещественное и переносит в вершину стека;

fadd- сложение двух вещественных значений. Если без операндов, то складывает ST(0) и ST(1). Результат в ST(0);

fdiv- производит деление вещественных чисел. Если без операндов, то делит ST(1) на ST(0). Результат в ST(0);

fstp- сохранение вещественного значения из вершины стека в переменную, указанную после функции, с выталкиванием.