- •Федеральное государственное бюджетное
- •1 Используемое оборудование и программное обеспечение 5
- •2 Общая подготовка к выполнению практических заданий 5
- •3 Общий ход выполнения практических заданий 6
- •4 Основные теоретические положения по программированию устройств персональных компьютеров на языке ассемблера 6
- •5 Процесс ассемблирования и выполнения программы 43
- •Введение
- •1 Используемое оборудование и программное обеспечение
- •2 Общая подготовка к выполнению практических заданий
- •3 Общий ход выполнения практических заданий
- •4 Основные теоретические положения по программированию устройств персональных компьютеров на языке ассемблера
- •4.1 Прерывания и механизм их обработки
- •4.2 Организация работы с файлами
- •4.2.1 Управление дисками и каталогами
- •1) Установка/ проверка дискового накопителя по умолчанию.
- •2) Определение доступного дискового пространства.
- •3) Создание/ удаление подкаталога.
- •4) Получение/ изменение текущего каталога.
- •4.2.2 Подготовка файлов к операциям чтения/ записи
- •1) Создание/ удаление файла.
- •2) Открытие/ закрытие файла.
- •3) Получение/ изменение атрибутов файла.
- •4) Переименование файла.
- •4.2.3 Чтение, запись, позиционирование в файле
- •4.2.3 Организация поиска файлов
- •4.3 Управление клавиатурой
- •4.4 Управление выводом информации на дисплей
- •4.4.1 Вывод символов на экран в текстовом режиме
- •4.4.2 Управление курсором
- •4.4.3 Вывод точечной графики
- •4.5 Управление таймером
- •4.5.1 Работа со счётчиком времени суток
- •4.5.2 Генерация звука
- •4.6 Управление прерываниями. Написание собственного прерывания.
- •4.7 Управление «мышью»
- •5 Процесс ассемблирования и выполнения программы
- •5.1 Получение исполняемого модуля
- •5.2 Работа с отладчиком программ turbo debugger
- •1 2 3 5 4
- •6 Программа на языке ассемблера
- •6.1 Структура программы
- •6.2 Примеры программ
- •7 Практическое занятие № 1. Управление дисплеем. Вывод символов ascii на экран
- •7.1 Цель практического занятия
- •7.2 Контрольные вопросы
- •10 Практическое занятие № 4. Управление клавиатурой. Ввод строки символов
- •14 Практическое занятие № 8. Управление мышью
- •14.1 Цель практического занятия
- •14.2 Контрольные вопросы
- •14.3 Практическое задание
- •15 Практическое занятие № 9. Управление прерываниями. Написание собственного прерывания
- •Приложение а
7 Практическое занятие № 1. Управление дисплеем. Вывод символов ascii на экран
7.1 Цель практического занятия
Цели практического занятия:
1) изучение принципов работы дисплея и функций ОС и BIOS для вывода отдельных символов с атрибутами в текстовом режиме;
2) изучение принципов работы системных часов;
3) приобретение навыков использования функций ОС и BIOS для управления дисплеем для вывода отдельных символов с атрибутами в текстовом режиме при написании ассемблерных программ;
4) приобретение навыков использования функций управления системными часами для организации задержек в ассемблерных программах.
7.2 Контрольные вопросы
1) Основные части видеосистемы. Понятие дисплейной страницы.
2) Сколько байтов отводится на каждую позицию экрана в текстовом режиме? Какое разрешение имеет дисплей в текстовом режиме?
3) Функции управления курсором в текстовом режиме.
4) Функции вывода на экран одного символа. Особенности вывода чисел на экран
5) Распределение битов в байте атрибутов
6) Функции очистки экрана.
7) Организация задержки с помощью системных часов.
7.3 Практическое задание
Написать программу на языке ассемблера, которая выводит все символы таблицы кодов ASCII на экран в указанную позицию курсора. Символы выводятся в одну и ту же позицию с заданной задержкой и заданным цветом (каждый символ выводится другим цветом). Перед выводом символов экран необходимо очистить. Позиция на экране, время задержки и варианты распределения цвета символов выбираются самостоятельно.
8 Практическое занятие № 2. Управление дисплеем в
графическом режиме
8.1 Цель практического занятия
Цели практического занятия:
1) изучение принципов видеосистемы в графическом режиме;
2) приобретение навыков использования функций, необходимых для работы в графическом режиме при написании ассемблерных программ.
8.2 Контрольные вопросы
1) Особенности растровой и векторной графики.
2) Изменение цвета фона в графическом режиме.
3) Типы видеоадаптеров.
4) Функции рисования точки и чтения цвета точки в графическом режиме.
5) Особенности вывода текста в графическом режиме.
8.3 Практическое задание
Написать программу на языке ассемблера, которая в графическом режиме рисует прямоугольник размера 100300 пикселей в указанной позиции экрана и закрашивает этот прямоугольник заданным цветом. Затем моделирует движение отрезка длиной 5 пикселей от левой границы прямоугольника до правой границы. При достижении правой границы отрезок останавливается.
9 Практическое занятие № 3. Управление клавиатурой.
Проверка символа в буфере клавиатуры
9.1 Цель практического занятия
Цели практического занятия:
1) изучение принципов организации и функционирования буфера клавиатуры;
2) приобретение навыков использования функций ОС и BIOS для считывания отдельных символов с клавиатуры;
3) получение представления о процессе обработки нажатий отдельных клавиш и комбинаций клавиш клавиатуры.
9.2 Контрольные вопросы
1) Принципы организации буфера клавиатуры.
2) Понятие скан-кода, ASCII-кода, расширенного кода.
3) Процесс обработки нажатия клавиши на клавиатуре.
4) Функции ОС и BIOS для очистки буфера и проверки буфера клавиатуры.
5) Функции ОС и BIOS для ввода символов с клавиатуры. Особенности ввода символов с эхом, ожиданием, без эха, без ожидания.
9.3 Практическое задание
Написать программу на языке ассемблера, которая обрабатывает нажатия клавиш на клавиатуре и выдаёт на экран следующую информацию:
1) ASCII-код символа, если была нажата алфавитно-цифровая клавиша основной клавиатуры.
2) Строку «Расширенный код», если была нажата функциональная клавиша, клавиши дополнительной клавиатуры или комбинации клавиш с «ALT» и «CTRL».
Программа должна предварительно чистить буфер клавиатуры. Информация о каждом нажатии должна выводиться в новой строке (предыдущие сведения не затираются). Символы должны вводиться без эха. Программа должна завершиться по нажатию клавиши «ESC».