Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпора Неретина.docx
Скачиваний:
182
Добавлен:
18.03.2015
Размер:
5.13 Mб
Скачать

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

Команды сдвига. Микропроцессоры осуществляют арифметические, логические и циклические сдвиги адресуемых операндов на один или несколько разрядов. Сдвигаемый операнд может находиться в регистре или ячейке памяти, а число разрядов сдвига задается с помощью непосредственного операнда, содержащегося в команде, или определяется содержимым заданного регистра. В реализации сдвига обычно участвует признак переноса С в регистре состояний (SR или EFLAGS), в котором располагается последний разряд операнда, выдвигаемый из регистра или ячейки памяти.

Выполнение основных команд сдвига показано на рис. 8.8. При логических сдвигах влево (SHL) и вправо (SHR) производится заполнение освободившихся разрядов операнда нулями. Команда арифметического сдвига влево SAL реализуется аналогично команде логического сдвига SHL. При арифметическом сдвиге влево производится заполнение освободившихся разрядов значением старшего (знакового) разряда. Поэтому при таком сдвиге сохраняется знак операнда. Два варианта циклических сдвигов выполняются с включением признака С в цепь переноса (команды RCL, RCR) или с использованием признака С для хранения последнего выдвигаемого разряда операнда (команды ROL, ROR).

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

Команды сравнения и тестирования. Сравнение операндов обычно осуществляется с помощью команды CMP, которая производит вычитание операндов с установкой значений признаков N, Z, V, C в регистре состояний в соответствии с полученным результатом. При этом результат вычитания не сохраняется, и значения операндов не изменяются. Последующий анализ полученных значений признаков позволяет определить относительное значение (<, >, =) операндов со знаком или без знака. Использование различных способов адресации позволяет производить сравнение содержимого двух регистров, регистра и ячейки памяти, непосредственно заданного операнда с содержимым регистра или ячейки памяти.

Некоторые микропроцессоры выполняют команду тестирования TST, которая является однооперандным вариантом команды сравнения. При выполнении этой команды устанавливаются признаки N, Z в соответствии со знаком и значением (равно или не равно нулю) адресуемого операнда.

Рис. 8.8. Реализация команд сдвига

Команды управления процессором. К этой группе относятся команды останова, отсутствия операции и ряд команд, определяющих режим работы процессора или его отдельных блоков. Команда HLT прекращает выполнение программы и переводит процессор в состояние останова, выход из которого происходит при поступлении сигналов прерывания или перезапуска (RESET). Команда NOP («пустая» команда), которая не вызывает выполнения каких-либо операций, служит для реализации программных задержек или заполнения пропусков, образовавших в программе.

Специальные команды CLI, STI запрещают и разрешают обслуживание запросов прерывания, устанавливая соответствующее значение бита управления I в регистре состояния процессора. В процессорах Pentium для этого используется бит управления (флаг) IF в регистре EFLAGS.

Многие современные микропроцессоры выполняют команду идентификации, которая позволяет пользователю или другим устройствам получить информацию о типе процессора, используемого в данной системе. В процессорах Pentium для этого служит команда CPUID, при выполнении которой необходимые данные о процессоре поступают в регистры EAX, EBX, ECX, EDX и могут затем считываться пользователем или операционной системой.

В процессорах, которые имеют внутреннюю кэш-память, реализуются специальные команды, управляющие ее работой. При поступлении этих команд производится очистка (аннулирование содержимого) кэш-памяти, обеспечивается запись в ОЗУ определенных строк кэш-памяти и некоторые другие операции.

В данном разделе описаны только основные группы команд и приведены некоторые примеры типовых команд, выполняемых в наиболее распространенных моделях процессоров. В зависимости от реализуемых процессором режимов работы и заданных типов обрабатываемых данных, набор выполняемых команд может существенно расширяться.

Некоторые процессоры производят арифметические операции с двоично-десятичными числами или выполняют специальные команды коррекции результата при обработке таких чисел. В состав многих высокопроизводительных процессоров входит FPU – блок обработки чисел с «плавающей точкой». Соответственно такие процессоры выполняют большую группу команд, реализующих операции с этими числами и управляющих работой блока FPU.

В ряде современных процессоров реализована групповая обработка нескольких целых чисел или чисел с «плавающей» точкой с помощью одной команды по принципу SIMD («Single Instruction-Multiple Data») – «Одна команда – Множество данных». Одновременное выполнение операций над несколькими операндами существенно повышает производительность процессора при работе с видео- и аудиоданными. Такие операции широко используются для обработки изображений, звуковых сигналов и в других приложениях. Для выполнения этих операций в состав процессоров введены специальные блоки, реализующие соответствующие наборы команд, которые в различных типах процессоров (Pentium, Athlon) получили название MMX («Multi-Media Extension») – Мультимедийное расширение, SSE («Streaming SIMD Extension») – Потоковое SIMD-расширение, «3D-Extension» – Трехмерное расширение.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]