Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 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; просмотров: 442; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.11 (0.009 с.) |