Cтраница 3
Команды группы ИЛИ в противоположность командам И используются для установки заданных битов исходного поля в единичное состояние. Тем битам исходного поля, которые должны остаться в прежнем состоянии, соответствуют нулевые биты маски. [31]
Состояние сброса возникает при появлении сигнала активного уровня на контакте RESET. В этом состоянии: происходит сброс внутренних периферийных устройств; регистры модификации устанавливаются в FFFF; регистр уровней приоритета прерываний очищается; регистр BCR устанавливается в FFFF, что добавляет 15 состояний ожидания ко всем обращениям к внешней памяти; указатель стека очищается; биты режима масштабирования, режима трассировки, флаг цикла и биты условий в SR сбрасываются, биты маски прерываний в SR устанавливаются в 1; бит разрешения ПЗУ данных, бит задержки и бит стробирования памяти сбрасываются. DSP не выходит из состояния сброса, пока на контакте RESET сохраняется сигнал активного уровня. После выхода из состояния сброса биты операционного режима в OMR загружаются извне по линиям MODA, MODB и выполнение программы начинается с адреса Е000 в памяти программ в нормальном расширенном режиме или с адреса 0000 в остальных операционных режимах. [32]
В качестве маски используется содержимое поля М3, занимающего биты 12 - 15 команды. Четыре бита маски слева направо соответствуют 4 байтам также слева направо, находящимся в общем регистре, заданном полем Ri. Байты, соответствующие единичным битам маски, рассматриваются как непрерывное поле, которое сравнивается со вторым операндом. Второй операнд является непрерывным полем в памяти, длина которого в байтах равна числу единичных битов маски. [33]
В качестве маски используется содержимое поля М3, занимающее биты 12 - 15 данной команды. Четыре бита маски соответствуют слева направо четырем байтам общего регистра, определенного полем Ri. Байты, соответствующие единичным битам маски, помещаются в том же порядке в последовательные смежные ячейки памяти, начиная с ячейки, определенной адресом второго операнда. Число записываемых в память байтов равно числу единичных битов маски. Содержимое общего регистра остается без изменения. [34]
Выполнение логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ над содержимым аккумулятора и содержимым регистра В.| Применение операции ИСКЛЮЧАЮЩЕЕ ИЛИ для очистки аккумулятора. [35] |
Как можно видеть из рис. 9.5, команда ИЛИ также может быть использована для поразрядного маскирования. Если бит маски равен 0, то соответствующий бит содержимого аккумулятора остается без изменений. В тех случаях, когда биты маски равны 1, значения соответствующих битов исходного содержимого аккумулятора блокируются, т.е. эти биты принимают единичные значения. В зависимости от цели, которую мы стремимся достичь, следует пользоваться либо маскированием по ИЛИ, либо маскированием по И. [36]
Бит 6 определяет доступность процессора для прерываний ввода-вывода. Если этот бит равен 0, прерывание ввода-вывода не может произойти. Если бит равен I, возможность прерываний ввода-вывода определяется битами масок каналов в управляющем регистре 2: когда бит маски канала равен 0, канал не может вызвать прерывание; когда же этот бит равен 1, запрос от соответствующего канала может послужить причиной прерывания. [37]
Бит 7 определяет доступность процессора для прерываний, вызываемых условиями, которые отнесены к классу внешних. Когда этот бит равен О, внешнее прерывание не может произойти. Когда бит равен 1, возможность внешних прерываний определяется битами масок соответствующих подклассов внешних прерываний в управляющем регистре 0: когда бит маски подкласса равен 0, условия, относящиеся к этому подклассу, не могут вызвать прерывание; если бит маски подкласса равен 1, прерывание данного подкласса может произойти. [38]
Отменить все предыдущие указания относительно передачи управления по прерыванию можно с помощью макрокоманды SPIE без операндов. Действие ее продолжается до. Если в этой макрокоманде указаны коды прерывания 8, 10, 13 или 14, то биты маски программы в PSW изменяются таким образом, чтобы соответствующие прерывания были разрешены. [39]
В одних случаях PSW записывается в память или загружается целиком, в других - только частично. При прерываниях запоминается полное содержимое PSW и происходит выборка нового PSW в качестве текущего. Команда ЗАГРУЗКА PSW задает целиком новое PSW; команда УСТАНОВИТЬ МАСКУ ПРОГРАММЫ устанавливает в PSW новый признак результата и 4 бита новой маски программы; команды УСТАНОВИТЬ МАСКУ СИСТЕМЫ, ЗАПИСЬ В ПАМЯТЬ И МОДИФИКАЦИЯ МАСКИ СИСТЕМЫ ЛОГИЧЕСКИМ УМНОЖЕНИЕМ и ЗАПИСЬ В ПАМЯТЬ И МОДИФИКАЦИЯ МАСКИ СИСТЕМЫ ЛОГИЧЕСКИМ СЛОЖЕНИЕМ устанавливают новую информацию в крайний левый байт PSW; команда УСТАНОВИТЬ КЛЮЧ PSW вводит новый ключ защиты в PSW; при последовательном выполнении команд адрес команды в PSW получает приращения, а при переходах замещается новым значением. Команда ПРОЧИТАТЬ КЛЮЧ PSW используется для записи в память ключа защиты из PSW; команды ЗАПИСЬ В ПАМЯТЬ И МОДИФИКАЦИЯ МАСКИ СИСТЕМЫ ЛОГИЧЕСКИМ УМНОЖЕНИЕМ и ЗАПИСЬ В ПАМЯТЬ И МОДИФИКАЦИЯ МАСКИ СИСТЕМЫ ЛОГИЧЕСКИМ СЛОЖЕНИЕМ осуществляют запись в память крайнего левого байта PSW; по команде ПЕРЕХОД С ВОЗВРАТОМ запоминается код длины команды, признак результата, маска программы и адрес команды. [40]
Примеры использования модификаторов адреса. [41] |
Используется структура гибкого приоритета прерываний. Уровень 0 - дамый низкий, а уровни 1 и 2 маскируются. Уровень 3 является высшим и не маскируется. Биты маски прерываний в регистре статуса ( SR) показывают текущий уровень приоритета прерываний в процессоре. Прерывания, имеющие уровень приоритета меньше текущего, не учитываются при арбитраже. Уровень приоритета 3 всегда вызывает прерывание процессора. [42]
Если единичному биту маски соответствует единица в поле битового переключателя, то фиксируется единичный промежуточный результат; если единичному биту маски соответствует нуль в поле битового переключателя, то фиксируется промежуточный нулевой результат. После того как проверены все битовые переключатели, которым соответствуют единичные биты маски, устанавливается признак результата, отражающий наличие одного из трех возможных условий. [43]
Отражают текущий уровень приоритета прерываний ( IPL) ядра. Прервать процесс работы ядра могут только немаскируемые прерывания или прерывания с IPL больше чем текущее значение маски прерывания. Текущий IPL ядра может меняться программно. В начале процедуры обслуживания прерывания ( ISR), SR ( включая биты маски прерываний) заносится в программный стек, биты маски прерываний меняются на IPL обслуживаемого прерывания. Биты сбрасываются во время сброса. [44]
Отражают текущий уровень приоритета прерываний ( IPL) ядра. Прервать процесс работы ядра могут только немаскируемые прерывания или прерывания с IPL больше чем текущее значение маски прерывания. Текущий IPL ядра может меняться программно. В начале процедуры обслуживания прерывания ( ISR), SR ( включая биты маски прерываний) заносится в программный стек, биты маски прерываний меняются на IPL обслуживаемого прерывания. Биты сбрасываются во время сброса. [45]