"П.Нортон "Программно-аппаратная организация компьютера IBM PC"" - читать интересную книгу авторакоманды IN и OUT выполняются вслепую.
Операторы Бейсика обеспечивают прямой доступ к портам. Операторы Бейсика INP и OUT предоставляют те же возможности, что и машинные команды IN и OUT. Ниже, просто для примера, приведен фрагмент программы на Бейсике, работающей с динамиком: 10 X=INP(97) `чтение порта управления динамиком X 20 REM вероятно будет иметь значение 76 - проверьте какое значение Вы получите 30 OUT 97,X+3 `установить биты управления динамиком- прозвучит сигнал 40 OUT 97,X `снять биты управления - окончание звука Порты могут использоваться в сочетании с прерываниями. Например,если нажать клавишу на клавиатуре IBM/PC, никакие данные в компьютер не передаются. Вместо этого генерируется прерывание номер 9, указывающий, что имеются данные, которые нужно вводить с клавиатуры. В ответ на прерывание BIOS в ПЗУ выдаст команду IN для порта клавиатуры. Только после этого данные, определяющие какая клавиша была нажата, попадут в компьютер. В случае с памятью может существовать до 1024К различных ячеек, причем компьютер не знает, какие именно адреса действительно имеются. То же самое касается и портов - микропроцессор 8088 может обращаться к порту с любым допустимым номером, не зная, работает ли этот порт или нет. Адреса портов задаются 16 разрядами, так что потенциально можно иметь номеров и, следовательно, имеются неограниченные возможности для расширения. Имеется несколько способов использования портов в IBM/PC. Первый способ - это использование порта просто как пути данных. Например, коды клавиш, указывающие какая из клавиш была нажата, проходят через один порт; данные, выдаваемые на устройство печати, проходят через другой порт. Еще один способ использования портов заключается в передаче через них управляющей информации для внешних устройств и получении от этих устройств информации о состоянии. Например, инициализация адаптера монохромного дисплея выполняется через порт 952. Еще одно назначение портов заключается в считывании положений переключателей в системном блоке, указывающих конфигурацию системы. Ниже перечисляются некоторые наиболее важные применения портов. Как и некоторые подробности организации аппаратных средств, описанные в главе 2, номера конкретных портов могут не представлять интереса для читателя, но я привожу их полностью просто для полноты изложения. Порт 96 (шестнадцатиричное 60) используется для передачи данных в формате порядковых номеров, от клавиатуры. При описании клавиатуры в главе 10 мы рассмотрим форматы номеров и их использование более подробно. Порт 97 (61(16)) используется для управления встроенным динамиком, а также двигателем кассетного механизма. Он также позволяет запустить аппаратный таймер, что более подробно мы рассмотрим в главе 11. Порты с 64 по 67 (40(16)-43(16)) используются для управления программируемым таймером, используемым как динамиком, так и интерфейсом |
|
|