- •Применение системных функций в задачах программирования
- •Содержание
- •Использование программы 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
4. Требования к отчету
Отчет по лабораторной работе должен содержать:
а) титульный лист;
б) условие задания;
в) текст программ на языке Ассемблера;
г) ответы на контрольные вопросы.
5. Контрольные вопросы
1. Объясните назначение следующих команд DEBUG: (а) А, (б) U, (в) Р, (г) Т, (д) Q, (e) D, (ж) R, (з) Е.
2. Укажите команды DEBUG, с помощью которых можно сделать следующее.
(а) Просмотреть содержимое всех регистров.
(б) Просмотреть содержимое регистра IP и установить его в 0100Н.
(в) Просмотреть данные, хранящиеся в памяти, начиная со смещения 2ВСН в сегменте данных.
(г) Просмотреть данные, находящиеся в памяти, начиная с ячейки с адресом 3AFH. (Замечание: разделите этот адрес на части, соответствующие сегменту и смещению.)
(д) Дизассемблировать символьный код по адресам от 100Н до 12ВН.
(е) Ввести 24А63ВН в сегмент данных, начиная с адреса 18АН.
3. Укажите машинный код, выполняющий следующие действия: (а) прибавление непосредственного значения 03А8Н к АХ, (б) помещение значения 2СА4Н в регистр АХ.
4. Предположим, введена такая команда DEBUG:
Е CS:100 B8 45 01 05 25 00
Значение 45 на самом деле должно было быть 54. Укажите команду, изменяющую только этот байт, которая исправляет сделанную ошибку.
5. Предположим, что в DEBUG введена следующая команда:
Е CS:100 B8 05 1В 05 00 2С ЕВ F8
(а) Какие три символьных инструкции здесь закодированы? (Первая программа в работе содержит подсказку.)
(б) При исполнении этой программы вы обнаруживаете, что в регистр АХ помещается значение 4705 вместо ожидаемого 0547. В чем состоит ошибка и как ее исправить?
(в) Исправив ошибку, нужно повторно выполнить программу, начиная с первой инструкции. Какие команды DEBUG необходимо использовать?
6. Каково назначение инструкции INT?
ЛАБОРАТОРНАЯ РАБОТА № 2
Управление выводом текстовой информации на экран
1. Цель работы
Целью настоящей работы является изучение возможностей базовой системы ввода-вывода при выводе текстовой информации на экран монитора.
2. Теоретическая часть
Видеосистема компьютера включает в себя ряд аппаратных и программных средств, позволяющих получать на экране монитора текстовые и графические изображения.
К аппаратным средствам можно отнести сам видеомонитор – цветную электронно-лучевую трубку со схемами питания и управления, а также видеоконтроллер или видеоадаптер – электронную плату, обеспечивающую вывод на экран, а также программное управление видеосистемой.
В текстовом режиме изображение обычно состоит из 25 строк по 80 символов в строке, хотя имеется возможность увеличивать число строк до 40 за счет уменьшения высоты отображаемых символов.
Система выделяет участок памяти для Области видеоадаптера или буфера. В текстовом режиме область видеоадаптера занимает 4 Кбайт, 2 Кбайта из которых предназначены для хранения символов, и еще 2 Кбайта – для атрибутов каждого символа, например, инвертирования, мигания, повышенной яркости или подчеркивания. Область видеоадаптера разбита на «страницы» экрана, пронумерованные от 0 до 7. Поскольку таблицы, описывающие форму символов, загружаются в память программно, имеется возможность работать с символами любой конфигурации. Обычно используется стандартная кодовая таблица символов, содержащая знаки английского и русского алфавитов, знаки препинания, специальные машинные знаки, символы псевдографики и некоторые математические символы.
Программные средства управления экраном включают в себя видеодрайвер BIOS, к которому можно обратиться из прикладной программы с помощью прерывания INT 10h, и который обеспечивает нижний уровень управления (вывод символов, работа с курсором, переключение режимов видеоадаптера и т.д.), а также функции DOS, активизируемые с помощью прерывания INT 21h и предоставляющие более высокий уровень сервиса в текстовом режиме.
Для установки графического режима или возврата в текстовой режим используется прерывание BIOS INT 10h, как это показано в двух следующих примерах:
MOV AH,00 ;Режим MOV AH,00 ;Режим
MOV AL,03 ;Цвет+текст MOV AL,04 ;Графика среднего
INT 10h INT 10h ; разрешения