ВІКІСТОРІНКА
Навигация:
Інформатика
Історія
Автоматизація
Адміністрування
Антропологія
Архітектура
Біологія
Будівництво
Бухгалтерія
Військова наука
Виробництво
Географія
Геологія
Господарство
Демографія
Екологія
Економіка
Електроніка
Енергетика
Журналістика
Кінематографія
Комп'ютеризація
Креслення
Кулінарія
Культура
Культура
Лінгвістика
Література
Лексикологія
Логіка
Маркетинг
Математика
Медицина
Менеджмент
Металургія
Метрологія
Мистецтво
Музика
Наукознавство
Освіта
Охорона Праці
Підприємництво
Педагогіка
Поліграфія
Право
Приладобудування
Програмування
Психологія
Радіозв'язок
Релігія
Риторика
Соціологія
Спорт
Стандартизація
Статистика
Технології
Торгівля
Транспорт
Фізіологія
Фізика
Філософія
Фінанси
Фармакологія


Формати даних співпроцесора 8087

 

Математичний співпроцесор Х87 підтримує 7 форматів:

- 3 формати цілих чисел;

- 3 формати дійсних чисел з плаваючою комою;

- 1 формат цілих двійково-десяткових чисел.

 

Формати цілих чисел

 

На рис. 12 наведені формати цілих чисел математичного співпроцесора Х87.

 

Ціле слово (ЦС):        
S Двійковий код - 16 розрядів
Коротке ціле (КЦ):        
S Двійковий код - 32 розряди
Довге ціле (ДЦ):        
S Двійковий код - 64 розряди
                 

 

Рисунок 12 – Формати цілих чисел.

 

У всіх цих форматах від’ємні числа записуються у доповняльному коді (якщо s=0, число додатне, якщо s=1, - число від’ємне).

 

Формати дійсних чисел

 

Дійсні числа можуть бути представлені в одному з трьох форматів (рис.13).

Мантиса числа завжди записується в нормалізованому вигляді:

1, m1m2m3

Порядок дійсного числа завжди записується в зміщеному вигляді, тому реальний порядок дорівнює числу в полі порядку мінус значення зміщення. Це дозволяє спростити порівняння чисел.

 

Коротке дійсне (КД): 22 0        
S Порядок Мантиса - 32 розряди
Довге дійсне (ДД):      
S Порядок Мантиса - 64 розряди
Тимчасове дійсне (ТД):      
S Порядок Мантиса - 80 розрядів
                       

 

Рисунок 13 – Формати дійсних чисел

Для обчислення реальних значень коротких дійсних чисел викорис­товують таку формулу:

(-1)S · (1, m1m2…m23) · 2E-127 .

Наприклад, нехай задано:

S E m1m2m3m4m5…m23

-----------------------------------------------

1 01111101 1 0 1 1 0 … 0

Обчислюємо реальне значення числа:

(-1)1 · (1,1011)2 · 2125-127 = - (1,6775)10 · 2-2 = - 0,419375.

Число +1.0 представляється у вигляді:

S E m1m2m3m4m5…m23

-----------------------------------------------

0 01111111 0 0 0 0 0 … 0

У форматах короткого та довгого дійсних чисел такі величини, як +∞, -∞ та NAN (Not a Number, тобто не числа) представляються таким чином (рис. 14).

 

Знак S Порядок Мантиса Значення  
11 ... 11 00 ... 00 +∞  
11 ... 11 00 ... 00 -∞  
11 ... 11 11 ... 11 NAN тобто, коли в полі мантиси будь-яке ненульове число
11 ... 11 11 ... 01 NAN
... ... ... NAN
11 ... 11 00 ... 11 NAN
11 ... 11 00 ... 01 NAN

 

Рисунок 14 – Представлення величин +∞, -∞ та NAN

 

Формат десяткового числа

Двійково-десяткове число має такий формат:

 

S D17 d16 d15 … d1 d0

де d – тетрада (4 двійкових розряди).

 

Система команд 8087

 

Повна система команд 8087 включає в себе 6 команд і побудована на основі команди ESC. Використовується 2 формати команди ESC.

а) Формат команди з постбайтом – застосовується у тих випадках, коли операнд-джерело знаходиться в пам’яті або в регістрі ST(i), або коли результат необхідно переслати в пам’ять або в регістр ST(i) (рис. 15).

 

ESC                  
КОП   mod КОП r/m   Молодший байт   Старший байт
       
      Байт адресації   Зміщення disp

Рисунок 15 – Формат команди з постбайтом

Зміщення disp може дорівнювати:

1 байт ( у цьому випадку mod = 01);

2 байти (у цьому випадку mod = 10);

