Тестирование программы. Содержание

Содержание

Введение................................................................................................. 5

1 Описание.............................................................................................. 6

2 Текст программы................................................................................ 7

3 Тестирование....................................................................................... 8

Заключение............................................................................................. 9

Список используемых источников...................................................... 10

Введение

Среди начинающих программистов довольно распространено мнение, что написание программ под ОС Windows на языках низкого уровня исключительно трудоемкая и сложная задача. Минимум, на что согласны эти программисты – это Visual Basic или, на худой конец – Delphi или Builder.

Такие программисты, как правило, не видят за частоколом мастеров и авто построителей для форм и модулей программ, сути тех системных событий, которые происходят на их ПЭВМ при выполнении приложения. Трудно таким программистам и использование системных отладчиков типа WinIse для анализа кода как собственных программ, так и программ сторонних изготовителей.

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

Описание

Начиная с процессора i386 появилась технология страничной адресации расширенной памяти ПЭВМ, при которой используются расширенные до 32 бит регистры процессора. Приложения, основанные на такой адресации, являются более устойчивыми в работе, более быстро выполняются, однако по размеру исполняемых файлов минимум в двое превосходят 16-ти разрядные приложения.

Текст листинга программы начнется с указания компилятору пользоваться инструкциями минимум 386 процессор.

Модель памяти для 32-х разрядных приложений – flat, то есть вся память адресуется как непрерывная область. Передача параметров между процедурой и стеком – стандартная, поэтому передаем компилятору следующие команды: «.model flat,STDCALL».

Подключаемым файлом с описанием используемых системой переменных и структур – файл win32.

В библиотеке функций для 32-х разрядных приложениях функция вывода сообщения на экран имеет имя MessageBoxA. Кроме того, нам понадобится функция ExitProcess, которая завершает 32-х разрядную программу и передает управление операционной системе. Использовать в 32-х разрядных приложениях функцию 4С00 прерывания 21h уже нельзя.

Для совместимости текстов программ, написанных для 16-ти разрядных приложений, с 32х битным приложением можно ввести обозначение MessageBox, к которому уже привыкли и присвоим ему адрес системной функции MessageBoxA «MessageBox equ <MessageBoxA>».

Теперь в программе мы можем использовать функцию вывода на экран сообщения, обращаясь к ней как по имени MessageBox, так и по имени MessageBoxA. Эти синонимы теперь указывают на одну и ту же системную функцию.

Область кода программы тоже упростится, поскольку в модели памяти FLAT нет понятия «селектор», а есть только «смещение». Поэтому не надо устанавливать DS, а следует только ввести в качестве параметров процедуры нужные смещения в области данных.

Выход из программы осуществляем системной функцией ExitProcess, подавая ей в качестве параметра код выхода 0. Обычно в коде выхода устанавливаются биты ошибки выполнения программы.

Завершение листинга программы осуществляется стандартным образом.

Текст программы

Текст разработанного нами приложения представлен в листинге 2.1.

Листинг 2.1 – Текст файла Lab1.asm

.386 .model flat,STDCALL include win32.inc   extrn MessageBoxA:PROC extrn ExitProcess:PROC extrn MessageBoxIndirectA:PROC extrn WinHelpA:proc MessageBox equ <MessageBoxA> .data szMsg db 'Выберите действие',0 szCapt db 'Лаб. работа №1',0 szMsgOK db 'Была нажата кнопка Да.',0 szMsgNO db 'Была нажата кнопка Нет.',0   Path db 'My.hlp',0   MSGBOXPARAMS struc cbSize dd 40 hwndOwner dd 0 hInstance dd 0 lpszText dd 0 lpszCaption dd 0 dwStyle dd 0 lpszIcon dd 0 dwContextHelpId dd 0 lpfnMsgBoxCallback dd 0 dwLanguageId dd 0 MSGBOXPARAMS ends MsBxPrm MSGBOXPARAMS<>   .code start:   mov dword ptr MsBxPrm.lpszText,offset szMsg mov dword ptr MsBxPrm.lpszCaption,offset szCapt mov dword ptr MsBxPrm.dwStyle,MB_YESNO+MF_HELP mov dword ptr MsBxPrm.lpfnMsgBoxCallback,offset MsgBoxCallback   M00: call MessageBoxIndirectA,offset MsBxPrm cmp ax,6 jne M02 jmp M01   M02: call MessageBox,0,offset szMsgNO,offset szCapt,MB_OK+MB_ICONQUESTION jmp M03   M01: call MessageBox,0,offset szMsgOK,offset szCapt,MB_OK+MB_ICONQUESTION jmp M03   M03: call ExitProcess,0   MsgBoxCallback proc lpHlpInf call WinHelpA,0,offset Path,HELP_HELPONHELP,0,0 ret MsgBoxCallback endp   ends end start

Тестирование программы

При запуске программы перед нами открывается окно представленное на рисунке 3.1

Тестирование программы. Содержание - student2.ru

Рисунок 3.1 – Стартовое диалоговое окно программы

Если нажать на кнопку «ДА» то откроется новое окно с соответствующей записью (Рисунок 3.2), если в открывшемся окне нажать на кнопку «ОК» то программа закроется.

Тестирование программы. Содержание - student2.ru

Рисунок 3.2 – диалоговое окно открывающееся после нажатия на кнопку «ДА»

Если нажать на кнопку «НЕТ» то откроется новое окно с соответствующей записью (Рисунок 3.3), функционал данного окна аналогичен окну описанному выше.

Тестирование программы. Содержание - student2.ru

Рисунок 3.3 – диалоговое окно открывающееся после нажатия на кнопку «НЕТ»

Если нажать на кнопку «Справка» то откроется файл My.hlp, ка кна рисунке 3.4 (файл хранит информацию о подключению к интернету).

Тестирование программы. Содержание - student2.ru

Рисунок 3.4 – Демонстрация работы кнопки «Справка»

Заключение

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

Список используемых источников

1) step1_Win32.doc

Наши рекомендации