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

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

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 120 121 122 123 124 125 < 126 > 127 128 129 130 131 132 .. 528 >> Следующая

xor (xor.) rA, rS, rB rS (c) rB -> rA
and (nand.) rA, rS, rB rS л rB -> rA
nor (nor.) rA, rS, rB rS v rB -"rA
andc (andc.) rA, rS, rB rS л rB -> rA
ore (ore.) rA, rS, rB rS v rB -> rA
egv (egv.) rA. rS, rB rS (c) rB -> rA
cntizw (cnitzw.) rA, rS Число старших 0 в rS -"rA
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
Команды умножения и деления могут оперировать с операндами без знака и со
знаком. При знаковом умножении 16-разрядных операндов (команды mulli,
mullw) в регистре rD размещается 32-разрядный результат. При умножении
32-разрядных чисел со знаком (команда mulhw) или без знака (команда
mulhwu) в регистр rD поступают старшие 32 разряда результата, а в
следующий регистр с номером (гВ + 1) - младшие 32 разряда. При делении
32-разрядных чисел со знаком (команда divw) или без знака (команда divwu)
в регистр rD заносится 32-разрядное частное.
Команда лед меняет знак операнда. Команда extsb преобразует младший байт
содержимого регистра rS путем расширения знака в 32-разрядное слово,
размещаемое в rD. Команда extsh выполняет аналогичное расширение для 16
младших разрядов (младшее полуслово) содержимого регистра rS.
Команды логических операций (табл. 2.66) производятся над операндами без
знака, содержащимися в регистрах (rS, гВ) или заданными непосредственно в
команде (Ulm). Микропроцессор реализует восемь логических операций - И,
ИЛИ, Исключающее ИЛИ, НЕ - И, НЕ - ИЛИ, Запрет, Импликация,
Эквивалентность. При выполнении команд, имеющих после мнемокода символ
".", производится установка соответствующих признаков в поле CR0 регистра
условий CR. Команды логических операций со сдвигом andis., oris., xoris.
перед выполнением операций И, ИЛИ, Исключающее ИЛИ производят сдвиг
непосредственного операнда влево на 16 разрядов. В данную группу входит
также команда cntizw, определяющая число последовательно расположенных
нулей в регистре rS, начиная со старшего разряда. Это число заносится в
регистр гА.
Команды сравнения (табл. 2.67) осуществляют вычитание двух операндов,
содержащихся в регистрах (гА, гВ) или заданных непосредственно (Sim,
Ulm), которые могут быть числами со знаком (знаковое сравнение) или без
знака (беззнаковое сравнение). По результатам вычитания осуществляется
установка признаков в поле CRi регистра условий CR. Номер поля i = 7...2
задается операндом crfD в команде Ассемблера. Если этот операнд не задан
или равен 0, то признаки устанавливаются в поле CR0. Операнд L в этих
командах для микропроцессора МРС604 задается равным 0.
Команды сдвигов (табл. 2.67) реализуют многоразрядные логические (slw,
srw), арифметические (sraw, srawi) и циклические (rlwinm, rlwnm, rlwimi)
сдвиги содержимого регистра rS с размещением результата в гА. Число
разрядов сдвига задается непосредственно операндом Ns или содержимым
шести младших разрядов регистра гВ. При логических сдвигах влево (команда
slw) или вправо (команда srw) освободившиеся разряды заполняются нулями.
При арифметическом сдвиге вправо (команды sraw, srawi) в освободившихся
слева разрядах дублируется знак исходного операнда.
Таблица 2.67
Команды операций сравнения и сдвигов
Синтаксис Ассемблера Операция
cmpi CrfD, L, rA, Sim -rA + Sim (знаковое)
cmp CrfD, L, rA, rB -rA + rB (знаковое)
cmpli CrfD, L, rA, Uim -rA + Sim (беззнаковое)
cmpi CrfD, L, rA, rB -rA + rB (беззнаковое)
swl (swl.) rA, rS, rB [rS "- s(rB)] -> rS, заполнение нулями
srw (srw.) rA, rS, rB [rS -> s(rB)] -> rA, заполнение нулями
srawi (srwi.) rA, rS, Ns [rS -> s(Ns)] -> rA, заполнение знаком
sraw (sraw.) rA, rS, rB [rS -> s(rB)] -> rA, заполнение знаком
rlwinm (rlwinm.) rA, rS, Ns, Mb, Me [rS "- r(Ns)] л M -> rA
rlwnm (rlwnm.) rA, rS, Ns, Mb, Me [rS "- r(rB)] л M -> rA
rlwimi (rlwimi.) rA, rS, Ns, Mb, Me ([rS<- r(Ns)] л M ) v (rA a M) -
"rA
RISC-МИКРОПРОЦЕССОРЫ И RISC-МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВ POWERPC И COLDFIRE
Циклические сдвиги производятся только влево, причем результат сдвига
логически умножается на маску М. Маска формируется в соответствии с
задаваемыми в команде номерами начального Mb и конечного Me битов. Биты
маски с номерами от Me до Mb имеют значение "1", поэтому соответствующие
биты результата сохраняются. Остальные биты маски имеют значение "О", и
соответствующие биты результата принимают такое же значение. Полученный
после маскирования результат размещается в регистре гА. При выполнении
команд rlwinm, rlwnm предыдущее содержимое гА не сохраняется. Команда
rlwimi сохраняет в регистре гА значения битов, соответствующих
замаскированным битам результата (для которых биты маски равны нулю).
Команды сдвигов могут вызывать установку признаков в поле CR0 регистра CR
в соответствии с результатом операции. Для этого после мнемокода команды
следует поставить символ ".".
Команды загрузки и сохранения (табл. 2.68) производят загрузку в регистр
GPR с номером rD байта, слова или полуслова (16-разрядное слово) из
памяти (команды, начинающиеся с буквы "I" - load), либо записывают в
Предыдущая << 1 .. 120 121 122 123 124 125 < 126 > 127 128 129 130 131 132 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed