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

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

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

VXSOFT, VXSQRT, VXCVI сохраняют установленное значение "1", пока оно не
будет изменено с помощью команд mcrfs, mtfsfi, mtfsf, mtfsbO. Таким
образом, эти признаки хранят информацию о причинах возникших
замаскированных исключений, которая в дальнейшем может быть использована
подпрограммой обслуживания.
Значения битов 15-19 в регистре FPSCR (поле FPRF или FPCC) зависят от
типа выполняемой команды. При арифметических операциях (табл. 2.73) и
операциях округления (табл. 2.74) значения битов FPRF устанавливаются
согласно табл. 2.72 в соответствии с полученным результатом. При
выполнении команд сравнения fcmpu, fcmpo биты 16-19 (поле FPCC) принимают
такие же значения (табл. 2.71), как признаки FL (меньше), FG (больше), FE
(равно), FU (не сравнимо) в поле CRi регистра условий CR, номер которого
задается операндом crfd команды (табл. 2.74).
Команды арифметических операций сложения (fadd), вычитания (fsub),
умножения (fmul), деления (fdiv), вычисления квадратного корня (fsqrt),
обратной величины (fres) и обратной величины от квадратного корня
(fsqrte) выполняются с операндами, располагаемыми в регистрах FPR, номера
которых frA, frB, frC, frD задаются в команде (табл. 2.73). Блок FPU
реализует также комбинированные операции умножение-сложение (fmadd),
умножение-вычитание (fmsub) и аналогичные операции с изменением знака
результата (fnmadd, fnmsub). Операции производятся над вещественными
числами одинарной точ-
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
Таблица 2.73
Команды арифметических операций FPU
Синтаксис Ассемблера Операция
fadd (fadd., fadds, fadds.) fsub (fsub., fsubs, fsubs.) fmul (fmul.,
fmuls, fmuls.) fdiv (fdiv., fdivs, fdivs.) fsqrf (fsqrt., fsqrts,
fsqrts.) fres (fres.) frsqrte (frsqrte.) fsel frD, frA, frB frD,
frA, frB frD, frA, frB frD, frA, frB frD, frB frD, frB frD, frB frD, frA,
frC, frB frA + frB frD frA - frB frD frA * frB frD frA / frB frD frB
frD 1 /frB -> frD frC -> frD, если (frA) = 0 frB frD, если (frA) <> 0,
NAN
fmadd (fmadd., fmadds, fmadds.) fmsub (fmsub., fmsubs, fmsubs.) fnmadd
(fnmadd., fnmadds, fnmadds.) fnmsub (fnmsub., fnmsubs, fnmsubs.) frD,
frA, frC, frB frD, frA, frC, frB frD, frA, frC, frB frD, frA, frC, frB
frA * frC + frB -> frD frA * frC - frB frD -(frA * frC + frB) frD -
(frA * frC - frB) frD
ности ОТ, если мнемокод команды имеет в конце суффикс "э", или двойной
точности ДТ, если суффикс отсутствует.
Команды fres, frsqrte выполняются только с числами двойной точности.
Команда fsel производит сравнение содержимого регистра frA с нулем: если
оно больше или равно нулю, то в регистр frD загружается содержимое frC,
если меньше нуля или не-число, то содержимое frB.
При операциях сравнения (команды fcmpu, fcmpo) производится сравнение
содержимого указанных в команде регистров frA, frB и установка
соответствующих признаков в поле CRi регистра условий CR (см. рис. 2.67,
а), номер которого i определяется операндом crfD (табл. 2.74). Два
варианта операции сравнения, выполняемые FPU, отличаются установкой
значений признаков исключений в регистре FPSCR. Команда fcmpu
устанавливает значение признака VXSNAN = 1, если какой-либо из
сравниваемых операндов является не-числом SNAN. Команда fcmpo в этом
случае тоже устанавливает значение VXSNAN = 1, а если исключения при
неправильном результате операции не разрешены (в регистре FPSCR бит VE =
0), то устанавливается также признак VXVC. Если же операндом является не-
число QNAN, то устанавливается только признак VXVC = 1.
Команда frsp преобразует число двойной точности (64 разряда) из регистра
frA в число одинарной точности (32 разряда), посылаемое в регистр frD. В
случае необходимости выполняется округление числа в соответствии со
значением поля RN в регистре FPSCR. Команды fctiw, fctiwz преобразуют
число двойной точности из регистра frA в целое 32-разрядное число со
знаком, загружаемое в регистр frD. При этом команда fctiw проводит
округление в соответствии с полем RN в регистре FPSCR, а команда fctiwz
выполняет округление к нулю.
Таблица 2.74
Команды сравнения и округления
Синтаксис Ассембпера Операция
fcmpu (fcmpo) cfrD, frA, frB frA - frB, установка FPCC
frsp (frsp.) frD, frB frB(DT) -> frD(OT), округление RN
fctiw (fctiw.) frD, frB frB -> Ю(целое), округление RN
fctiwz (fctiwz.) frD, frB frB -> frD(qenoe), округление к 0
RISC-МИКРОПРОЦЕ ССОРЫ И RISC-МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВ POWERPC И COLDFIRE
Таблица 2.75
Команды пересылки данных между регистрами FPR и изменения содержимого
регистра условий CR
Синтаксис Ассемблера Операция
fmr (fmr.) frD, frA frA -"frD
fmg (fmg.) frD, frA -frA -"frD
fabs (fabs.) frD, frA IfrA 1 -"frD
fnabs (fnabs.) frD, frB - IfrA 1 -> frD
mffs (mffs.) frD (FPSCR) -"frD
mcrfs crfD, crfS (FPSCR)i Cri
mtfsfi (mtfsfi.) crfD, Im Im (FPSCR)i
mtfsf (mtfsf.) FM, frA (frA)h л FM -> FPSCR
mtfsbO (mtfsbO.) crbD 0 bi (FPSCR)
mtfsbl (mtfsbl.) crbD 1 Ы (FPSCR)
Команды fmr, fneg, fabs, fnabs (табл. 2.75) производят пересылку
Предыдущая << 1 .. 125 126 127 128 129 130 < 131 > 132 133 134 135 136 137 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed