- •Применение системных функций в задачах программирования
- •Содержание
- •Использование программы dos debug для отладки и тестирования программ.
- •1. Цель работы
- •2. Теоретическая часть
- •2.1. Команды debug
- •2.2. Основные особенности программы debug.
- •2.2.1. Команда d (Display - показать) в программе debug
- •2.2.2. Упражнение 1: просмотр области данных bios
- •2.2.3. Проверка параллельных и последовательных портов
- •2.2.4. Проверка оборудования системы
- •2.2.5. Проверка состояния регистра клавиатуры (клавиша Shift)
- •2.2.6. Проверка состояния видеоустройства
- •2.2.7. Упражнение 2: Просмотр rom bios
- •2.2.8. Проверка даты производства bios
- •2.2.9. Упражнение 3: Использование непосредственных данных
- •2.2.10. Ввод инструкций программы
- •2.2.11. Выполнение инструкций программы
- •2.2.12. Просмотр содержимого памяти
- •2.2.13. Использование ранее определенных данных
- •2.2.14. Ввод инструкций и данных программы
- •2.2.15. Выполнение инструкций программы
- •2.2.16. Повторное выполнение инструкций
- •2.2.17. Сохранение программы в debug
- •2.2.18. Программа на языке Ассемблера
- •2.2.18.1. Команда a (Assemble)
- •2.2.18.2. Команда u
- •2.2.19.Использование инструкции int
- •2.2.20. Получение текущих значений даты и времени
- •2.2.21. Определение установленного оборудования
- •2.2.22. Использование int для вывода на дисплей
- •2.2.23. Использование int для ввода с клавиатуры
- •2.2.24. Использование оператора ptr
- •3. Порядок выполнения работы
- •4. Требования к отчету
- •5. Контрольные вопросы
- •Управление выводом текстовой информации на экран
- •1. Цель работы
- •2. Теоретическая часть
- •2.1. Текстовой (алфавитно-цифровой) режим
- •2.2. Вывод на экран средствами bios
- •2.2.1. Установка позиции курсора
- •2.2.2. Чтение текущей позиции курсора
- •2.2.3. Выбор активной страницы
- •2.3.4. Прокрутка экрана вверх
- •2.2.5. Прокрутка экрана вниз
- •2.2.6. Чтение символа и атрибута в текущей позиции курсора
- •2.2.7. Вывод символа и атрибута в текущую позицию курсора
- •2.2.8. Вывод символа в текущую позицию курсора
- •2.2.9. Вывод в режиме телетайпа
- •2.2.10. Выделение мерцанием и яркостью
- •2.2.11. Вывод символьной строки
- •2.2.12. Вывод символьной строки средствами dos
- •2.2.13. Вывод символов таблицы ascii
- •3. Порядок выполнения работы
- •4. Требования к отчету
- •5. Контрольные вопросы
- •Системные средства для вывода информации на экран в графическом режиме
- •1. Цель работы
- •2. Теоретическая часть
- •2.1. Режим средней разрешающей способности
- •2.2. Функции прерывания bios int 10h для графики
- •2.3. Вывод в цветном графическом режиме
- •3. Порядок выполнения работы
- •4 Требования к отчету
- •5. Контрольные вопросы
- •Программирование системных функций bios и dos для работы с клавиатурой
- •2.2.1.2. Справка о наличии символа
- •2.2.1.3 Определение текущего состояния клавиатуры
- •2.2.2 Системные функции dos для работы с клавиатурой
- •2.2.2.1 Ввод с клавиатуры с эхоотображением
- •2.2.2.2 Ввод символа без ожидания
- •2.2.2.3. Прямой ввод с клавиатуры без эхо
- •2.2.2.4. Проверка состояния клавиатуры
- •2.2.2.5. Получение строки символов
- •2.2.2.6. Очистка буфера клавиатуры и ввод символа
- •2.2.2.7. Установка позиции курсора
- •2.2.2.8. Очистка экрана
- •3. Порядок выполнения работы
- •4. Требования к отчету
- •5. Контрольные вопросы
- •Список литературы
- •Программа debug
- •I (Input)
- •Трансляция и компоновка программ
- •Применение системных функций в задачах программирования
- •450000, Уфа-центр, ул. К. Маркса, 12
2.3. Вывод в цветном графическом режиме
Программа, приведенная ниже, использует команду INT 10h для установки графического режима, выбора зеленого фона и вывода на экран точек (40 строк по 320 столбцов). В программе происходит увеличение значения цвета на 1 для каждой строки. Так как в определении цвета участвуют только три правых бита, цвета повторяются через каждые семь строк.
MOV AH,00 ;Устан. режима графики
MOV AL,0Dh для EGA (CGA=04)
INT 10h
MOV AH,0Bh ;Установить палитру
MOV BH,00 ;Фон
MOV BL,02 ;Зеленый
INT 10h
MOV BX,00 ;Начальные цвет,
MOV CX,00 ;столбец
MOV DX,00 ;и строка
A50: MOV AH,0Ch ;Функция вывода точки
MOV AL,BL ;Установить цвет
INT 10h ;BХ, СХ и DХ сохраняются
INC CX ;Увеличить столбец
CMP CX,320 ;Столбец 320?
JNE A50 ;Нет - цикл,
MOV CX,00 ;Да - сбросить
INC BL ;Изменить цвет
INC DX ;Увеличить строку
CMP DX,40 ;Строка 40?
JNE A50 ;Нет - цикл,
RET ;Да - завершить
После выполнения программы дисплей остается в графическом режиме. Восстановление текстового режима возможно либо с помощью команды DOS MODE (МОDЕ С080), либо пользовательской СОМ-программой, в которой для этой цели используется команда INT 10h.
3. Порядок выполнения работы
С помощью ассемблера выполнить программу, приведенную в пункте 2.3. На основе этой программы составить и выполнить процедуру, которая устанавливает графический режим экрана со средней разрешающей способностью с установкой цветов и выводит в его центре геометрическую фигуру в виде окрашенного квадрата.
4 Требования к отчету
Отчет по лабораторной работе должен содержать:
а) титульный лист;
б) условие задания;
в) текст программ на языке Ассемблера;
г) ответы на контрольные вопросы.
5. Контрольные вопросы
1. Объясните разницу в количестве цветов, возможных при низ-ком, среднем и высоком разрешении.
2. Напишите команды для установки графического режима с разрешающей способностью:
а) 320х200 в адаптере CGA и б) 640х200 в адаптере EGA.
3. Напишите команды для установки синего фона в графическом режиме.
4. Напишите команды для чтения точки на 12-й строке и 13-м столбце в графическом режиме.
5. Модифицируйте приведенную программу для:
а) графического режима на вашем мониторе;
б) красного фона; в) строк с 10-й по 30-ю;
г) столбцов с 20-го по 300-й.
ЛАБОРАТОРНАЯ РАБОТА № 4
Программирование системных функций bios и dos для работы с клавиатурой
2.1. Цель работы
Целью настоящей работы является изучение возможностей базовой системы ввода-вывода и дисковой операционной системы для программирования ввода информации с клавиатуры.
2.2. Теоретическая часть
2.2.1. Системные функции BIOS для работы с клавиатурой
Базовая система ввода-вывода (BIOS) имеет три функции для работы с клавиатурой. Они являются частью клавиатурного драйвера и выполняются с помощью прерывания 16h. Номер конкретной функции задается в регистре AН. Результат выполнения функции получается в регистрах AL и AH.
2.2.1.1. Чтение очередного символа
Функция AH=00h помещает в регистр AL очередной ASCII-код символа, введенного с клавиатуры, а в регистр AH заносит скэнкод этого символа. Если буфер клавиатуры пуст, то компьютер ожидает нажатия клавиши. Если клавиша или комбинация клавиш генерирует расширенный код, то в регистр AL помещается 0, а в регистр AH расширенный код. Введенный символ на экране не отображается.
MOV AH,00h
INT 16h