FPU Архитектура сопроцессора Команды сопроцессора Организация взаимодействия СР и FPU.

Презентация:



Advertisements
Похожие презентации
ТИПЫ СОПРОЦЕССОРОВ С адресацией операндов в памяти Стековые Регистровые Комбинированные.
Advertisements

ПРОЦЕССОР ЧИСЕЛ С ПЛАВАЮЩЕЙ ТОЧКОЙ (FPU) Архитектура Компьютеров2011.
1) Базовая арифметика FPU. Команды сравнения FPU. Трансцендентные операции FPU. Константы FPU. Команды управления FPU. 2) Программа типа СОМ 3) Программа.
Архитектура ЭВМ Практика 3. Линейные программы на языке ассемблера.
Операции и функции языка Паскаль- это конструкция языка, задающая порядок выполнения операций над элементами данных (операндами). Выражение.
Тема урока Команда присваивания. Арифметические операции и выражения. Стандартные функции.
Чтобы писать программы в среде программирования необходимо изучить его знаковую систему.
Система команд процессора. Система команд процессора включает в себя четыре основные группы команд: команды пересылки данных; арифметические команды;
ОПЕРАЦИИ И СТАНДАРТНЫЕ ФУНКЦИИ языка PASCAL. Темы: Операции Функции Приоритетность.
Программирование на языке низкого уровня Ассемблер.
Выражения и функции в Паскале
ОПЕРАЦИИ И СТАНДАРТНЫЕ ФУНКЦИИ языка PASCAL. Темы: Операции Функции Приоритетность.
Язык ASSEMBLER Команды пересылки данных Лекция доцента кафедры ИВТ ГрГУ кандидата технических наук Ливак Е.Н.
Арифметическое выражение описывает правило вычисления значения некоторой величины. Оно может содержать числа, переменные, функции. Объединенные знаками.
Учебный курс Архитектура ЭВМ и язык ассемблера Лекция 6 заместитель министра связи и массовых коммуникаций РФ, старший преподаватель Северов Дмитрий Станиславович.
Стандартные арифметические функции и выражения.. Функция Назначение abs(x) Вычисление абсолютного значения величины х. sqr(x) Возведение в квадрат значения.
Схема предсказания исключительной ситуации «потеря точности» в модуле операции «умножение с накоплением» Ивасюк Евгений Вячеславович Научно-исследовательский.
ВВОД ИНФОРМАЦИИ В ЭЛЕКТРОННУЮ ТАБЛИЦУ Тексты в ЭТ Любая последовательность символов, которая не может быть воспринята как число или формула, табличным.
Арифметические выражения. Выражение - это формальное правило для вычисления некоторого значения. В зависимости от типа значения выражения можно разделить.
Представление чисел в компьютере автор: Хайманова Т.Я. май 2008 г.
Транксрипт:

FPU Архитектура сопроцессора Команды сопроцессора Организация взаимодействия СР и FPU

Программная модель сопроцессора Регистры общего назначения (Стек) ST(0)CWR Управляющие регистры ST(1)SWR ST(2)TWR ST(3) FPU FIP ST(4) ST(5) FDP ST(6) ST(7)

Control Word Register rcpcpmumomzmdmim Status Word Register bc3topc2c1c0essfpeueoezedeie Маски исключений Флаги исключений ES – исключительная ситуация IeInvalid operation ErrorOeOverflow Error DeDenormalized operand ErrorUeUnderflow Error Zedivide by ZeroPePrecision Error Управление округлением Управление точностью Ошибка работы стека

Управление точностью (pc) Длина мантиссы: 00 – 24 бита 01 – 53 бита 11 – 64 бита Управление округлением (rc) Пусть: m – точное значение результата a и b – ближайшие представимые в регистре сопроцессора точно числа с недостатком и с избытком 00 – к ближайшему из a и b 01 – c недостатком (=а) 10 – с избытком (=b) 11 – отбрасывание дробной части (для целочисленной арифметики)

Биты кода условия с0,с1,с2,с3 c3c2c0 ST > операнд000 ST < операнд001 ST = операнд100 Не сравнимы111 bc3topc2c1c0essfpeueoezedeie sfzfafpfcf Fstsw ax Sahf J***

Tags Word Register Регистр стека: 00 – занят допустимым ненулевым значением 01 – содержит нулевое значение 10 – содержит одно из специальных числовых значений 11 – регистр пуст в него можно производить запись Data Pointer Register Instruction Pointer Register - для хранения адреса команды, вызвавшей исключительную ситуацию, и адреса её операнда.

