Форматы данных
Сопроцессор расширяет номенклатуру форматов данных, с которыми работает основной процессор. Сопроцессор специально разрабатывался для вычислений с плавающей точкой. Но сопроцессор может работать и с целыми числами, хотя и менее эффективно. Форматы данных, с которыми работает сопроцессор:
– двоичные целые числа в трех форматах — 16, 32 и 64 бита;
– упакованные целые десятичные (BCD) числа — максимальная длина 18 упакованных десятичных цифр (9 байт);
– вещественные числа в трех форматах — коротком (32 бита), длинном (64 бита), и расширенном (80 бит).
Кроме этих основных форматов, сопроцессор поддерживает специальные численные значения, к которым относятся:
– денормализовавные вещественные числа — это числа меньшие минимального нормализованного числа для каждого вещественного формата, поддерживаемого сопроцессором;
– нуль;
– положительные и отрицательные значения бесконечность;
– нечисла;
– неопределенности и неподдерживаемые форматы.
В самом сопроцессоре числа в этих форматах имеют одинаковое внутреннее представление — в виде расширенного формата вещественного числа. Это один из форматов представления вещественных чисел, который точно соответствует формату регистров r0…r7 стека сопроцессора. Таким образом, даже если вы используете команды сопроцессора с целочисленными операндами, то после загрузки в сопроцессор операндов целого типа они автоматически преобразуются и формат расширенного вещественного числа.
Двоичные целые числа
Сопроцессор работает с тремя типами целых чисел:
Целое слово, 16 бит, -32 768...+32 767
Короткое целое, 32 бита -2х10*9...+2х10*9
Длинное целое 64 бита, -9х10*18...+9х10*18
Выбирая формат данных, с которыми будет работать ваша программа, помните, что сопроцессор поддерживает операции с целыми числами, но работа с ними осуществляется неэффективно. Причина в том, что обработка сопроцессором целочисленных данных будет замедлена из-за необходимости выполнения дополнительного преобразования целых чисел с их внутреннее представление в виде эквивалентного вещественного числа расширенного формата.
В программе целые двоичные числа описываются обычным способом — с использованием директив dw, dd и dq . Например, целое число 5 может быть описано следующим образом:
ch_dw 5 представление в памяти: ch_dw=05 00
ch_dd 5 представление в памяти: ch_dw=05 00 00 00
chfdq 5 представление в памяти: ch_dw=05 00 00 00 00 00 00 00
Работать с целыми числами может далеко не всякая команда сопроцессора. Подробную информацию о командах сопроцессора можно найти в Справочнике.
Дата добавления: 2015-04-15; просмотров: 1083;