Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Презентации / шины, память, иакросы.ppt
Скачиваний:
43
Добавлен:
11.04.2015
Размер:
6.93 Mб
Скачать

Центральный процессор может обмениваться с портами байтами или словами (в зависимости от вида порта). Для записи значения в некоторый порт используется машинная команда

out op1,op2

Здесь операнд op1 определяет номер нужного порта и может иметь формат i8 (если номер порта небольшой и известен заранее) или быть регистром dx (если номер больше 255 или становится известным только в процессе счёта программы). Второй операнд op2 должен задаваться регистром al (если производится запись в порт байта) или ax (если производится запись в порт слова). При выполнении такой команды значение регистра (байт или слово) посылается по общей шине в соответствующий порт.

Для чтения данных в регистр из порта служит команда

in op1,op2

Здесь уже второй операнд op2 определяет номер нужного порта и может иметь, как и в предыдущей команде, формат i8 или быть регистром dx. Первый операнд op1 должен задаваться регистром al (если производится чтение из порта байта) или ax (если производится чтение слова). При выполнении этой команды значение (байт или слово) читается из заданного порта и по общей шине по-ступает в центральный процессор на указанный регистр. Итак, на нашем компьютере есть только очень простые команды для обмена байтом или словом между регистром центрального процессора и портом внешнего устройства. Почему же в архитектуре нашего компьютера команды ввода/вывода такие примитивные и неудобные для программиста? Ответ на этот вопрос легко понять, если вспомнить, что общая шина связывает между собой очень разные устройства, для которых было необходимо найти общий и приемлемый для всех их формат передаваемых данных. Ясно, что таким форматом может быть только один байт или одно слово – те минимальные порции данных, с которыми оперирует наш центральный процессор. Вот и приходится, например, для ввода целого числа с помощью команд in и out выполнять достаточно сложную программу

Программный ввод­вывод

.

•В этом случае всю работу выполняет центральный процессор.

•Рассмотрим процесс печати строки ABCDEFGH этим способом.

• Этапы печати строки ABCDEFGH

•Алгоритм печати:

1.Строка для печати собирается в пространстве пользователя. 2.Обращаясь к системному вызову, процесс получает принтер.

3.Обращаясь к системному вызову, процесс просит распечатать строку на принтере. 4.Операционная система копирует строку в массив, расположенный в режиме ядра. 5.ОС копирует первый символ в регистр данных принтера, который отображен на памяти. 6.Символ печатается на бумаге.

7.Указатель устанавливается на следующий символ.

8.Процессор ждет, когда бит готовности принтера выставится в готовность. 9.Все повторяется.

•При использовании буфера принтера, сначала вся строка копируется в буфер, после этого начинается печать

Дальние подпрограммы. Макросы

Отладить программу, написать комментарии к командам, составить схему работы программы

Соседние файлы в папке Презентации