Команды сопроцессора Передачи данныхСравнения данных АрифметическиеТрансцендентные Управления F***p – после операции производится выталкивание из стека F***r(p) – реверсивное следование операндов в операциях – и /

Передачи данных Вещественных fldfst(p) Целых fildfist(p) Десятичных fbldfbstp Обмена fxch Загрузка констант ST(0) fldz 0 fld1 1 fldpi π fldl2t log 2 10 fldl2e log 2 e fldlg2 lg 2 fldln2 ln 2 fld M32,64,80 ST(I) fildM16,32,64 fbld fbstp M80 fistM16,32 fst M32,64 ST(I) fxch ST(I)

Сравнения данных Вещественных fcomfcomp(p) fucom(p)(pp) Целых ficom(p) Анализ fxam С нулем ftst fcom(p) ST(I) M32,64 fucom ST(I) ficomM16,32 fcompp fxam ftst

FXAM c1c3c2c0Содержимое ST Знак ST000Неизвестный формат 001Не число 010Корректное вещественное число 011Бесконечность 100Нуль 101Пусто 110Денормализованное число

Арифметические Вещественные Сложение fadd(p) Вычитание fsub(r)fsub(r)p Умножение fmul(p) Деление fdiv(r)fdiv(r)p Целочисленные Сложение fiadd Вычитание fisub(r) Умножение fimul Деление fidiv(r) fadd fsub,fsubr fmul fdiv,fdivr M32,64 ST,ST(I) ST(I),ST faddp fsubp,fsubrp fmulp fdivp,fdivrp ST(I) ST(I),ST fiadd fisub,fisubr fimul fidiv,fidivr M16,32

Без параметров: КОП; КОП ST(1),ST(0) + pop С одним параметром: КОП источник; КОП ST(0),источник С двумя параметрами: КОП приемник,источник ; приемник = приемник коп источник КОПr приемник,источник ; приемник = источник коп приемник

.data add-1.5 bdd98765 cdt67890h ddw15.code movds,ax flda fld1 -1.5

.data add-1.5 bdd98765 cdt67890h ddw15.code movds,ax flda fld1 fadd

.data add-1.5 bdd98765 cdt67890h ddw15.code movds,ax flda fld1 fadd fld1 -0.5

.data add-1.5 bdd98765 cdt67890h ddw15.code movds,ax flda fld1 fadd fld1 fsubst,st(1)

.data add-1.5 bdd98765 cdt67890h ddw15.code movds,ax flda fld1 fadd fld1 fsubst,st(1) fdivrst(1),st

.data add-1.5 bdd98765 cdt67890h ddw15.code movds,ax flda fld1 fadd fld1 fsubst,st(1) fdivrst(1),st

add-1.5 bdd98765 cdt67890h ddw15.code movds,ax flda fld1 fadd fld1 fsubst,st(1) fdivrst(1),st fildb fbldc fsub

bdd98765 cdt67890h ddw15.code movds,ax flda fld1 fadd fld1 fsubst,st(1) fdivrst(1),st fildb fbldc fsub fbstpc

cdt30875h ddw15.code movds,ax flda fld1 fadd fld1 fsubst,st(1) fdivrst(1),st fildb fbldc fsub fbstpc fcompp; st-st(1)

fcompp; st-st(1) fstswax sahf; c3c2c0=000 jpm1; не сравнимы jcm2; st < st(1) jzm3; st = st(1) m4:…; st > st(1) m3:… m2:… m1:… *0***0*0 sf zf af pf cf

Вспомогательные арифметические Fsqrt Fabs Fchs Fxtract Fprem Fscale Frndint –Sqrt(st) st –Abs(st) st –+/- st st –Мантисса st, порядок st(1) –st mod st(1) st –st*2 st(1) st –[st] st

Трансцендентные функции Тригонометрические fsin fsincos fcos fptan fpatan Степенные и логарифмические f2xm1 fyl2xp1 fyl2x sin(st) st sin(st) st, cos(st) st(1) cos(st), tg(st) st, fld1 arctg(st/st(1)) st 2 st -1 st; -1

Команды управления Инициализация сопроцессора f(n)init Работы со средой f(n)save mem f(n)stenv/fldenv mem f(n)clex fldcw/f(n)stcw m16 f(n)stsw m16 frstor mem Работы со стеком ffree ST(I) Синхронизации CP и FPU wait/fwait cwr=037f swr=0000 twr=ffff cwr,swr,twr,st,…st(7),fdp,fip cwr,swr,twr,fip,fdp swr=0*** **** Без обработки исключительных ситуаций