Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 курс / Лекции / Лекция 25 - Архитектура и программирование сопроцессора.ppt
Скачиваний:
42
Добавлен:
18.02.2023
Размер:
539.14 Кб
Скачать

Форматы данных

Директивы описания данных:

Целое число 16 бит – dw

Целое число 32 бит - dd

Целое число 64 бит - dq

Упакованное десятичное целое число - dt

Короткое вещественное число – dd

Длинное вещественное число – dq

Расширенное вещественное число – dt

Форматы данных

Минимальное положительное денормализованнное число

0

00..00

 

00000………………………001

 

 

 

 

 

 

79 78

64 63

0

Минимальное отрицательное денормализованнное число

1

00..00

 

00000………………………001

 

 

 

 

 

 

79 78

64 63

0

Максимальное положительное денормализованнное число

0

00..00

 

11111………………………111

 

 

 

 

 

 

79 78

64 63

0

Максимальное отрицательное денормализованнное число 1 00..00 11111………………………111

79 78

64 63

0

 

 

 

Форматы данных

Нуль

0

00..00

 

00000……………………000

 

 

 

 

 

 

79 78

64 63

0

Нуль

 

 

 

 

 

 

 

 

1

00..00

 

00000……………………000

 

 

 

 

 

 

79 78

64 63

0

Положительная бесконечность

0

11..11

 

10000……………………000

 

 

 

 

 

 

79 78

64 63

0

Отрицательная бесконечность

1

11..11

 

10000……………………000

 

 

 

 

 

 

79 78

64 63

0

Сигнальное не число

x

11..11

 

10xxx……………………xxx

 

 

 

 

 

 

79 78

64 63

0

Сигнальное не число

 

 

 

 

 

x

11..11

 

11xxx……………………xxx

 

 

 

 

 

 

79 78

64 63

0

Спокойное не число

 

 

 

 

 

1

11..11

 

11000……………………000

 

 

 

 

 

 

79 78

64 63

0

Система команд сопроцессора

Все команды сопроцессора можно разделить на следующие группы:

команды передачи данных,

арифметические команды,

команды сравнения данных,

команды управления.

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

Правиласопроцессорамнемоники команд сопроцессора:

Все мнемонические обозначения начинаются с символа f.

Вторая буква мнемонического обозначения определяет тип операнда в памяти с которым работает программа:

i – целое двоичное число,

b – целое десятичное число,

отсутствие буквы – вещественное число.

Последняя буква мнемонического обозначения команды p означает, что последним действием команды обязательно является извлечение операнда из стека.

Последняя или предпоследняя буква r означает реверсивное следование операндов при выполнении команд вычитания и деления.

Команды передачи данных

fld источник – загрузка вещественного числа из памяти в вершину стека.

fst приемник – сохранение вещественного числа из вершины стека в память.

fstp приемник – сохранение вещественного числа из вершины стека в память с выталкиванием из стека.

fild источник – загрузка двоичного целого числа из памяти в вершину стека.

fist приемник – сохранение двоичного целого числа из вершины стека в память.

fistp приемник – сохранение двоичного целого числа из вершины стека в память с выталкиванием из стека.

fbld источник – загрузка десятичного целого числа из памяти в вершину стека.

fbstp приемник – сохранение десятичного целого числа из вершины стека в память с выталкиванием из стека.

Команды передачи данных

fxch st(i) – обмен значений между текущей вершиной стека и регистром стека сопроцессора st(i).

fldz – загрузка в вершину стека нуля,

fld1 – загрузка в вершину стека единицы,

fldpi – загрузка в вершину стека числа π,

fldl2t – загрузка в вершину стека двоичного логарифма десяти,

fldl2e – загрузка в вершину стека двоичного логарифма числа e,

fldlg2 – загрузка в вершину стека десятичного логарифма двух,

fldln2 – загрузка в вершину стека натурального логарифма двух.

Целочисленные арифметические команды

fiadd источник – команда складывает значение st(0) и целочисленного источника. Результат записывается в st(0).

fisub источник – команда вычитает значение целочисленного источника из st(0). Результат записывается в st(0).

fimul источник – команда умножает значение целочисленного источника на st(0). Результат записывается в st(0).

fidiv источник – команда делит содержимое st(0) на значение целочисленного источника. Результат записывается в st(0).

fisubr источник – команда вычитает значение st(0) из целочисленного источника. Результат записывается в st(0).

fidivr источник – команда делит содержимое целочисленного источника на st(0). Результат записывается в st(0).

Вещественные арифметические команды

fadd – складывает значения st(0) и st(1). Результат в st(0).

fadd источник – команда складывает значения st(0) и источника в памяти. Результат в st(0).

fadd st(i), st – команда складывает значения st(0) и st(i). Результат в st(i).

faddp st(i), st – команда складывает значения st(0) и st(i). Далее осуществляется выталкивание значения из стека, результат, таким образом, остается в регистре st(i-1).

Вещественные арифметические команды

fsub – вычитает значение st(1) из st(0). Результат в st(0).

fsub источник – команда вычитает значение источника в памяти из st(0). Результат в st(0).

fsub st(i), st – команда вычитает значение st(0) из значения st(i). Результат в st(i).

fsubp st(i), st – команда вычитает значение st(0) из значения st(i). Далее осуществляется выталкивание значения из стека, результат, таким образом, остается в регистре st(i-1).

fsubr st(i), st – команда вычитает значение st(i) из значения st(0). Результат в st(0).

fsubrp st(i), st – команда вычитает значение st(i) из значения st(0). Далее осуществляется выталкивание значения из стека, результат, таким образом, остается в регистре st(i-1).