Разделы:


Best links:

Система команд процессора ввода-вывода

Следует подчеркнуть, что когда в качестве приемника назначается регистр-указатель, например MOVI GB,27F0h его разряд-этикетка TAG устанавливается в «1». Поэтому команда MOV используется для загрузки адресов, относящихся к пространству ввода - вывода.

Команда MOVP - переслать указатель - пересылает 20-разрядный физический адрес между регистром-указателем и памятью. Если источником является регистр-указатель, то его содержимое и разряд-этикетка преобразуется в указатель физического адреса.

Image

Рис. 8.11. Примеры преобразования содержимого регистра-указателя в указатель адреса

          На рис. 8.11,а показано размещение значения указателя 265F3h в памяти по адресу 100h.

Если источником является память, то три байт памяти преобразуются в 20-разрядный физический адрес и значение этикетки TAG загружается в регистр-указатель и его разряд-этикетку. Эта команда обычно используется для сохранения и восстановления содержимого регистров-указателей.      

Команда LPD загрузить указатель двойным словом - преобразует двойное слово указателя в 20-разрядный физический адрес и загружает его в регистр-указатель. На рис. 8.11,б показано хранение указателя в памяти по адресу 200h, которому соответствует базовый адрес 3B4Ch и смещение 65h.

Этикетка регистра-указателя всегда сбрасывается в «0», указывая на адрес в системном пространстве. Имеется разновидность команды LPDI - загрузка указателя 32-разрядной константой. Таким образом, центральный процессор может передать в ПВВ любой адрес из своего пространства памяти в форме указателя (база, смещение), длина которого составляет двойное слово. Программа канала, используя команду LPD, может загрузить этот адрес в свой регистр-указатель.

Арифметические команды. Интерпретируют все операнды как двоичные числа без знака, имеющие длину 8, 16 или 20 разрядов. Числа со знаком могут быть представлены в дополнительном коде, однако ПВВ не фиксирует переполнения в знаковый (старший) разряд. Он выполняет арифметические операции над 20-разрядными числами следующим образом. Операнды, имеющие длину 8 и 16 разрядов, дополняются расширением знака (т. е. старшего разряда) до 20 разрядов, как было описано ранее. Затем выполняется операция, и 20-разрядный результат возвращается в операнд-приемник, при этом старшие разряды усекаются так, чтобы длина результата соответствовала числу разрядов приемника. На рис. 8.12, а показано, как арифметические команды влияют на содержимое регистров, указанных в качестве операндов-источников и операндов-приемников.

предыдущаяследующая