Компьютерный практикум. Программирование с помощью функций DOS и BIOS

 

Перечень практических работ

 

Занятие 5 Тема «Вывод текста на экран с помощью функции 40h 21h прерывпния. Команды dec, inc, loop, pop, push. Перенаправление вывода»

 

Работа 1 «Вывод строки текста на экран»

Задание:

1.     Написать с использованием 40h функции 21h прерывания программу вывода текстовой строки из сегмента данных программы на экран;

2.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.

 

Работа 2 «Циклический вывод строки текста на экран»

Задание:

1.     Модифицировать программу, разработанную в работе 1 с использованием оператора loop так, чтобы она выводила 5 раз подряд текстовую строку из сегмента данных программы на экран;

2.     Выводимые строки должны быть расположены, начиная с левого края экрана каждая; 

3.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.

 

Работа 3 «Циклический вывод укорачивающейся строки текста на экран»

Задание:

1.     Модифицировать программу, разработанную в работе 2 так, чтобы она выводила 5 раз подряд текстовую строку из сегмента данных программы на экран;

2.     Каждая следующая выведенная строка должна быть на 1 символ короче предыдущей;

3.     Выводимые строки должны быть расположены, начиная с левого края экрана каждая; 

4.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.


 

Работа 4 «Перенаправление вывода»

Задание:

1.     Запустить программу, разработанную в работе 1 в режиме перенаправления вывода в файл 4.txt;

2.     Проанализировав файл 4.txt, убедиться в правильности работы программы.

 

Работа 5 «Работа с отладчиком td»

Задание:

1.     Запустить программу, разработанную в работе 1 в режиме отладки под управлением отладчика td.exe;

2.     Используя пошаговый режим, проанализируйте содержимое регистров при выполнении программы. Убедиться в правильности работы программы.

 

Занятие 6 Тема «Прямое обращение к текстовому видеобуферу»

 

Работа 1 «Прямой вывод в текстовый видеобуфер»

Задание:

1.     Написать программу вывода символа с атрибутами на усмотрение программиста в заданное место экрана с помощью прямого обращения в текстовый вилеобуфер;

2.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.

 

Занятие 7 Тема «Работа с файлами»

 

Работа 1 «Вывод в файл»

Задание:

1.     Написать с использованием функций 21h прерывания программу вывода текстовой строки из сегмента данных программы в файл с именем 1.txt;

2.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.


 

Работа 2 «Ввод из файла»

Задание:

1.     Написать с использованием функций 21h прерывания программу ввода текстовой строки из файла с именем 1.txt и выводящую эту строку на экран;

2.     Модифицировать файл 1.txt, созданный при выполнении работы 1;

3.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.

 

Занятие 8 Тема «Работа с клавиатурой. Ввод с клавиатуры помощью функций 01h, 06h, 08h, 0Ah 21h прерывпния. Перенаправление ввода-вывода. Команды cmp, j*.»

 

Работа 1 «Ввод с эхо и ожиданием»

Задание:

1.     Написать с использованием функций 21h прерывания программу ввода символа с клавиатуры с ожиданием ввода и эхо-повтором и вывода введенного символа на экран;

2.     Программа должна:

a.      После запуска ожидать ввода символа с клавиатуры;

b.     При вводе символа отобразить его на экране в позиции курсора экрана;

c.     Вывести введенный символ в позицию курсора экрана;

d.     Завершить свою работу;

3.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.

 

Работа 2 «Ввод без эхо и ожиданием»

Задание:

1.     Написать с использованием функций 21h прерывания программу ввода символа с клавиатуры с ожиданием ввода без эхо-повтора и вывода введенного символа на экран;

2.     Программа должна:

2.1.          После запуска ожидать ввода символа с клавиатуры;

a.      При вводе символа не отобразить его на экране;

2.2. Вывести введенный символ в позицию курсора экрана;

2.2.          Завершить свою работу;

3.       Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.


 

Работа 3 «Ввод без эхо и без ожидания»

Задание:

1.     Написать с использованием функций 21h прерывания программу ввода символа с клавиатуры без ожидания ввода и без эхо-повтора и вывода введенного символа на экран;

2.     Программа должна:

2.1.    После запуска циклически опрашивая буфер клавиатуры вводить символ, соответствующий нажатой алфавитно-цифровой клавише и отображать его на экране;

2.2.    Завершить свою работу при вводе некоторого выбранного программистом символа;

3.       Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.

 

Работа 4 «Ввод с эхо, ожиданием и перенаправлением вывода»

Задание:

