Программирование ввода-вывода 1 часть и 2 часть.

Цель работы: Изучить работу процессора при организации прерываний INT 10 , INT21 и INT 20.

Задание 1 часть:

1.Программа для очистки указанной области экрана, использовать подфункции прерывания INT 10.

1) Составить ассемблерную программу для очистки экрана в заданных в приложении 1 пределах и при заданных условиях.

2) Ввести программу в сегмент кодов с начальным для него смещением 100h.

3) Выполнить программу.

2. Программа установки позиции курсора, использовать подфункции прерывания INT 10.

1) Составить ассемблерную программу для установки курсора по заданным в приложение 1 координатам.

2) Ввести программу в сегмент кодов с адресом, продвинутым относительно последней команды предыдущей программы.

3) Выполнить программу.

3. Программа установки размера курсора, использовать подфункции прерывания INT 10.

1) Составить ассемблерную программу для увеличения размера курсора по заданным в приложение 1 значениям.

2) Ввести программу в сегмент кодов с адресом, продвинутым относительно последней команды предыдущей программы.

3) Выполнить программу.

4. Программа вывода символов с атрибутом в текущую позицию курсора средствами BIOS, использовать подфункции прерывания INT 10.

1) Составить ассемблерную программу для вывода символов из приложения 1 заданным цветом на указанном фоне . ASCII-код символа взять из приложения 4 .

2) Ввести программу в сегмент кодов с адресом , продвинутым относительно последней команды предыдущей программы .

3) Выполнить программу.

Контрольные вопросы:

1. Как работает команда прерывания?

2. Чем отличаются прерывания INT 21 и INT 10?

3. Что определяет значение , хранящееся в регистре АН?

4. Зачем нужна команда DEBUG - G ?

Содержание отчета:

1. Ответы на контрольные вопросы.

2. Распечатка результатов пошагового выполнения программ из заданий 1, 2.3.4.

Задание 2 часть:

1. Программа для вывода сообщения из памяти, использующая INT 21 прерывание, передающее управление в DOS.

1) Введите в сегмент данных по указанному адресу сообщение из приложения 2 .

2) Просмотреть содержимое сегмента данных.

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

4) Ввести программу в сегмент кодов со смещением 120h.

5) Выполнить программу.

2. Программа ввода данных с клавиатуры, использующая INT 21 прерывание, передающее управление в DOS.

1) Составить ассемблерную программу для ввода своего имени с клавиатуры (программа должна заканчиваться директивой DB '_' , на которую и будет ссылка, определяющая область ввода).

2) Ввести программу в сегмент кодов с адресом, продвинутым относительно последней команды предыдущей программы.

3) Выполнить программу.

4) Просмотреть после этого сегмент данных.

3. Программа вывода данных на экран, использующая INT 21 прерывание, передающее управление в DOS.

1) Составить ассемблерную программу для вывода своего имени на экран, используя его длину и директиву DB .

2) Ввести, программу в сегмент кодов с адресом, продвинутым относительно последней команды предыдущей программы.

3) Выполнить программу.

Контрольные вопросы:

1. Зачем нужен знак $ в конце строки?

2. Что такое вектор прерывания?

3. Где располагается таблица векторов прерываний?

4. Что означает флаг IF?

Содержание отчета:

3. Ответы на контрольные вопросы.

4. Распечатка результатов пошагового выполнения программ из заданий 1, 2,3.

Краткие теоретические сведения по прерываниям:

INT 10h.

подфункция назначение
00h Установка видеорежима 03h текстовый 80х25 10h графический 640х350 04h графический 320х200 12h графический 640х480 13h графический 320х200
01h Установка конфигурации Курсора
подфункция назначение
02h Установка позиции курсора
03h Получение позиции и размера курсора
05h Установка видеостраницы
06h/07h Инициализация или прокрутка окна вверх(вниз)
08h Чтение символа и атрибута в позиции курсора
0Ah Запись символа и атрибута В позицию курсора
0Ch Запись пиксела
ODh Чтение пиксела
0Fh Получение видеорежима
10h(подфункция 00h) Настройка цветового регистра
10h(подфункция 01h) Установка цвета края экрана
10h(подфункция 02h) Настройка цветовой палитры и цветового края экрана
10h(подфункция 03h) Переключение бита Мерцание/ яркость
10h(подфункция 07h) Чтение цветового регистра
10h(подфункция 09h) Чтение цветовой палитры и цвета края экрана
10h(подфункция 11h) Задание спецификатора блока знакогенератора
11h(подфункция 10h) Загрузка шрифта пользователя
11h(подфункция 11h) Загрузка шрифта ПЗУ 8х14

INT 21h.

подфункция назначение
01h Ввод символа с эхом
02h Вывод символа
05h Вывод символа на принтер
06h Прямой ввод вывод
09h Вывод строки символов
0Ah Буферизованный ввод с клавиатуры
0Bh Проверка состояния ввода
0Eh Выбор диска
3Dh Открытие файла
3Eh Закрытие файла
3Fh Чтение из файла или устройства
40h Запись в файл или в устройство
41h Удаление файла
42h Установка указателя в файле

Программирование ввода-вывода 1 часть и 2 часть. - student2.ru

Программирование ввода-вывода 1 часть и 2 часть. - student2.ru Программирование ввода-вывода 1 часть и 2 часть. - student2.ru

Практическая работа № 6

Наши рекомендации