Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемДемид Тарабукин
1 FPU Архитектура сопроцессора Команды сопроцессора Организация взаимодействия СР и FPU
2 Программная модель сопроцессора Регистры общего назначения (Стек) ST(0)CWR Управляющие регистры ST(1)SWR ST(2)TWR ST(3) FPU FIP ST(4) ST(5) FDP ST(6) ST(7)
3 Control Word Register rcpcpmumomzmdmim Status Word Register bc3topc2c1c0essfpeueoezedeie Маски исключений Флаги исключений ES – исключительная ситуация IeInvalid operation ErrorOeOverflow Error DeDenormalized operand ErrorUeUnderflow Error Zedivide by ZeroPePrecision Error Управление округлением Управление точностью Ошибка работы стека
4 Управление точностью (pc) Длина мантиссы: 00 – 24 бита 01 – 53 бита 11 – 64 бита Управление округлением (rc) Пусть: m – точное значение результата a и b – ближайшие представимые в регистре сопроцессора точно числа с недостатком и с избытком 00 – к ближайшему из a и b 01 – c недостатком (=а) 10 – с избытком (=b) 11 – отбрасывание дробной части (для целочисленной арифметики)
5 Биты кода условия с0,с1,с2,с3 c3c2c0 ST > операнд000 ST < операнд001 ST = операнд100 Не сравнимы111 bc3topc2c1c0essfpeueoezedeie sfzfafpfcf Fstsw ax Sahf J***
6 Tags Word Register Регистр стека: 00 – занят допустимым ненулевым значением 01 – содержит нулевое значение 10 – содержит одно из специальных числовых значений 11 – регистр пуст в него можно производить запись Data Pointer Register Instruction Pointer Register - для хранения адреса команды, вызвавшей исключительную ситуацию, и адреса её операнда.
7 Команды сопроцессора Передачи данныхСравнения данных АрифметическиеТрансцендентные Управления F***p – после операции производится выталкивание из стека F***r(p) – реверсивное следование операндов в операциях – и /
8 Передачи данных Вещественных 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)
9 Сравнения данных Вещественных fcomfcomp(p) fucom(p)(pp) Целых ficom(p) Анализ fxam С нулем ftst fcom(p) ST(I) M32,64 fucom ST(I) ficomM16,32 fcompp fxam ftst
10 FXAM c1c3c2c0Содержимое ST Знак ST000Неизвестный формат 001Не число 010Корректное вещественное число 011Бесконечность 100Нуль 101Пусто 110Денормализованное число
11 Арифметические Вещественные Сложение 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
12 Без параметров: КОП; КОП ST(1),ST(0) + pop С одним параметром: КОП источник; КОП ST(0),источник С двумя параметрами: КОП приемник,источник ; приемник = приемник коп источник КОПr приемник,источник ; приемник = источник коп приемник
13 .data add-1.5 bdd98765 cdt67890h ddw15.code movds,ax flda fld1 -1.5
14 .data add-1.5 bdd98765 cdt67890h ddw15.code movds,ax flda fld1 fadd
15 .data add-1.5 bdd98765 cdt67890h ddw15.code movds,ax flda fld1 fadd fld1 -0.5
16 .data add-1.5 bdd98765 cdt67890h ddw15.code movds,ax flda fld1 fadd fld1 fsubst,st(1)
17 .data add-1.5 bdd98765 cdt67890h ddw15.code movds,ax flda fld1 fadd fld1 fsubst,st(1) fdivrst(1),st
18 .data add-1.5 bdd98765 cdt67890h ddw15.code movds,ax flda fld1 fadd fld1 fsubst,st(1) fdivrst(1),st
19 add-1.5 bdd98765 cdt67890h ddw15.code movds,ax flda fld1 fadd fld1 fsubst,st(1) fdivrst(1),st fildb fbldc fsub
20 bdd98765 cdt67890h ddw15.code movds,ax flda fld1 fadd fld1 fsubst,st(1) fdivrst(1),st fildb fbldc fsub fbstpc
21 cdt30875h ddw15.code movds,ax flda fld1 fadd fld1 fsubst,st(1) fdivrst(1),st fildb fbldc fsub fbstpc fcompp; st-st(1)
22 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
23 Вспомогательные арифметические 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
24 Трансцендентные функции Тригонометрические 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
25 Команды управления Инициализация сопроцессора 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*** **** Без обработки исключительных ситуаций
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.