
Кр и методичка Разработка резидентной программы в MS DOS / Задание_на_курс
.docЗадание
на курсовую работу по дисциплине 'ЭВМ и вычислительные системы'
Утверждено на заседании кафедры автоматики и электроники в машиностроении Коломенского института МГОУ.
1. Общие требования
1.1. Курсовая работа (КР) посвящена разработке резидентной программы, работающей на платформе MS-DOS.
-
КР должна быть оформлена в виде пояснительной записки.
-
Пояснительная записка должна содержать:
-
титульный лист (образец см. в приложении 1);
-
задание;
-
содержание;
-
основную часть;
-
список используемой литературы.
Страницы должны быть пронумерованы.
1.4. Основная часть должна содержать введение, блок-схему алгоритма, текст программы с описанием, выводы. Во введении (1..3 стр.) должны быть отражены общие вопросы создания и использования резидентных программ (РП) : назначение, особенности структуры, способы загрузки и выгрузки из памяти, способы запуска на исполнение. Выводы должны содержать результаты, полученные в ходе выполнения КР, а также анализ соответствия этих результатов требованиям задания. Пояснительная
Записка должна быть оформлена в текстовом редакторе Microsoft Word.
2. Задание
2.1. Разработать РП на языке ассемблера персональных компьютеров типа IBM PC, работающих под управлением операционной системы MS-DOS в реальном режиме. РП должна загружаться в оперативную память и выгружаться из неё командой с соответствующими ключами. В РП должна быть предусмотрена защита от повторной загрузки. Операции загрузки, выгрузки и повторной загрузки должны сопровождаться выводом на экран поясняющих сообщений. Специальное задание взять из п. 2.2 согласно заданному варианту.
2.2. Специальные задания
-
Ключ загрузки - /I. Ключ выгрузки - /2. РП обслуживает прерывание от таймера (вектор 1Ch) . Обработчик прерывания (ОП) в ответ на каждый 256-й запрос выводит на экран сообщение о режиме ввода, установленном клавишей Caps Lock, например, "Режим Caps Lock включен (выключен)!".
-
Ключ загрузки - /ON. Ключ выгрузки - /OFF. РП запускается сочетанием клавиш Ctrl+A (прерывание от клавиатуры с вектором 9) с подключением ОП до системного и выводит на экран текущее время в виде <ч>:<мин.>:<с>, например, 10:11:00.
2.2.3. Ключ загрузки - /L. Ключ выгрузки - /U. РП запускается из другой программы командой INT 60h и выводит на экран сообщение о состоянии буфера клавиатуры (БК) : БК пуст (не пуст), и если не пуст, то количество символов в БК.
2.2.4. Ключ загрузки - /LOAD. Ключ выгрузки - /UNLOAD. РП запускается сочетанием клавиш Ctrl+B (прерывание от клавиатуры с вектором 9) с подключением ОП после системного и выводит на экран содержимое регистров Flags, SI, DI.
2.2.5. Ключ загрузки - /ADD. Ключ выгрузки - /REMOVE. РП запускается сочетанием клавиш Ctrl+D (прерывание от клавиатуры с вектором 9) с подключением ОП до системного с самостоятельным завершением и выводит напрямую в видеобуфер в пятую строку экрана сообщение вида "КР по курсу ЭВМ и ВС с-та гр. <номер группы> <Ф.И.О.> вариант <номер варианта>".
-
Ключ загрузки - /L. Ключ выгрузки - /UNL. РП обслуживает прерывание от таймера (вектор 1Ch) . ОП в ответ на каждый 128-й запрос выводит на экран сообщение о режиме ввода, установленном клавишей Num Lock, например, "Режим Num Lock включен (выключен)! " .
-
Ключ загрузки - /А. Ключ выгрузки - /R. РП запускается сочетанием клавиш Ctrl+E (прерывание от клавиатуры с вектором 9) с подключением ОП до системного и выводит на экран сообщение в виде "Внимание!" и непрерывный звуковой сигнал длительностью 5 с на частоте 1000 Гц.
-
Ключ загрузки - /М. Ключ выгрузки - /RЕМ. РП запускается из другой программы командой INT 61h и выводит на экран содержимое регистров 8I. и SP.
-
Ключ загрузки - /LO. Ключ выгрузки - /UNLO. РП запускается сочетанием клавиш Ctrl+E (прерывание от клавиатуры с вектором 9) с подключением ОП после системного и выводит на экран адрес ОП в виде [<сегмент>]: [<смещение>].
-
Ключ загрузки - /add. Ключ выгрузки - /г. РП запускается сочетанием клавиш Ctrl+G (прерывание от клавиатуры с вектором 9) с подключением ОП до системного с самостоятельным завершением и выводит на экран значения флагов байта статуса кла- виатуры (адрес [0040h]:[0017h]) .
-
Ключ загрузки - /Z. Ключ выгрузки - /V. РП обслуживает прерывание от таймера (вектор 1Ch) . ОП в ответ на каждый 64-й запрос выводит на экран текущее время в виде <ч>:<мин>:<с>, например, 10:11:00.
-
Ключ загрузки - /ZAG. Ключ выгрузки - /RE. РП запускается сочетанием клавиш Ctrl+H (прерывание от клавиатуры с вектором 9) с подключением ОП до системного и выводит на экран адреса собственного и системного ОП в виде [<сег- мент>]: [<смещение>].
-
Ключ загрузки - /MOV. Ключ выгрузки - /REMOV. РП запускается из другой программы командой INT 62h и выводит на экран значения флагов байта статуса клавиатуры (адрес [0040h]:[0018h]).
-
Ключ загрузки - /2. Ключ выгрузки - /3. РП запускается сочетанием клавиш
Ctrl+L (прерывание от клавиатуры с вектором 9) с подключением ОП после системного выводит на экран сообщение в виде "Внимание!" и звуковой сигнал длительностью 5 с с параметрами: длительность звучания - 1 с, длительность паузы - 1 с, частота - 500 Гц.
2.2.15. Ключ загрузки - /5. Ключ выгрузки - /6. РП запускается сочетанием клавиш Ctrl+M (прерывание от клавиатуры с вектором 9) с подключением ОП до системного с самостоятельным завершением и выводит на экран текущий день недели в виде ПН, ВТ, СР, ЧТ, ПТ, СБ, ВС.
2.2.16. Ключ загрузки - /zagr. Ключ выгрузки - /unz. РП обслуживает прерывание IRQ8 от часов реального времени (CMOS) с вектором 70h с подключением ОП до системного. ОП выводит на экран текущее время в виде <ДН> день недели, <ч> ч., <мин. > мин., например, Пн 10 ч. 11 мин..
2.2.17. Ключ загрузки - /Y. Ключ выгрузки - /N. РП запускается сочетанием клавиш Ctrl+V (прерывание от клавиатуры с вектором 9) с подключением ОП до системного и выводит на экран сообщение о количестве и типах НГМД.
2.2.18. Ключ загрузки - /move. Ключ выгрузки - /remove. РП запускается из другой программы командой INT 63h. ОП читает из CMOS и выводит на экран текущую дату в виде <число>/<месяц>/<год> г., например, 01/01/2000 г.
2.2.19. Ключ загрузки - /SET. Ключ выгрузки - /DEL. РП обслуживает прерывание от таймера (вектор 1Ch) . Обработчик прерывания (ОП) в ответ на каждый 100-й запрос выводит на экран текущее время в виде <ч> час. <мин. > мин. <с> сек., например, 23 час. 29 мин. 05 сек..
2.2.20. Ключ загрузки - /MOVE. Ключ выгрузки - /REMOVE. РП запускается сочетанием клавиш Ctrl+Z (прерывание от клавиатуры с вектором 9) с подключением ОП после системного и выводит на экран сообщение в виде "Внимание!" и непрерывный звуковой сигнал длительностью 5 с на частоте 200 Гц.
2.2.21. Ключ загрузки - /S. Ключ выгрузки - /D. РП запускается из другой программы командой INT F1h и выводит на экран текущий день недели в виде ПН, ВТ, СР, ЧТ, ПН, СБ, ВС (рабочие дни - с белым, а выходные дни - с красным цветом символов).
2.2.22. Ключ загрузки - /М. Ключ выгрузки - /R. РП запускается сочетанием клавиш Ctrl+Y (прерывание от клавиатуры с вектором 9) с подключением ОП до системного и выводит на экран содержимое регистров CS, SP, SS.
2.2.23. Ключ загрузки - /LOAD. Ключ выгрузки - /RELOAD. РП запускается сочетанием клавиш Ctrl+X (прерывание от клавиатуры с вектором 9) с подключением ОП до системного с самостоятельным завершением и выводит напрямую в видеобуфер в десятую строку экрана красными символами на голубом фоне мигающее сообщение о типе монитора, например, "Монитор VGA, текстовый режим: 40 строк, 25 символов в строке".
I / 2.2.24. Ключ загрузки - /SETUP. Ключ выгрузки - /UNINS. РП обслуживает прерывание от таймера (вектор 1Ch) . ОП в ответ на каждый 200-й запрос выводит на экран адрес головы буфера клавиатуры в виде [сегмент]: [смещение].
2.2.25. Ключ загрузки /INSTALL. Ключ выгрузки /UNINSTALL. РП запускается сочетанием клавиш Ctrl+W (прерывание от клавиатуры с вектором 9) с
подключением ОП до системного и выводит в центре экрана ромбовидное окно с номером группы и Ф.И.О. студента.
2.2.26. Ключ загрузки - /Z. Ключ выгрузки - /V. РП запускается из другой программы командой INT F2h и выводит на экран таблицу разрешения маскируемых аппаратных прерываний в соответствии с текущей маской ведущего контроллера прерываний.
2.2.27. Ключ загрузки - /SE. Ключ выгрузки - /UNSE. РП запускается сочетанием клавиш Ctrl+V (прерывание от клавиатуры с вектором 09h) с подключением ОП после системного и выводит на экран сообщение о типе монитора, например, "Монитор VGA,
текстовый режим: 40 строк, 25 символов в строке".
-
Ключ загрузки - /L. Ключ выгрузки - /U. РП запускается сочетанием клавиш Ctrl+U (прерывание от клавиатуры с вектором 09h) с подключением ОП до системного с самостоятельным завершением и выводит на экран размер обнаруженной дополнительной памяти .
-
Ключ загрузки - /1. Ключ выгрузки - /2. РП обслуживает прерывание от таймера (вектор 1Ch) . ОП в ответ на каждый 500-й запрос выводит на экран адрес хвоста буфера клавиатуры в виде [сегмент]: [смещение].
-
Ключ загрузки - /ZAG. Ключ выгрузки - /RE. РП запускается сочетанием клавиш Ctrl+T (прерывание от клавиатуры с вектором 09h) с подключением ОП до системного и выводит на экран значения флагов байта статуса клавиатуры (адрес [0040h]:[0018h]).
\у 2.2.31. Ключ загрузки - /set. Ключ выгрузки - /clear. РП запускается из другой программы командой INT F3h и выводит напрямую в видеобуфер в первую строку экрана жёлтыми символами на синем фоне сообщение вида "Аппаратные прерывания разрешены!", если Flags.IF = 1, и "Аппаратные прерывания запрещены!". Flags. IF=0.
-
Ключ загрузки - /add. Ключ выгрузки - /rem. РП запускается сочетанием клавиш Ctrl+S (прерывание от клавиатуры с вектором 09h) с подключением ОП после системного и выводит на экран таблицу разрешения маскируемых аппаратных прерываний в соответствии с текущей маской ведомого контроллера прерываний.
-
Ключ загрузки - /inst. Ключ выгрузки - /unin. РП запускается сочетанием клавиш Ctrl+R (прерывание от клавиатуры с вектором 09h) с подключением ОП до системного с самостоятельным завершением и выводит на экран содержимое регистров SS, SP, SI, DI..
-
Ключ загрузки - /zagruzka. Ключ выгрузки - /unzagr. РП обслуживает прерывание IRQ8 от часов реального времени (CMOS) с вектором 70h с подключением ОП до системного. ОП выводит на экран количество символов, находящихся в буфере клавиатуры.
-
Ключ загрузки - /оn. Ключ выгрузки - /off. РП запускается сочетанием клавиш Ctrl+P (прерывание от клавиатуры с вектором 09h) с подключением ОП до системного и выводит на экран прямоугольное окно с синим цветом фона, обрамлённое белой двойной рамкой и содержащее сообщение "Здравствуйте!" (цвет символов - белый).
-
Ключ загрузки - /yes. Ключ выгрузки - /nо. РП запускается из другой программы командой INT F4h и выводит на экран сообщение в виде "Привет!", а также непрерывный звуковой сигнал длительностью 6 с на частоте 600 Гц.
Приложение 1
Министерство образования Российской Федерации
Коломенский институт
Московского Государственного
Открытого Университета
Кафедра "Автоматика и электроника в машиностроении"
Курсовая работа по дисциплине ЭВМ и ВС
(пояснительная записка)
Выполнил: студент группы <№ группы> <Ф.И.О студента>
Принял: <должность> <Ф.И.О. преподавателя>
Принял: <должность> <Ф.И.О. преподавателя>
г. Коломна, <год> г.