Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой прокт.docx
Скачиваний:
2
Добавлен:
22.11.2018
Размер:
54.24 Кб
Скачать
  1. Описание применения

    1. Назначение программы

Данная программа представляет собой курсовой проект по курсу «Системное программирование», которая написана на языке Assembler. Она создает выполняемую COM-программу, оставаясь в памяти резидентно. В ней предусматривается изменение цвета фона, при этом подается звуковой сигнал если нажата клавиша Caps Lock. Защитить доступ к программе паролем. Во время выполнения всей программы в правом верхнем углу должна присутствовать информация о разработчике и полное название НАКУ ХАИ.

    1. Структура программы

Программа состоит из:

  • CURSA4.ASM - исходного файла программы;

  • MY.MAC – макрос программы;

  • A.TXT – дополнительный файл;

    1. Входные и выходные данные

При запуске программы пользователю необходимо ввести пароль. Если пароль введен неверно или в папке отсутствует файл a.txt, то перед пользователем на экране выводиться сообщение об ошибки и выполнение программы завершается. Но если пользователь ввел правильный пароль и необходимое условие выполняется, то выводится сообщение о входе в программу. Программа завершает свою работу и остается в памяти резидентно. И при выполнение необходимых условий будет видно работу программы. При этом вовремя выполнения всей программы в правом верхнем углу будет чередоваться информация о разработчике и полного названия НАКУ ХАИ.

Входные данные:

M_pas db 12 dup() – буфер для хранения пароля вводимого пользователем.

Выходные данные:

MesPass db 'Введите пароль - $'

MesPassError db ' ВХОД НЕ РАЗРЕШЕН!!!!'

db '$'

MesPassOk db ' :-) ВХОД РАЗРЕШЕН :-)! '

db '$'

my_name db ' Чепыгова Ангелина Влодимировна '

my_hai db ' Национальный аэрокосмический университет "ХАИ" '

my_pus db ' '

    1. Алгоритм работы программы

      1. Инсталляционная часть:

В начале инсталляционной части, до ввода пароля необходимо сделать некоторые действия. Во-первых, прочитать вектор прерывания системного обработчика 1ch (осуществляется с помощью функции 35 int 21h), а затем сохранить его адрес и смещение в резидентных переменных. Во-вторых, установить свой собственный обработчик 1сh_2 (осуществляется с помощью функции 25 int 21h), который будет обеспечивать чередование фамилии разработчика и полного названия НУКА ХАИ, при этом его надо реализовать виде не резидентной процедуры. После этого мы вводим пароль. Перед этим мы очищаем экран процедурой ClearScreen, с помощью макросы vivod выводи запрос о вводе пароля в заданном месте экрана. Ввод пароля осуществляется процедурой Enter_Password. За тем происходит анализ пароля 3-мя уровнями (1 – введенный пароль сравнивается с эталоном, 2 – анализируется нажатие 2-ух клавиш Caps Lock и Num Lock, 3 – проверяется файл в каталоге, при этом если одно из условий не выполняется, осуществляется выход из программы, сопровождающийся соответствующим сообщением). Если пользователь ввел правильный пароль, то выводиться соответствующее сообщение, затем читается (осуществляется с помощью функции 34h int 21h) и сохраняется адрес флажка indos + errormod в резидентных данных. И устанавливается системный обработчик 1ch (осуществляется с помощью функции 25 int 21h) в памяти резидентно. Если нажата клавиша CapsLock, то будет выполняться основная часть программы, то есть меняться цвет фона, это осуществляется с помощью прямого обращения к видеопамяти, и подаваться звуковой сигнал, это осуществляется с помощью обращения к таймеру. В любом состояние клавиши Caps Lock, будет возможна выгрузка программы из памяти с помощью комбинации клавиши Ctrl+F10. Если же пользователь все-таки ввел не правильный пароль, то восстанавливается адрес системного обработчика 1ch, и осуществляется не резидентный выход.

Что бы следить о том правильно ли выполняется программа можно в командной строке прописать следующее – mem /d/p.