Содержание |
![]() |
||||||||
Прямое обращение к памяти и портам ввода-вывода В Турбо-Паскале имеется пять предварительно объявленных массивов: МЕМ, МЕМW, МЕМL, РОRТ и РОRТW. Первые три обеспечивают доступ к любому участку оперативной памяти по абсолютному адресу, два другие - доступ к портам ввода-вывода. Компонентами массива МЕМ являются данные типа ВYТЕ, массива МЕМW - типа WORD, массива МЕМL - типа LONGINT. Обращение к элементам этих массивов, т.е. их индексация, имеет специальный вид: каждый индекс представляет собой абсолютный адрес и состоит из двух выражений типа WORD; первое дает сегментную часть адреса, второе - смещение; выражения разделяются двоеточием: Mem[$0000:$1000]:= 0; Как следует из технического описания
операционной системы МS DOS, в ПЗУ BIOS по адресу $F000:$FFFE зашит
байт-идентификатор типа компьютера. Таким образом можно определить тип
компьютера, на котором запускается программа: Компонентами массива РОRТ
являются байты, а массива РОRТW - слова. Индексами этих массивов
должно быть выражение типа ВYТЕ, указывающее номер нужного порта.
Присвоение значения элементу массива РОRТ или РОRТW приведет к записи в
порт, упоминание элемента в выражении - к чтению из порта. Компоненты
массивов РОRТ и РОRТW нельзя передавать в качестве параметров процедурам
или функциям. Эти идентификаторы нельзя употреблять без индексных
выражений. |
|||||||||