Сборник заданий по лабораторным работам и курсовому проектированию: Специализированные вычислительные системы. Никищенков И.А. - 6 стр.

UptoLike

Составители: 

- 6 -
2. Задания на лабоpатоpные pаботы
2.1. Лабоpатоpная pабота N1
Оpганизация ввода-вывода по прерываниям
При вводе с клавиатуры в память ЭВМ помещаются коды нажатых
клавиш, причем код символа хранится в одном байте. В зависимости
от используемой таблицы кодов одни и те же клавиши могут интерп-
ретироваться по разному. В большинстве таблиц кодировки матема-
тические символы и латинские буквы кодируются одинаково, что уп-
рощает задачу ввода числовых данных с клавиатуры.
Для организации ввода-вывода на IBM PC совместимых ПЭВМ ис-
пользуются функции BIOS и DOS. Основное отличие между ними зак-
лючается в следующем:
- программы BIOS встроены в ПЗУ и позволяют управлять парал-
лельным и последовательным портами, клавиатурой, дисплеем и дис-
ками, однако эти программы выполняют только простые операции
ввода-вывода, но не могут обрабатывать простые структуры данных;
- программы DOS представляют возможности более высокого
уровня, однако программы DOS используют программы BIOS для уп-
равления устройствами, в результате чего для довольно большого
количества задач функции DOS работают медленнее, чем требуется.
В СВС требования работы в реальном масштабе времени часто накла-
дывают жесткие ограничения на быстродействие программ, поэтому
при программировании лабораторной работы следует использовать
только функции BIOS.
Для обслуживания клавиатуры используются прерывания клавиа-
туры BIOS с номером 9h, которое является аппаратным и не может
вызываться из программы. При нажатии клавиши происходит прерыва-
ние процессора с этим номером, а программа обработки прерывания
помещает байт и скен-код нажатой клавиши в буфер, размер которо-
го 16 кодов клавиш. Доступ к буферу обеспечивается прерыванием
обслуживания клавиатуры INT 16h. В зависимости от содержимого AH
выполняются следующие функции:
0h - прочитать следующий символ клавиатуры, после выполнения
который в AL помещается код ASCII символа, а в AH - скен
-код;
1h - проверить наличие следующего символа, по результатам вы-
полнения которой в флаг ZF устанавливается в единицу,