![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Команды управления процессором
В группе команд управления процессором различают три типа: операции с флагами, установки ЦП в особые состояния и синхронизации с сопроцессорами. Операции с флагами. Включают семь мнемокодов команд: STC (установка флага переноса CF), CMC (дополнение флага переноса CF), CLC (сброс флага переноса CF), STD (установка флага направления DF), CLD (сброс флага направления DF), STI и CLI (соответственно установка и сброс флага разрешения прерывания IF). Назначение перечисленных команд очевидно. Так, команды STC CMC и CLC позволяют задавать требуемое исходное значение флага CF при различных арифметических и логических преобразованиях данных и сдвигах. Команды STD и CLD используются при обработке строк для задания направления обработки: от первого элемента строки к последнему или наоборот. Наконец, команды STI и CLI служат для управления системой прерываний и позволяют соответственно разрешить или запретить прерывание на любом участке программы. Команды установки ЦП в особые состояния. Включают два мнемокода: HLT (останов) и WAIT (ожидание), которые переводят процессор соответственно в состояние ожидания или останова. Находясь в любом из этих состояний, процессор не выполняет никаких действий до тех пор, пока не будут поданы определенные внешние воздействия. Из состояния останова процессор может быть выведен двумя способами: путем начального сброса (сигналом по входу RESET) либо внешним прерыванием (сигнал запроса по входу INTR). При первом способе процессор перейдет к выполнению основной программы сначала, во втором - к выполнению программы обслуживания прерывания соответствующего уровня. При выполнении команды HLT содержимое указателя команд IP автоматически увеличивается на единицу, так что после выполнения программы обслуживания прерывания процессор перейдет к выполнению следующей за HLT команды. Основной способ вывода процессора из состояния ожидания состоит вподаче сигнала отрицательной полярности на вход TEST. Таким образом, время нахождения в состоянии ожидания определяется моментами подачи команды WAIT и появлением активного нуля на входе TEST. Управление ожиданием с помощью этого механизма позволяет осуществлять синхронизацию, т. е. сопряжение во времени работы процессора с различными внешними устройствами (например, с сопроцессорами либо с устройствами, обладающими меньшим быстродействием). В случае, когда сигнал на входе TEST активен в момент подачи команды WAIT, процессор будет находиться в состоянии ожидания в течение трех тактов ГТИ. Второй способ вывода процессора из состояния ожидания заключается в подаче запроса прерывания по входу INTR. Однако в этом случае процессор выходит из состояния ожидания только временно. По команде WAIT не происходит автоматического наращивания указателя команд IP, вследствие чего после выполнения соответствующей программы обслуживания прерывания процессор вновь перейдет к выполнению команды WAIT, т. е. перейдет в состояние ожидания. Важно отметить, что при возобновлении работы процессора после ожидания (по сигналу TEST = 0) внешние прерывания не будут обслуживаться до тех пор, пока не выполнится следующая за WAIT команда. Команды синхронизации с сопроцессорами. Команды служат целям проектирования многопроцессорных систем на основе ЦП. Хотя система команд ЦП достаточно развита, в ней отсутствуют некоторые команды, характерные для высокопроизводительных систем. Как обычно, недостающие команды процессора можно реализовать с помощью соответствующих подпрограмм. Однако более эффективным решением является использование сопроцессоров - специализированных процессоров, предназначенных для расширения функций основного процессора. Например, отсутствующие в системе команд операции над числами с плавающей запятой могут быть выполнены спомощью сопроцессора Intel 8087. Для организации совместной работы основного процессора системы с сопроцессорами служит команда ESC. Первый байт формата команды содержит код операции ESC, равный 11011, и трехразрядное поле х; второй байт имеет структуру постбайта, в котором поле reg обозначено как у (рис 1.9). Поле х указывает номер того сопроцессора многопроцессорной системы, который должен выполнить операцию, а поле у - номер (код) этой операции. Для организации взаимодействия основного процессора с сопроцессорами последние должны следить за появлением в потоке команд основного процессора команды ESC, которая укажет, какой сопроцессор и какую операцию должен выполнять. В общем случае поля х и у позволяют задать 64 комбинации 6-разрядных двоичных кодов, что при необходимости произвольным образом изменяет стандартное назначение полей х и у. Например, можно построить систему с одним сопроцессором, который выполняет 64 различные операции, либо с восемью сопроцессорами, каждый из которых будет выполнять до восьми операций, и т. д. Рис. 1.9. Фрагмент программы умножения чисел с плавающей запятой Поля mod и rim второго байта команды ESC используются для задания адреса операнда. По содержимому этих полей основной процессор извлекает операнд из памяти и выставляет его значение на ШД в качестве операнда для сопроцессора. Таким образом, основной процессор выдает всю необходимую информацию для работы соответствующего сопроцессора: момент включения в работу (появление кода операции ESC), номер сопроцессора (поле х), код операции (поле у) и операнд (выставлен на ШД). Контрольные вопросы
1. Каково назначение блока преобразования адресов в ЦП? 2. Дайте сравнительную характеристику способов адресации. 3. Чем определяется время формирования исполнительного адреса? 4. Каковы основные отличия работы ЦП в минимальном и максимальном режимах? 5. В чем заключается назначение системного контроллера Intel 8288? 6. 7. В чем состоит различие в использовании флагов CF и OF? 8. В чем сходство и различие выполнения команд MUL и IMUL, а также DIV и IDIV? 9. В чем состоит основное назначение команды SCAS? 10. Какие ограничения присущи командам передачи управления? 11. Перечислите все префиксы, которые можно использовать с командой MOV. 12. Объясните главное различие в состояниях останова и ожидания, в которые ЦП попадает после выполнения команды HLT и WAIT, соответственно? 13. Какие команды выполняют удвоение и деление пополам чисел со знаком? 14. Сколько восьмиразрядных РОН вы знаете? Перечислите их имена. 15. Как используется регистр ВР для доступа к содержимому стека? 16. Что принято называть программной моделью процессора? 17. Для чего служат регистры-индексы? 18. В каких операциях по умолчанию используется сегментный регистр ES? 19. Могут ли совпадать значения в регистрах DS и CS? 20. Назовите три флага управления режимом работы ЦП. 21. В какое значение установятся флаги CF и SF после вычитания из меньшего числа большего? 22. В каком из способов адресации используется больше всего составляющих при формировании эффективного адреса? 23. Сколько байтов занимает самый длинный и самый короткий формат команды? 24. Почему очередь команд состоит из 6-ти байтов? 25. В чем состоит особенность команд работы с портами ввода и вывода? 26. Какое значение примут флаги ZF, SF и CF после выполнения команды add ah, bh, если перед выполнением команды ah = bh = 128? 27. Объясните назначение флага DF на примере. Когда требуется устанавливать DF = 1? 28. Поясните принцип формирования мнемокодов команд условных переходов. 29. Как ЦП определит начальный адрес подпрограммы обслуживания прерывания 25-го уровня? 30. Какие действия может выполнять ЦП, находясь в состоянии ожидания?
|