Команды управления процессором

В группе команд управления процессором различают три типа: операции с флагами, установки ЦП в особые состояния и синхронизации с сопроцессорами.

Операции с флагами.Включают семь мнемокодов команд: 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. Какие действия может выполнять ЦП, находясь в состоянии ожидания?

 

 



Раздел 2. Арифметический процессор








Дата добавления: 2015-12-22; просмотров: 963;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.015 сек.