Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 23

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 17 18 19 20 21 22 < 23 > 24 25 26 27 28 29 .. 528 >> Следующая

уменьшает содержимое ЕСХ на 1 (декремент) и проверяет полученное
значение. Если содержимое ЕСХ = 0, то выполняется переход к команде,
адрес которой определяется с помощью относительной адресации (смещение
задано в команде LOOP). Если ЕСХ = 0, то выполняется следующая команда
программы. Команда LOOP обычно ставится в конце цикла, обеспечивая его
выполнение п раз, где п задается начальным значением ЕСХ. Команды LOOPZ,
LOOPNZ аналогичны команде LOOP, но используют дополнительные условия для
выхода из цикла. Команда LOOPZ обеспечивает выход из цикла до выполнения
заданного числа циклов п при получении ненулевого результата, т. е. при
установке признака Z = 0. Если в каждом цикле реализуется нулевой
результат, то выполняется п циклов, как в команде LOOP. Команда LOOPNZ
прекращает выполнение циклов при получении нулевого результата, т. е. при
установке ZF = 1.
Команды прерываний INT обеспечивают переход к одной из программ
обслуживания исключений и прерываний (обработчику прерываний 0). При этом
текущее содержимое PC и регистра состояния заносится в стек. Каждая из
программ обработки соответствует определенному типу исключения или
прерывания. Например, в процессорах Pentium выбор программы обработки
определяется 8-разрядным операндом, задаваемым во втором байте команды
INT. Вызов соответствующей программы обслуживания производится с помощью
таблицы, в которой содержатся векторы исключений (прерываний) - адреса
первых команд программ обслуживания. Каждый вектор задает необходимое
содержимое PC, загрузка которого обеспечивает переход к выполнению первой
команды программы обслуживания. Команда IRET обеспечивает возврат из
подпрограммы обслуживания прерывания путем извлечения из стека и
восстановления содержимого программного счетчика и регистра состояния,
соответствующих прерванной процедуре.
Команды управления признаками обеспечивают запись-чтение содержимого
регистра состояния, в котором хранятся признаки, а также изменение
значений отдельных признаков. Например, в процессорах Pentium реализуются
команды LAHF и SAHF, которые выполняют загрузку младшего байта, где
содержатся признаки, из регистра состояния EFLAG в младший байт регистра
ЕАХ и заполнение младшего байта EFLAGS из регистра ЕАХ. Команды CLC, STC
осуществляют установку значений признака переноса CF = 0, CF = 1, а
команда
СИСТЕМА КОМАНД И СПОСОБЫ АДРЕСАЦИИ ОПЕРАНДОВ
СМС вызывает инвертирование значения этого признака. Так как признаки
определяют ход выполнения программы при условных переходах, то команды
изменения признаков обычно используются для управления программой.
В данном разделе описывается управление программой с помощью изменения
содержимого программного счетчика PC. В процессорах Pentium и ряде других
моделей компании "Intel" (8086, 80186, 80286, 386,486 и других),
реализуется сегментная организация памяти, при которой адрес выбираемой
команды определяется содержимым двух регистров - указателя команды EIP и
сегментного регистра CS. При этом различные виды передачи управления в
программе реализуются путем изменения содержимого регистров EIP и CS.
Команды управления процессором. К этой группе относятся команды останова,
отсутствия операции и ряд команд, определяющих режим работы процессора
или его отдельных блоков. Команда HLT прекращает выполнение программы и
переводит процессор в состояние останова, выход из которого происходит
при поступлении сигналов прерывания или перезапуска (Reset). Команда NOP
("пустая" команда), которая не вызывает выполнения каких-либо операций,
служит для реализации программных задержек или заполнения пропусков,
образовавшихся в программе.
Специальные команды CLI, STI запрещают и разрешают обслуживание запросов
прерывания, устанавливая соответствующее значение бита управления I в
регистре состояния процессора. В процессорах Pentium для этого
используется бит управления (флаг) IF в регистре EFLAGS.
Многие современные микропроцессоры выполняют команду идентификации,
которая позволяет пользователю или другим устройствам получить информацию
о типе процессора, используемого в данной системе. В процессорах Pentuim
для этого служит команда CPUID, при выполнении которой необходимые данные
о процессоре поступают в регистры ЕАХ, ЕВХ, ЕСХ, EDX и могут затем
считываться пользователем или операционной системой.
В процессорах, которые имеют внутреннюю кэш-память, реализуются
специальные команды, управляющие ее работой. При поступлении этих команд
производится очистка (аннулирование содержимого) кэш-памяти,
обеспечивается запись в ОЗУ определенных строк кэш-памяти и некоторые
другие операции.
В данном разделе описаны только основные группы команд и приведены
некоторые примеры типовых команд, выполняемых в наиболее распространенных
моделях процессоров. В зависимости от реализуемых процессором режимов
работы и заданных типов, обрабатываемых данных набор выполняемых команд
может существенно расширяться.
Предыдущая << 1 .. 17 18 19 20 21 22 < 23 > 24 25 26 27 28 29 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed