Меню сайта

Урок 114. Определение действительных чисел

Ассемблер отдельно порождает поля данныхдествительных чисел с
— — — помощью четырех-, восьми- и десятибайтовыхописаний. — Короткому
— — — действительному числу здесь соответствуетоператор DD- длинному
— — — действительному числу соответствуетоператор DQ- а временному
— — — действительному чисоу — оператор DT.

— — — — — К сожалению, Макроассемблер фирмы IBM необслуживает числа с
— — — плавающей точкой процессора 8087. — Если вы укажите действительное
— — — число в качестве операнда оператора DD илиDQ, то в качестве данных
— — — получите запутанный набор нулей иединиц. — Этот формат плавающих
— — — чисел соответствует формату, используемомувнутри интерпретатора
— — — языка Бейсик, и не является форматом ИИЭР,используемым в
— — — сопроцессоре 8087. — Поэтому программа для сопроцессора 8087 должна
— — — использовать несколько иной методпорождения действительных чисел.

— — — — — Существует два метода, которые можноиспользовать для
— — — построения действительных чисел. — Первый метод — ручное
— — — ассемблирование. — Вы выписываете действительное число в праивльном
— — — формате с помощью бумаги и ручки. — Эта операция содержит:
— — — тщательный анализ числа, преобразованиедесятичного числа в
— — — двоичную форму, разделение порядка имантиссы, смещение порядка, и
— — — наконец, преобразование результата вдвоичную или шестнадцатеричную
— — — систему. -Это реальный метод, но он требует изрядного опыта и
— — — огромных затрат времени программиста. — Второй метод порожления
— — — действительных чисел — косвенный метод,требующий большого
— — — количества машинного времени, но гораздоменьших затрат времени
— — — программиста. — Здесь вы записываете действительное число в виде
— — — произведения ил частного двух или болеецелых. — Ассемблер может
— — — непосредственно порождать целые числа спомощью команд DW, DD или
— — — DQ. -Сразу же после инициализации микросхемы 8087 программа может
— — — построить необходимые ей действительныечисла, выполняя необходимые
— — — умножения и деления. — Например, в программе нужна константа с
— — — плавающей точкой 1.234*105. — Сформировать такую константу в целом
— — — представлении программист сможет легко,используя следующий оператор
— — — — — DD 123400

— — — — — Заметим, что число слишком велико дляпредставления оператором
— — — DW, но удовлетворяет ограничениям32-битовых целых чисел.

— — — — — Но предположим, что нужно построить число1.234*10**-5, которое
— — — очень мало. — В этом случае в программе потребуется два целых числа:
— — — одно целое число соответствует значениюмантиссы, а другое
— — — соответствует десяти в степенипорядка. — Можно воспользоваться
— — — следующими определениями

— — — — — DW — -1234
— — — — — DD — -100000000

— — — — — чтобы построить необходимое число. — Программист делит дробную
— — — часть числа 1234 на значение 10**8 иполучает нужное число.

— — — — — При использовании такого подхода возникаютсложности в работе с
— — — очень большими или малыми числами. — — — Эти числа требуют представления
— — — степеней десяти, которые по значению многобольше любых
— — — представимых целых чисел. — Далее приводится пример, который строит
— — — действительный формат каждой третьейстепени десяти и может помочь
— — — в таком случае. — Отложим рассмотрение этой программы до тех пор,
— — — пока не изучим необходимые для неекоманды. — С помощью таких
— — — действителтных представлений степеней 10записать числа от 1036 до
— — — 10-24 будет достаточно легко. — Программа может разбить число на
— — — целую часть и степень десяти, а умножениеи деление дадут верное
— — — значение. -Микросхема 8087 также допускает и другие способы
— — — выполнения таких операций масштабирования,но методы, используюшие
— — — целые числа и степени 10, наиболее просты,особенно для людей,
— — — работающих с сопроцессором 8087 впервые.

Категория: Программирование на Ассемблере | Дата: 17.03.13

Меню раздела
Блок