1.     Запустить программу, разработанную в соответствии с заданием 1 в режиме перенаправления вывода в файл 4.txt ;

2.     После завершения работы программы, просмотрев файл 4.txt, убедиться в правильности работы программы.

 

Работа 5 «Ввод без эхо и ожидания с перенаправлением вывода и ввода»

Задание:

1.     Запустить программу, разработанную в соответствии с заданием 3 в режиме перенаправления вывода в файл 5.txt ;

2.     После завершения работы программы, просмотрев файл 4.txt, убедиться в правильности работы программы;

3.     Запустить программу, разработанную в соответствии с заданием 3 в режиме перенаправления ввода из файла 5.txt ;

4.     Убедиться в правильности работы программы.


 

Работа 6 «Ввод с эхо, ожиданием и анализом скен-кода»

Задание:

1.     Модифицировать программу, разработанную в соответствии с заданием 1 так, чтобы она выполнялась циклически и завершалась при вводе некоторого, определенного программистом символа;

2.     Создать исполняемый файл этой программы, запустить его на выполнение в режиме перенаправления вывода в файл 6.txt ;

3.     Нажав предварительно клавишу F2, завершить работу программы;

4.     Просмотрев файл 6.txt в текстовом редакторе, отображающим коды символов, определить скен-код клавиши F2;

5.     Модифицировать настоящую программу так, чтобы она завершалась при нажатии клавиши F2;

6.      Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.

 

 

Занятие 9 Тема «Использование функций 10h прерывания BIOS при работа с видеосистемой в текстовом режиме»

 

Работа 1 «Изменение вида текстового курсора экрана»

Задание:

1.     Написать с использованием функций 10h прерывания BIOS программу, изменяющую вид текстового курсора экрана;

2.     Программа должна изменить вид текстового курсора экрана и завершаться;

3.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.

 

Работа 2 «Восстановление вида текстового курсора экрана»

Задание:

1.     Написать с использованием функций 10h прерывания BIOS программу, восстанавливающую стандартный вид текстовогокурсора экрана;

2.     Программа должна восстановить стандартный  вид текстового курсора экрана и завершаться;

3.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.


 

Работа 3 «Изменение положения текстового курсора экрана»

Задание:

1.     Написать с использованием функций 10h прерывания BIOS программу, изменяющую положение текстовогокурсора экрана;

2.     Программа должна изменить положение текстового курсора экрана и вывести символ с заметными атрибутами в позицию текстового курсора экрана;

3.     Программа должна завершаться при нажатии любой клавиши на клавиатуре;

4.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.

 

Работа 4 «Переключение страницы экрана в текстовом режиме»

Задание:

1.     Написать с использованием функций 10h прерывания BIOS программу, изменяющую номер страницы экрана в текстовом режиме;

2.     Программа должна изменить номер отображаемой  страницы экрана и вывести символ с заметными атрибутами в позицию текстового курсора;

3.     При нажатии любой клавиши на клавиатуре программа должна сделать видимой страницу экрана, используемую по умолчанию, и завершиться  ;

4.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.

 

Работа 5 «Прокрутка окна на экране в текстовом режиме»

Задание:

1.     Написать с использованием функций 10h прерывания BIOS программу, прокручивающую окно экрана в текстовом режиме;

2.     Программа должна прокрутить часть содержимого экрана – окно в текстовом режиме на несколько строк вверх;

3.     При нажатии любой клавиши на клавиатуре программа должна завершиться;

4.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.

 


 

Занятие 10 Тема «Использование функций 10h прерывания BIOS при работа с видеосистемой в графическом режиме»

 

Работа 1 «Отрезок прямой»

Задание:

1.     Написать с использованием функций 10h прерывания BIOS программу, выводящую на экране дисплея отрезок наклонной прямой лмнии;

2.     Программа должна завершаться при нажатии любой клавиши на клавиатуре;

3.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.

 

 

Занятие 11 Тема «Работа с мышью»

 

Работа 1 «Курсор мыши в текстовом режиме»

Задание:

1.     Написать программу, делающую курсор мыши видимым на экране дисплея при работе видеосистемы в текстовом режиме;

2.     Программа должна завершаться при нажатии любой клавиши на клавиатуре;

3.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.

 

Работа 2 «Левая клавиша мыши»

Задание:

1.     Написать программу, завершающуюся либо при нажатии на левую клавишу мыши, либо – при нажатии на любую клавишу на клавиатуре;

2.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.

 

Работа 3 «Координаты курсор мыши в текстовом режиме»

Задание:

