Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Юрий Владимирович самый уважаемы человек =)экза...doc
Скачиваний:
3
Добавлен:
12.09.2019
Размер:
1.41 Mб
Скачать

42.Команди пересилки співпроцесора

В группе команд пересылки данных сопроцессора 8087 имеется всего три основных команды. Команда загрузки помещает данные в регистровый стек 8087. Обычно эти данные читаются из памяти системы, но команда загрузки может также извлечь число из самого стека и заменить им вершину стека. Команда записи берет данные из вершины стека и помещает их в память ЭВМ. Команда замены обменивает два числа в регистровом стеке сопроцессора 8087.

На Фиг. 7.10 показан листинг ассемблера команд пересылки данных. В текст в самом начале помещен набор макрокоманд процессора 8087 с помощью фрагмента:

IF1

INCLUDE 87MAC.LIB

ENDIF

Эта последовательность команд помещает в текст программы макрокоманды определения команд сопроцессора 8087 во время первого прохода ассемблера, когда должны обрабатываться макрорасширения. Ассемблер не читает файл макрокоманд во время второго прохода, так как этот файл больше не нужен. В листинге ассемблера появляется только команда ENDIF. Первая команда пересылки данных, которую мы рассмотрим - команда загрузки. Название всех команд сопроцессора 8087 начинается с буквы "F". Так что, чтобы загрузить число в микросхему 8087, используется команда FLD (Floating LoaD, плавающая загрузка). В отличие от команд микропроцессора 8088, где команда MOV обслуживает все форматы данных, здесь существует разная мнемоника для разных типов данных. Так получилось потому, что ассемблер может различать четырехбайтовые и восьмибайтовые операнды, но не может знать, является ли операнд действительным или целым числом.

Всякий раз, когда операнд - целое, используется команда FILD. Итак, FILD загружает слово (16 бит), короткое целое число (32 бита) или длинное целое число (64 бита). Чтобы загрузить упакованное десятичное число (80 бит), используется команда FBLD. Буква B указывает десятичные числа. Наконец, команда FLD загружает действительные числа. Ассемблер определяет, какой вид целого или действительного числа вы желаете использовать.

43. Арифметические команды сопроцессора

 1) fxch st(i) – меняет местами содержимое st(0) и st(i), i=0..7  2) fadd|faddp приёмник, источник – сложение вещественных чисел. Выполняет сложение источника и приёмника и сохраняет результат в приёмнике. Может принимать следующий вид:  12345678901) fadd m32|m64, где m32|m64 – источник, а st(0) – приёмник  12345678902) fadd st(0), st(i)|fadd st(i), st(0)|faddp st(n), st(0) 3) fsub|fsubp приёмник, источник – вычитание вещественных чисел (аналогично сложению). Выполняет вычитание источника из приёмника и сохраняет результат в приёмнике 4) fsubr|fsubrp приёмник, источник – обратное вычитание вещественных чисел – эквивалентны fsub|fsubp, только они выполняют вычитание приёмника из источника, а не источника из приёмника 5) fmul|fmulp приёмник, источник – выполняет умножение источника и приёмника и помещает результат в приёмник 12345678901) fmul m32|m64, где m32|m64 – источник, а st(0) – приёмник 12345678902) fmul st(0), st(i)|fmul st(i), st(0)|fmulp st(n), st(0) 6) fdiv|fdivp приёмник, источник – деление вещественных чисел (аналогично умножению) 7) fdivr|fdivrp приёмник, источник – обратное деление вещественных чисел – эквивалентны fdiv|fdivp, но при этом они выполняют деление источника на приёмник, а не приёмника на источник 8) fabs – если st(0)<0, переводит его в положительное 9) fchs – изменить знак st(0) 10) frndint – округляет значение st(0) до целого числа в соответствии с режимом округления, заданным битами RC 11) fsqrt – извлечь квадратный корень

45. IEEE 754 — широко розповсюджений стандарт формату представлення чисел з плаваючою комою, що використовується як у програмних реалізаціях арифметичних дій, так і в багатьох апаратних (CPU та FPU) реалізаціях. Багато компіляторів мов програмування використовують цей стандарт для зберігання та виконання математичних операцій.

Стандарт у 1985 році розробив професор університету Берклі Вільям Каган.

[ред.]Формати чисел

Він описує чотири формати чисел:

Одинарної (single) точності

Подвійної (double) точності

Розширеної одинарної (single extended) точності

Розширеної подвійної (double extended) точності

Стандарт визначає

Визначення форматів зберігання експоненти і знаку, формати позитивного та негативного нуля, плюс та мінус нескінченностей, а також визначення «не числа» (NaN).

Методи, які будуть використовуватися для округлення числа в процесі математичних операцій.

Обробка виключних ситуацій, таких як ділення на нуль, переповнення і т.д.

Порівняння

single

double

single extended

double extended

Кількість біт для сиґнифіканда

24

53

32

64

Кількість біт для експоненти

8

11

≤11

15

Можливі значення експоненти

[-126;+127]

[-1022;+1023]

[≤-1022;+1023]

[-16382;+16383]

Загальна кількість біт

32

64

43+

80(79+)

Тип в Pascal

real

double

extended

Тип в C

float

double

long double