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

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

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

заданного набора регистров (до 16 регистров). Команда XCHG производит
взаимный обмен содержимым двух регистров процессора или регистра и ячейки
памяти.
Команды ввода IN и вывода OUT реализуют пересылку данных из регистра
процессора во внешнее устройство или прием данных из внешнего устройства
в регистр. В этих командах задается номер интерфейсного устройства (порта
ввода-вывода), через которое производится передача данных. Отметим, что
многие микропроцессоры не имеют специальных команд для обращения к
внешним устройствам. В этом случае ввод и вывод данных в системе
выполняется с помощью команды MOV, в которой задается адрес требуемого
интерфейсного устройства. Таким образом, внешнее устройство адресуется
как ячейка памяти, а в адресном пространстве выделяется определенный
раздел, в котором располагаются адреса подключенных к системе
интерфейсных устройств (портов).
Команды арифметических операций. Основными в этой группе являются команды
сложения, вычитания, умножения и деления, которые имеют ряд вариантов.
Команды сложения ADD и вычитания SUB выполняют соответствующие операции с
содержимым двух регистров, регистра и ячейки памяти или с использованием
непосредственного операнда. Команды ADC, SBB производят сложение и
вычитание с учетом значения признака С, устанавливаемого при формировании
переноса или заема в процессе выполнения предыдущей операции. С помощью
этих команд реализуется последовательное сложение операндов, число
разрядов которых превышает разрядность процессора. Команда NEG изменяет
знак операнда, переводя его в дополнительный код.
Операции умножения и деления могут выполняться над числами со знаком
(команды IMUL, IDIV) или без знака (команды MUL, DIV). Один из операндов
всегда размещается в регистре, второй может находиться в регистре, ячейке
памяти или быть непосредственным операндом. Результат операции
располагается в регистре. При умножении (команды MUL, IMUL) получается
результат удвоенной разрядности, для размещения которого используется два
регистра. При делении (команды DIV, IDIV) в качестве делимого
используется операнд удвоенной разрядности, размещаемый в двух регистрах,
а в качестве результата в два регистра записывается частное и остаток.
Команды логических операций . Практически все микропроцессоры производят
логические операции И, ИЛИ, Исключающее ИЛИ, которые выполняются над
одноименными разрядами операндов с помощью команд AND, OR, XOR. Операции
выполняются над содержимым двух регистров, регистра и ячейки памяти или с
использованием непосредственного операнда. Команда NOT инвертирует
значение каждого разряда операнда.
Команды сдвига. Микропроцессоры осуществляют арифметические, логические и
циклические сдвиги адресуемых операндов на один или несколько разрядов.
Сдвигаемый операнд может находиться в регистре или ячейке памяти, а число
разрядов сдвига задается с помощью непосредственного операнда,
содержащегося в команде, или определяется содержимым заданного регистра.
В реализации сдвига обычно участвует признак переноса С в регистре
состояний (SR или EFLAGS), в котором располагается последний разряд
операнда, выдвигаемый из регистра или ячейки памяти.
Выполнение основных команд сдвига показано на рис. 1.10. При логических
сдвигах влево (SHL) и вправо (SHR) производится заполнение освободившихся
разрядов операнда нулями. Команда арифметического сдвига влево SAL
реализуется аналогично команде логического сдвига SHL. При арифметическом
сдвиге влево производится заполнение освободившихся разрядов значением
старшего (знакового) разряда. Поэтому при таком сдвиге сохраняется знак
операнда. Два варианта циклических сдвигов выполняются с включением
признака С в цепь переноса (команды RCL, RCR) или с использованием
признака С для хранения последнего выдвигаемого разряда операнда (команды
ROL, ROR).
31
ОСНОВЫ МИКРОПРОЦЕССОРНОЙ ТЕХНИКИ
Рис. 1.10. Реализация команд сдвига
При выполнении арифметических, логических операций и сдвигов обычно
производится установка признаков в регистре состояний в соответствии с
полученным результатом.
Команды сравнения и тестирования. Сравнение операндов обычно
осуществляется с помощью команды СМР, которая производит вычитание
операндов с установкой значений признаков N, Z, V, С в регистре состояния
в соответствии с полученным результатом. При этом результат вычитания не
сохраняется и значения операндов не изменяются. Последующий анализ
полученных значений признаков позволяет определить относительное значение
(>,<, = ) операндов со знаком или без знака. Использование различных
способов адресации позволяет производить сравнение содержимого двух
регистров, регистра и ячейки памяти, непосредственно заданного операнда с
содержимым регистра или ячейки памяти.
Некоторые микропроцессоры выполняют команду тестирования TST, которая
является однооперандным вариантом команды сравнения. При выполнении этой
команды устанавливаются признаки N, Z в соответствии со знаком и
Предыдущая << 1 .. 15 16 17 18 19 20 < 21 > 22 23 24 25 26 27 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed