Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Команди передач даних FPU: завантаження, збереження, збереження з вибором зі стека, обміну, завантаження сталих.
Є п’ять груп команд FPU: передачі даних, арифметичні, порівняння, трансцендентних функцій і керування. Команди передач даних здійснюють передачі даних між регістрами стека, між вершиною стека і оперативною пам’яттю. Однією командою число з оперативної пам’яті, подане в будь-якому зовнішньому форматі, перетворюється у формат розширеної точності (РТ) і завантажується в стек. Аналогічно, але в зворотному порядку, здійснюється передача числа в ОП з вилученням або ні зі стека. Команди передач даних автоматично модифікують регістр тегів FPU. Команди завантаження. Є три команди завантаження: дійсних чисел fld src, цілих двійкових чисел fild src і цілих десяткових чисел fbld src FPU виконує дві дії: – декремент вказівника стека (поля top); передає адресований операнд у нову вершину стека. Щоб не переповнити стек перед завантаженням перевіряється тег регістра st(0). Якщо регістр не відзначений як порожній, то установлюються в 1 прапорці sf та ie. Джерелом у команді fld може бути регістр стека st(i) або дійсне число в оперативній пам’яті, подане в довільному з трьох форматів. Номер регістра відповідає ситуації до декремента вказівника вершини стека. Наприклад, команда fld st(0) дублює (копіює) вершину стека. З форматів ОТ і ПТ операнд автоматично перетворюється в РТ формат. У команді fild src операнд в ОП може бути в будь-якому з цілочислових форматів – ЦС, КЦ, ПЦ. Операнд джерело завантажується без похибки заокруглення. Щоб уникнути особливого випадку “недійсна операція”, st(7) повинен бути порожнім. числом в ОП; FPU не контролює наявність у ньому заборонених тетрад від 1010b до 1111b і, якщо вони наявні в операнді, результат завантаження не визначений. Команда fbld перетворює десятковий операнд в розширений формат РТ і записує його в стекFPU. Команда точна, не має помилок заокруглення. Приклади: fld st(0); Копіює вершину стека fld qword ptr [bx]; Завантажує довге дійсне fild word ptr arr[di]; Завантажує ціле слово fbld volume; Завантажує ціле десяткове Команди збереження. Дві команди збереження fst dst і fist dst передають вміст (st(0)) в оперативну пам’ять без модифікації top і самого (st(0)). В команді fst dst приймачем може бути регістр стека st(i) або дійсна змінна в оперативній пам’яті (тільки в форматі ОТ або ПТ). Мантиса (st(0)) заокруглюється у відповідності з полем rc і довжиною мантиси приймача, а порядок коректується з урахуванням довжини і значення зміщення формату приймача. Коли (st(0)) відзначено як спеціальне значення, мантиса не заокруглюється, а урізається справа; порядок також урізається справа. Такі дії забезпечують збереження вигляду спеціального значення.
В команді fist dst приймачем є змінна в ОП, яка повинна мати формат ЦС або КЦ. Команда заокруглює (st(0)) до цілого у відповідності з полем rc і передає результат в dst. Якщо (st(0)) від’ємний нуль, то він збережеться як додатній нуль. Команда fist dst установлює прапорець ie, якщо (st(0)) виявиться “тихе не число”. Заувага: приймач у форматах ПЦ (fist) і РТ (fst) неприпустимий у зв’язку з недостатністю двійкових наборів для відповідних кодів операцій FPU. Приклади: fst st(5) fst word ptr [bx][si] fist mean Команди збереження з вилученням зі стека. Команди fstp dst і fbstp dst крім передачі (st(0)) в приймач забезпечують вилучення зі стека: регістр, який був вершиною стека позначається як порожній і інкрементується вказівник стека top. Перед збереженням перевіряється тег регістра st(0). Якщо він порожній, то встановлюються прапорці sf і ie, а також с1=0, вказуючи на антипереповнення стека (dst у команді fstp може бути st(i)). Формат приймача у команді може бути ОТ, ПТ або РТ. Команда fistp забезпечує передачу в оперативну пам’ять числа в будь-якому форматі – ЦС, КЦ або ПЦ. Заокруглення – (rc). Команда fbstp dst перетворює (st(0)) в упаковане десяткове (заокруглення – (rc)), передає його в оперативну пам’ять і забезпечує вилучення зі стека. Установлює ie=1, якщо (st(0)) – “тихе не число“. В командах збереження обох видів при перетворенні можуть виникнути декілька особливих випадків. Якщо число змінюється в процесі заокруглення, генерується особливий випадок “втрата точності”. Коли заокруглене число надто велике для формату приймача, особлива ситуація “переповнення”. При перетворенні в ОТ або ПТ може виникнути особлива ситуація “антипереповнення”, якщо заокруглене число не нуль, але менше порогу антипереповнення формату приймача. Команда обміну. Забезпечує обмін вмісту регістрів. Загальний вигляд команди
fxch // dst; dst=st(i) і тільки Якщо є приймач st(i), то обмінюються вмістом st(i) і st(0). Якщо операнд dst відсутній, тобто команда без операндів, то вмістом обмінюються st(0) і st(1) (вершина і під вершина стека). Команда fxch st(0) еквівалентна команді, яка не виконує ніяких дій (холоста команда). Команди завантаження сталих. Таких команд є сім. Вони забезпечують завантаження сталих на вершину стека з внутрішньої пам’яті FPU, де вони зберігаються з великою точністю і завантажуються швидше, ніж з оперативної пам’яті. Це наступні команди: fldz; Завантаження нуля fld1; Завантаження одиниці fldpi; Завантаження fldl2t; Завантаження fldl2e; Завантаження fldlg2; Завантаження fldln2; Завантаження Алгоритм виконання команд: а) ; б) передача в нову вершину значення сталої у форматі РТ. Стала заокруглюється у відповідності з режимом заокруглення (rc), особлива ситуація точність не формується.
|
||||||
Последнее изменение этой страницы: 2017-01-27; просмотров: 358; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.220.160.216 (0.009 с.) |