бути відсутнім (тоді mod = 00 або mod = 11).

У випадку mod=11 операнд розміщується в одному з арифметичних регістрів. Виняток складають випадки, коли mod=11 і r/m=110, - тоді зміщення складає 2 байти і повністю визначає виконувану адресу.

Б) Формат команди без постбайта – застосовується у тих випадках, коли операнд розташований в регістрі ST(i) або в командах управління (рис. 16).

 

ESC            
КОП   КОП - формат команди управління
ESC            
КОП   КОП ST(i) - формат команди. коли операнд розташований в регістрі ST(i)

Рисунок 16 – Формат команди без постбайта

Команди керування

 

До команд керування відносяться 15 команд, які використовуються не для обчислень. а для виконання системних функцій. Більшість із цих команд має два варіанти (два мнемокоди). Другий мнемокод утворюється шляхом додавання до мнемокоду букви N, яка вказує, що при асемблюванні даного мнемокоду перед ним не треба розміщувати команду WAIT. Другий мнемокод використовується у програмах, які є критичними за часом виконання. До основних команд керування належать:

· команда ініціалізації співпроцесора – FINIT або FNINIT;

· команда очікування – FWAIT;

· команда збільшення покажчика стека – FINCSTR

(якщо ST=7, то після виконання даної команди ST=0);

· команда зменшення покажчика стека – FDECSTR

(якщо ST=0, то після виконання команди ST=7).

 

Команди передавання даних

Команди передавання даних включають 4 типи команд:

- команди завантаження;

- команди збереження (запам’ятовування);

- команда обміну;

- команди завантаження констант.

 

До основних команд завантаження належать:

· команда завантаження дійсного числа – FLD src або FLD ST(0),src

(передача даних здійснюється від джерела src у вершину стека ST(0));

· команда завантаження цілого числа – FILD src

(число завантажується у вершину стека);

· команда завантаження десяткового числа – FBLD src

(число завантажується у вершину стека).

 

До основних команд збереження належать:

· команда збереження дійсного числа – FST dst або FST ST(i)

(Число завантажується з вершини стеку в пам’ять за адресою dst або в інший регістр ST(i));

· команда збереження цілого числа – FIST dst;

· команда збереження дійсного числа з одночасним виштовхуванням зі стека – FSTP dst;

· команда збереження цілого числа з одночасним виштовхуванням зі стека – FISTP dst;

· команда збереження десяткового числа з одночасним виштовхуван- ням зі стека – FSTP dst.

 

До команди обміну належить:

· команда обміну – FXCH dst

(обмінюється вміст регістра-приймача dst з вершиною стека. За замовчуванням (команда FXCH) для обміну з вершиною стека ST(0) береться dst=ST(1).

 

До основних команд завантаження констант належать:

· команда завантаження числа +0.0 – FLDZ

(число завантажується у вершину стека);

· команда завантаження числа 1.0 – FLD1

(число завантажується у вершину стека);

· команда завантаження числа π FBLPI

(число завантажується у вершину стека);

· команда завантаження числа log210 – FLDL2T

(число завантажується у вершину стека).

 

Арифметичні команди

 

Арифметичні команди включають 6 типів команд:

- додавання;

- віднімання;

- множення;

- ділення;

- порівняння;

- аналізу.

 

До основних арифметичних команд належать:

· команда додавання дійсних чисел – FADD dst, src

(Як правило, dst=ST(0), src=ST(i) або dst=ST(i), src=ST(0). За замовчуванням (команда FADD) вважається, що dst=ST(0), src=ST(1). Результат операції в ST(0));

· команда віднімання дійсних чисел – FSUB dst, src;

· команда множення дійсних чисел – FMUL dst, src;

· команда ділення дійсних чисел – FDIV dst, src;

· Команда порівняння з нулем вершини стека – FTST;

· команда порівняння дійсних чисел – FCOM src

Остання команда виконує віднімання вмісту src від вмісту вершини стека ST(0), формуючи значення прапорців С3 та С0 (рис. 17).

 

Відношення С3 С0
ST(0) > (src) 0 0
ST(0) < (src) 0 1
ST(0) = (src) 1 0
ST(0) не може бути порівняно з (src) 1 1

 

Рисунок 17 – значення прапорців С3 та С0

 

Спеціальні команди для обчислень

До спеціальних команд належать:

· команда обчислення кореня квадратного ­­ – FSQRT;

· команда обчислення функції sin – FSIN;

· команда обчислення функції cos – FCOS;

· команда обчислення функції arctg – FRATAN.

 

© 2013 wikipage.com.ua - Дякуємо за посилання на wikipage.com.ua | Контакти