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

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

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 67 68 69 70 71 72 < 73 > 74 75 76 77 78 79 .. 528 >> Следующая

При этом в регистре FPSR бит С2 принимает значение 0. Число вычитаний п
определяется как частное ST(0)/ST(1), которое округляется до целого путем
отбрасывания дробной части. Знак остатка устанавливается таким же, как
знак делимого. Максимальное число выполняемых вычитаний ограничено п <-
64. Если 64 вычитаний недостаточно для получения ST(0)<ST(1), то в
регистре FPSR устанавливается значение бита С2 = 1, а в регистре ST(0)
сохраняется частичный остаток. Точный остаток получается при повторных
выполнениях команды FPREM до получения С2 = 0. После выполнения этой
команды биты СО, С1, СЗ регистра FPSR содержат три младших разряда
частного.
Команда FPREM1 также осуществляет вычисление частичного остатка. Отличие
от команды FPREM состоит в том, что число вычитаний при выполнении
команды FPREM1 определяется в соответствии со стандартом IEEE 754, как
частное ST(0)/ST(1), которое округляется до ближайшего целого. Получаемый
остаток в этом случае будет не больше половины делителя.
Таблица 2.31
Результаты арифметических операций при использовании операндов ±0 и ±L
Операция Результат Операция Результат
FADD, FADDP
(+0) + (+0) +0 (+ ОС ) + ( + OC ) + ОС
(-0) + (-0) -0 (-") + (-") - ОС
(+0) + (-0); (-0) + (+0) *0 (+ ос ) + (- ОС ) К 1Е=1
(-Х) + (+Х); (+Х) + (-Х) *0 (±Х) + (± " ) ± °с
FSUB,FSUBP,FSUBR,FSUBRP
О o' + +0 ( + ОС ) - (- ОС ) + ОС
(-0) - (+0) -0 (.")-(+") - ОС
(+0) - (+0); (-0) - (-0) *0 ( + ОС )-(+") Н, 1Е=1
(*")-(-") Н, 1Е=1
(+Х) - (+Х); (-Х) - (-Х) *0 (± ос ) - (±Х) ± ОС
(±Х) - (± ос ) ± ОС
FMULP, FMULP
(+-0) * (+-0) (HO (± ос ) * (± ос ) ( + .)ос
(+-0) * (+-Х) (HO (± ОС ) * (±Х) ( + -)ос
(+Х) * (+Y); (-Х) х (-Y) +0 при UE=1 (± ОС ) * (±0) Н, 1Е=1
(+Х) * (-Y); (-Х) x(+Y) -0 при UE=1
FDIV, FDIVP, FDIVR, FDIVRP
(+-0) 1 (+-0) H, IE=1 (± ОС ) / (± ОС ) И, 1Е=1
(+-X) / (+-0) (+-)" , ZE=1 (± ОС ) / (±Х) (+-)"
(+-0) 1 (+-X) (+-)0 (±Х) / (± ос ) (+-)0
(-X) / (-Y); (+X) 1 (+Y) +0 при UE=1 (± ОС ) / (±0) ( + )ос
(-X) / (+Y); (+X) / (-Y) -0 при UE=1
СИСТЕМА КОМАНД: ОПЕРАЦИИ НАД ЧИСЛАМИ С ПЛАВАЮЩЕЙ ТОЧКОЙ
Таблица 2.32
Результаты арифметических операций над не-числами SNAN, QNAN
Операнды Результат
SNAN и QNAN SNANи SNAN QNAN и QNAN SNAN и число QNAN и число QNAN QNAN
(SNAN с большей мантиссой) QNAN с большей мантиссой QNAN (SNAN) QNAN
Команда FSQRT вычисляет квадратный корень из содержимого ST(0) и
размещает его в этом же регистре.
Команды FABS и FCHS изменяют знак числа в регистре ST(O), чтобы получить
абсолютное значение этого числа (команда FABS) или число с
противоположным знаком (команда FCHS).
2.4.5. КОМАНДЫ СРАВНЕНИЯ
К этой группе относятся команды (табл. 2.33), выполняющие сравнение двух
операндов с плавающей точкой и установкой соответствующих битов в
регистре состояния FPSR или регистре EFIAGS, а также команды тестирования
(сравнение операнда с нулем) и анализа содержимого регистра ST(0).
Команды FCOM, FCOMP, FCOMPP производят сравнение вещественных чисел. При
выполнении команды FCOMP после сравнения производится освобождение
вершины стека - регистра ST(0), т. е. значение поля ТОР увеличивается на
единицу, а бывший регистр ST(0) становится пустым. После сравнения
содержимого двух верхних регистров стека ST(0) и ST(1) по команде FCOMPP
освобождаются оба этих регистра. Команды FICOM, FICOMP выполняют
аналогичные операции с целыми числами в формате ЦС (ml 6int) и КЦ
(m32int). По результатам сравнения устанавливаются соответствующие
значения битов СО, С1, СЗ в регистре FPSR согласно табл. 2.34. При этом
проверяются типы сравниваемых операндов. Операнды считаются не
сравнимыми, если один из них или оба являются не-числами или представлены
в неподдерживаемом (unsupported) формате. В этом случае фиксируется
ошибка FPU типа #1 (недействительная операция) и реализуется исключение
типа #MF ("Ошибка FPU"), если в регистре FPCR бит маски IM = 0.
Команды FUCOM, FUCOMP, FUCOMPP выполняют такие же операции, как FCOM,
FCOMP, FCOMPP, но не реализуют исключение при поступлении не-чисел типа
QNAN, позволяя текущей профамме обрабатывать неупорядоченные (unordered)
операнды.
Команды FCOMI, FCOMIP, FUCOMIP, FUCOMIP производят сравнение операндов,
размещенных в регистрах ST(0), ST(1). При этом результаты сравнения
представляются определенными значениями признаков ZF, PF, CF в регистре
EFLAGS в соответствии с табл. 2.35. После выполнения сравнения команды
FCOMIP, FUCOMIP освобождают регистр ST(0). Команды FCOMI, FCOMIP
реализуют исключение типа #MF при сравнении операндов, являющихся не-
числами, команды FUCOMI, FUCOMIP не вызывают исключения, позволяя
сравнивать, таким образом, неупорядоченные (unordered) операнды.
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
Таблица 2.33
Команды сравнения
Синтаксис комаццы Операция
FCOM ST(i) m(32,64) real Сравнение ST(0) cST(1) Сравнение ST(0) с
ST(i) Сравнение ST(0) с m(32,64)
FCOMP ST(i) m(32,64) real Сравнение ST(0) с ST(1), освобождение ST(0)
Предыдущая << 1 .. 67 68 69 70 71 72 < 73 > 74 75 76 77 78 79 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed