AOP_Tom2 (1021737), страница 68

Файл №1021737 AOP_Tom2 (Полезная книжка в трёх томах) 68 страницаAOP_Tom2 (1021737) страница 682017-07-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 68)

Следующая программа представляет собой подпрограмму, ревлнзующую алгоритм А, причем она построена таким образом, что нормализукиций фрагмент может использоваться другими подпрограммами, которые будут рассмотрены ниже. Как в этой программе, так и во многих других программах данной главы, идентификатор ОРЕО именует подпрограмму, которая печатает сообщение о том, что индикатор переполнения машины М1Х внезапно перешел в состояние "включено". Предполагается, что размер байта 5 кратен 4.

В подпрограмме нормализации МОНН предполагается, что г12 = е и гАХ = 1', где гА = О влечет за собой гХ = О и г12 ( 6. Переход, если ер ~ е„. РУ+- ~1~УУО г12 < — е гП Ф- -е„. 00 В?ТЕ 01 ЕХР 02 ЛБОВ 08 05 РАОО 05 Об 07 08 09 10 11 12 18 15 15 1Н 1б 17 18 19 4Н 20 ЬН 21 22 28 6Н 25 25 20 27 28 Яо 81 82 ЯЯ 85 Я5 Яб Я7 НАЕР 88 РО 89 РЧ ЕЦО 1(4:4) ЕЦО 1:1 БТА ТЕМР (.ОАМ ТЕМР БТЛ ЕХ1ТР ЛОЧ ОРЕО БТА ТЕМР (.ОХ АСС СМРА АСС(ЕХР) ЗОЕ 1Р ЯТХ РУ(0:4) Е02 АСС(ЕХР) БТА РЧ(0:4) Е01Н ТЕМР(ЕХР) ЛМР 4Р БТА РО(0:4) 1,02 ТЕМР(ЕХР) ЯТХ РЧ(0:4) 1.01М АСС(ЕХР) 1НС1 0,2 ЕОА РЧ ЕМТХ 0 ЯНАХ О, 1 АОО РО ЯОЧ М4 ЗХЕ МОЕМ СИРА -"0=(1:1) ЗМЕ Мб ЯНС б ОЕСХ 1 БТА ТЕМР БТА НА(.Р(0:0) ЫАМ ТЕМР АОО НАЕР АОО НАЕГ БНС 4 ЗМР МЗА СОМ 1//2 СОМ 0 СОМ 0 Размер байта 5. Определение поля порядка. Подпрограмма вычитания чисел с плавающей точкой.

Изменить знак операнда. Подпрограмма сложения чисел с плавающей точкой. Снятие блокировки переполнения. ТЕМР < — о. гХ г- и. Шаги А1-АЗ скомблии овины ниже. РУ +- ж 1 1,1 1 0 (и, е меняются ролями). г12+- е г11 < — -е„. г11 +- е„— е„. (Шаг А4 не является необходимым.) А5. Масщтаби рвать вянув вп аво. Очистить гХ.

Сдвиг вправо иа е„— е„позиций, Аб. Сложение. рррр. и р~~нрм и, р переполнение. Простой случай? 1 нормализовано? Если нормализовано, округлить его. )гХ! еч (гА). (гХ положительно.) (Операнды имеют противоположные знаки; нужно уточнить состояние регистров перед округлением и нормализацией.) Дополнить наименыпей значащей величиной. Переход к подпрограмме иормюгизации.

Половина размера слова (знак может изменяться). Дробная часть 1„. Дробная часть ?р. 40 МОКИ )АХ ХНО 41 И2 СМРА =0=(1:1) 42 ЮИЕ Иб нь шнншс ХЕ Но малнзовано лн,(? Перейти к шагу ХЬ, если ведущий байт отличен от нуля. НЗ. Масштабн рвать внн в влево. 45 ИЗ 44 ИЗА 45 46 И4 47 Я1АХ 1 ОЕС2 1 ЗМР И2 ЕИТХ 1 ЯКС 1 Уменьшить е на 1. Вернутьсв к шагу Х2. )Ч4. Масштабу рвать вил в вп аво.

Выполнить сдвиг вправо и вставить "1" с соответствующим знаком. Увеличить е на 1. ш,О ро„~ )остаток) н -'Ь? )остаток) > АЬ? )остаток) = -Ь; округлить до нечетного. г12+- е — Ь. Довольно большой фрагмент кода программы (строки 25-37) включен в программу по той причине, что в М1Х имеется 5-байтовый аккумулятор для сложения чисел со знаком, в то время как алгоритм А в общем случае требует для него 2р+ 1 = 9 разрядов.

В действительности всю программу можно сократить почти вдвое, если пожертвовать хотя бы небольшой долей точности. Однако, как будет показано в следующем разделе, всегда лучше получать наибольшую возможную точность, В строке 55 используется нестандартная команда М1Х, описанная в разделе 4.5.2. Время выполнения сложения и вычитания чисел с плавающей точкой зависит от нескольких факторов, анв.лизируемых ниже, в разделе 4.2.4. Рассмотрим теперь операции умножения и деления„которые выполняк~тся проще, чем сложение, и довольно похожи одна на другую. Алгоритм М (Умношсение или деление чисел с нлаеанлцей гаечкой).

По данным Р-РазРЯдным ноРмализованным числам с плавающей точкой и = (е„,ун) и е = (е„, Х„) по основанию Ь с избытком а строится произведение ш = и З с или частное ш=иЗс. М1. (Распаковать.1 Выделить порядки и дробные части в представлениях и и е. 46 40 И5 50 51 52 55 54 55 56 ЯН 56 50 Иб 60 И7 61 62 ХКО 65 ВН 64 ЕХ1ТР 65 ЕХРОУ 66 ЕХРОМ 67 АСС 1ИС2 1 СМРА =В?ТЕ/2=(б:б) 51 Иб 50 5Р ЗХИХ ЯР БТА ТЕМР ЫХ ТЕМР(4:4) )ХО Иб БТА в+1(0:О) 1ИСА В?ТЕ ЭОУ И4 32И ЕХРОИ ЕИТХ 0,2 БКС 1 РЕС2 В?ТЕ ЯТА АСС 32И НЕТ 2 НЕТ 1 СОИ 0 Перейти к шагу Мб, если гХ нечетно.

Сохранить знак гА. Добавить Ь ~ к )7")(знак может изменяться). Проверить переполнение из-за округления. ав,пх~хн,. и, и. )У7. Упаковать. гХ < — е. Выход, если только не е > Ь. Обнаружено переполнение порядка. Обнаружено исчезновение порядка. Аккумулятор для операций с плавающей точкой. 1 (Иногда удобно, хотя и необязательно, проверить в ходе выполнения этого шага, не равны ли операнды нулю.) М2.[Выполнить операцию.) Установить е +- е„+ е„— д, 1 «-,(„,(„ для умножения; е„, +- е„— е«+ Ч+ 1, 1 +- (б ~1„))1«для деления. (9) (Поскольку предполагается, что вводимые числа нормализованы, в результате получим, что либо 1,„= О, либо 1/оз < [,гк[ с 1, либо возникнет ошибка «деление на нуль".) Здесь.

если в этом есть необходимость, можно урезать г«, до р+ 2 или р+ 3 разрядов, как в упр. 5. МЗ. [Нормализовать.) Применить к (ем,1,„) алгоритм )ч' с тем, чтобы нормализовать, округлить и упаковать результат. (Замечание. В этом случае нормализация выполняется проще ввиду того, что масштабирование посредством сдвига влево происходит не более одного раза и после деления переполнение не может возникнуть вследствие округления,) 3 В подпрограммах для М1Х, тексты которых приведены ниже, используются те же соглашения, что и в программе А. Этн подпрограммы служат примером машинной реализации алгоритма М.

Программа М (Умножение и деление чисел с нлаеаклцей точкой). г12 « — е + е — д. 10 Р01Ч ЯТ) 14 гОЧ 10 ЯТА 10 ЯТА 17 1,01 18 1,02 10 ОЕС2 00 ЕИТХ 01 ЕОА йй ЯЕА йу СМРА Е( Л. Об ЯКА 00 1ИС2 г12 < — е — е, +д. гА < — 1 . Переход, если Д [ < ~й ~ Иначе — масштабировать 1„вправо и увеличить г12 на 1. 01 Ц ЕЦО 00 РММЛ. ЯТ) ОЯ )ОЧ 04 Я ТА Об ЕОХ 00 ЯТХ 07 1.01 08 Ю2 00 1ИС2 10 ЯЕА 11 МШ.

10 ЛМР ВЧТЕ/2 ЕХ1ТР ОИ.О ТЕМР АСС РО(0:4) ТЕМР(ЕХР) АСС(ЕХР) -Ц,1 1 РО ИОКИ ЕХХТР ОР10 ТЕМР РЧ(0:4) ТЕМР(ЕХР) АСС(ЕХР) -Ц,1 О АСС 1 РЧ(1:5) ««3 1 1 д есть половина размера байта. Подпрограмма умножения чисел с плавающей точкой. Снятие блокировки переполнения. ТЕМР +- о. гХ « — и. РЧ вЂ” ~ Ш 1 О. Умножить Г"„на 1,. Нормализовать, округлить и выйти нз подпрограммы. Подпрограмма деления чисел с плавающей точкой. Снятие блокировки переполнения ТЕМР «- о. РЧ « — к 1 1 1 г" О. 27 ОТУ РУ 00 1МОУ МОЕМ 09 ОгХКО НЕТ 3 Разделить. Нормализовать, округлить и выйти из подпрограммы.

Ненормализовано или делитель равен нулю. 1 Наиболее интересная особенность этой программы — подготовка к выполнению деления, осуществляемая командами в строках 23 — 26. Эти операции проводятся для того, чтобы обеспечить достаточную точность при округлении ответа. При < )1е~, непосредственно применив алгоритм М, можно сохранить результат в 4юрме «х 01 1 1 1» в регистре А, что сделает невозможным чистое округление без специального анализа остатка (он хранится в регистре Х). Поэтому в такой ситуации программа, вычисляет 1„, < — г"„/1„, гарантируя, что 1' либо равно нулю, либо во всех случаях нормализовано.

Процедура округления может оперировать пятью значащими байтами, возможно, проверяя, не равен ли остаток нулин Иногда может потребоваться перевод из представления с фиксированной точкой в представление с плавающей точкой и обратно. При помощи описанного вышо алгоритма нормализации легко получается программа перевода "из фиксированной в плавающую', Например, целое число переводится в форму с плавающей точкой с помощью следукяцей подпрограммы на языке М1Х.

01 РЕОТ БТ1 ЕХ1ТР Предполагаем, что гА = и есть целое число. 0г ЛОМ ОРЕО Снятие блокировки переполнения. 03 ЕМТ2 О+5 Установить "грубый" порядок. 04 ЕМТХ О 05 ЛМР МОКИ Нормализовать, округлить и выйти из подпрограммы. $ (10) Подпрограмма перевода "из плавающей в фиксированную" служит предметом упр. 14. 1) Пдтеря знака. Во многих машинах (к М1Х это не относится) команды сдвига регистров воздействуют на знаковый разряд, поэтому следует подробно анализировать операции сдвига, используемые при нормализации и изменении масштаба дробной части числа.

Часто знак теряется и при появлении "минус нуля". (Например, операторы 36-34 программы А ответственны за установку знакового разряда регистра А. См. также упр. 6.) 2) Невозможность прао яьного определения, что произошло исчезновение ияи переполнение порядка. Не следует проверять величину е до окончания операций округления и нормализации, так как предварительные проверки могут привести к ошибочным результатам. Исчезновение н переполнение порядка могут происходить и при выполнении сложения и вычитания, а не только при умножении и делении, и, несмотря на то что это событие довольно редкое, проверку необходимо проводить для каждого конкретного случая.

Характеристики

Тип файла
DJVU-файл
Размер
9,89 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее