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

Системный обработчик 1ch (syst_1ch):

Первым делом мы сохраняем регистры (11, push). Затем приравниваем содержимое регистра DS к содержимому регистра CS. Следующим этапом будет сравнение счетчика с 0 (если счетчик не равен нулю то его значение уменьшается на 1, восстанавливаются регистры (11, pop) и прерывание выполняется заново), если он равен, то выполняется процедура prov, где проверяется флажок indos + errormod. В случае если вход запрещен то, восстанавливаются регистры (11, pop) и прерывание запускается заново. Если все прошло нормально, то выполняется следующее. Анализируется нажатие комбинации клавиш Ctrl+F10, это осуществляется с помощью обращения к буферу клавиатуры, если комбинация клавиш не была нажата, то выполняется основная часть программы, проверка клавиши Caps Lock, изменение цвета, подача звукового сигнала и соответственно после выполнения восстанавливаются регистры (11, pop) и прерывание запускается заново. Если была нажата комбинация клавиш, то осуществляется выгрузка программы и ее окружения из памяти. И программа полностью прекращает свое выполнение.

      1. Нерезидентная часть:

Собственный обработчик 1ch(my_1ch):

Первым делом мы сохраняем регистры (11, push). Затем приравниваем содержимое регистра DS к содержимому регистра CS. Потом мы сравниваем переменную my_flag с 1, если она равна 1, то выводиться фамилия разработчика, это осуществляется с помощью прямого обращения к видеопамяти (поэтому вывод фамилии осуществляется посимвольно). Затем значение счетчика 1 уменьшается на единицу и сравнивается с нулем, если он равен 0, то переменная my_flag приравнивается к 0, а значение счетчика 1 восстанавливается. Если значение счетчика 1 не было равно нулю, то восстанавливаются регистры (11, pop) и прерывание запускается заново. Вывод полного названия НАКУ ХАИ осуществляется по такому же алгоритму, за исключением некоторых моментов, как сравнение счетчик 2 с 0, и переменную my_flag приравнивается 1.

  1. Руководство пользователя

Запускаем на выполнение файл CURSA4.COM.

При запуске программы на экране появляется запрос «Введите пароль - ». Если пароль введен не правильно, либо в каталоге папки отсутствует файл a.txt, или небыли нажаты клавиши Caps Lock и Num Lock, то выполнение программы прекращается, при этом появляется сообщение «ВХОД НЕ РАЗРЕШЕН!!!!».

Если пароль введен правильно, на экране появляется следующее сообщение: «:-) ВХОД РАЗРЕШЕН :-)!».

Если нажата клавиша Caps Lock, то пользователь видит изменение цвета экрана, которое сопровождается звуковым сигналом. Если пользователю хочется на время прекратить изменение цвета, то можно еще раз нажать клавишу Caps Lock. Или вообще прекратить выполнение программы, нажав комбинацию клавиш Ctrl+F10.

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

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

Исходный текст программы на языке Assembler находится в файлах:

  • CURSA4.ASM – собственно главная часть программы;

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

  • CURSA4.COM – выполняемая программа;

Данная программа имеет множество вариантов ее дальнейшего усовершенствования.

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

Данная программа, выполнена на языке программирования низкого уровня Assembler.

На мой взгляд она достаточно удовлетворяет всем поставленным условиям.

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

Выполнив данное задание, мы закрепили навыки работы с языком программирования низкого уровня Assemble.