1.     Написать программу, делающую курсор мыши видимым на экране дисплея при работе видеосистемы в текстовом режиме;

2.     Программа должна завершаться либо при перемещении курсора левее условной вертикальной линии на экране, либо при нажатии любой клавиши на клавиатуре;

3.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.

 

 

 

Работа 4 «Координаты курсор мыши в графическом режиме»

Задание:

1.     Написать программу, делающую курсор мыши видимым на экране дисплея при работе видеосистемы в графическом режиме;

2.     Программа должна завершаться либо при перемещении курсора левее условной вертикальной линии на экране, либо при нажатии любой клавиши на клавиатуре;

3.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.

 

Работа 5 «Вид курсора мыши в графическом режиме»

Задание:

1.     Написать программу, которая выполняет следующие действия:

1.1.          Переключает видеосистему в графический режим;

1.2.          Делает курсор мыши видимым на экране дисплея;

1.3.          Изображает на экране отрезок прямой линии;

1.4.          Настраивает вид курсора таким образом, чтобы он имел форму квадрата, был видимым вне изображения отрезка, а при наведении на отрезок изменял вид перекрываемой части отрезка;

2.     Программа должна завершаться либо при перемещении курсора левее условной вертикальной линии на экране, либо при нажатии любой клавиши на клавиатуре;

3.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.

 

 

Занятие 12 Тема «Работа с прерываниями»

 

Работа 1 «Блокировка системного таймера в сеансе DOS средствами системного отладчика»

Задание:

1.     С помощью системного отладчика прочитать маску контроллера прерываний;

2.     Вычислить значение маски, обеспечивающей блокировку прерываний системного таймера (и только его!), и записать полученное значение в качестве маски в контроллер прерываний;

3.     Завершить работу системного отладчика;

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


 

Работа 2 «Разблокировка системного таймера в сеансе DOS средствами системного отладчика»

Задание:

1.     С помощью системного отладчика записать в контроллер прерываний маску, полученную в работе 1, разрешающую реагирование на прерывания системного таймера;

2.     Завершить работу системного отладчика;

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

 

 

Работа 3 «Блокировка системного таймера в сеансе DOS с помощью программы»

Задание:

1. Написать программу, блокирующую прерывания системного таймера (и только его!), с помощью записи в контроллер маски, вычисленной в работе 1;

2. Создать исполняемый файл этой программы и запустить его на выполнение;

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

 

Работа 4 «Разблокировка системного таймера в сеансе DOS DOS с помощью программы»

Задание:

1. Написать программу, разблокирующую прерывания системного таймера с помощью записи в контроллер маски, определенного в работе 1;

2. Создать исполняемый файл этой программы и запустить его на выполнение;

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


 

 

Работа 5 «Перехват прерываний системного таймера»

Задание:

1.     Написать программу, перехватывающую прерывания системного таймера с помощью функции 25h DOS, подменяя обработчик прерывания 1Ch BIOS ;

2.     Программа должна работать так, чтобы на каждое 18-е прерывание системного таймера, т.е. приблизительно 1 раз в секунду, на экран дисплея выводились последовательно располагаемые символы:

3.     Вывод символов на экран должен продолжаться до нажатия какой-либо клавиши на клавиатуре, после чего программа должна восстановить работу системного обработчика прерываний 1Ch и завершить свою работу;

4.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.

5.     После завершения работы программы, выполнив несколько раз ситемную команду определения системного времени, убедитесь в корректной работе системного таймера.

 

 

 

Занятие 13 Тема «Макросы и подпрограммы»

 

Работа 1 «Программирование с использованием макросов и подпрограмм»

Задание:

4.     Модифицирровать программу вывода текстовой строки на экран дисплея с помощью функции 40h 21h прерывания, оформив блок вывода, как подпрограмму, а блок завершения работы программы – как макрос ;

5.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программы.

 

 

Занятие 14 Тема «Запуск дочерних программ»

 

Работа 1 «Запуск дочерней программы»

Задание:

1.     Написать программу, запускающую дочернюю программу.;

2.     В качестве дочерней программы использовать программу, разработанную  в работе 1 5-го занятия;

3.     Создать исполняемый файл этой программы, запустить его на


 

Работа 2 «Запуск дочерней программы Windows»

Задание:

1.     Модифицировать программу, разработанную в работе 1, использовав в качестве дочерней программы, программу «Блокнот» .;

2.     Создать исполняемый файл этой программы, запустить его на выполнение и убедиться в правильности работы программ

3.     выполнение и убедиться в правильности работы программ