Главная » Просмотр файлов » assembler. Учебник для вузов_Юров В.И_2003 -637с

assembler. Учебник для вузов_Юров В.И_2003 -637с (862834), страница 104

Файл №862834 assembler. Учебник для вузов_Юров В.И_2003 -637с (Юров В.И - Assembler. Учебник для вузов. 2003) 104 страницаassembler. Учебник для вузов_Юров В.И_2003 -637с (862834) страница 1042021-12-22СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

17.4. Формат регистра управления сопроцессором CWRiАрхитектура сопроцессора455Шесть масок предназначены для маскирования исключительных ситуаций,возникновение которых фиксируется с помощью шести битов регистра SWR. Есликакие-то биты исключений в регистре CWR установлены в единицу, это означает,что соответствующие исключения будут обрабатываться самим сопроцессором.Если для какого-либо исключения в соответствующем бите масок исключенийрегистра CWR содержится нулевое значение, то при возникновении исключенияэтого типа будет возбуждено прерывание 16 (10h).

Операционная система должнасодержать (или программист должен написать) обработчик этого прерывания. Ондолжен выяснить причину прерывания, после чего, если это необходимо, устранить ее, а также выполнить другие действия. Более подробно этот вопрос обсуждается в разделе «Исключения сопроцессора и их обработка».Поле управления точностью PC предназначено для выбора длины мантиссы.Возможные значения в этом поле означают:ш PC = 00 — длина мантиссы 24 бита;ж PC = 10 — длина мантиссы 53 бита;« PC = 11 — длина мантиссы 64 бита.По умолчанию устанавливается значение поля PC - 11.Поле RC позволяет управлять процессом округления чисел в ходе работы сопроцессора. Необходимость округления может возникнуть в ситуации, когда после выполнения очередной команды сопроцессора получается непредставимый результат, например периодическая дробь 3,333...

Установив одно из значений в полеRC, можно выполнить округление в необходимую сторону. Для того чтобы выяснить характер округления, введем обозначения:* т — значение в ST(0) или результат работы некоторой команды, который неможет быть точно представлен и поэтому должен быть округлен;и а и b — наиболее близкие значения к значению т, которые могут быть представлены в регистре ST(0) сопроцессора, причем выполняется условие а < т < Ь.Далее приведены значения поля RC и описан соответствующий им характерокругления:* 00 — значение т округляется к ближайшему числу а или Ь;* 01 — значение т округляется в меньшую сторону, то есть т = а;ж 10 — значение т округляется в большую сторону, то есть т = Ь;ш 11 — производится отбрасывание дробной части т (может использоватьсяв операциях целочисленной арифметики).Регистр тегов TWRРегистр тегов TWR представляет собой совокупность двухразрядных полей.

Каждое двухразрядное поле соответствует определенному физическому регистру стека (см. рис. 17.1) и характеризует его текущее состояние. Изменение состояниялюбого регистра стека отражается на содержимом соответствующего этому регистру поля регистра тега. Возможны следующие значения в полях регистра тега:Ш 00 — регистр стека сопроцессора занят допустимым ненулевым значением;it 01 — регистр стека сопроцессора содержит нулевое значение;456Глава 17. Архитектура и программирование сопроцессора^ 10 — регистр стека сопроцессора содержит одно из специальных численныхзначений (см.

ниже), за исключением нуля;в 11 — регистр пуст, и в него можно производить запись (нужно отметить, что этозначение в одном из двухразрядных полей регистра тегов не означает, что всебиты соответствующего регистра стека обязательно нулевые).Мы не раз уже отмечали, что при написании программы разработчик манипулирует не абсолютными, а относительными номерами регистров стека. По этойпричине у него могут возникнуть трудности при попытке интерпретации содержимого регистра тегов TWR с соответствующими физическими регистрами стека.В качестве связующего звена необходимо привлекать информацию из поля ТОРрегистра SWR.Форматы данныхСопроцессор расширяет номенклатуру форматов данных, с которыми работаетосновной процессор.

В этом нет ничего удивительного, так как формат данныхлюбого устройства в существенной мере отражает специфику его работы. Сопроцессор специально разрабатывался для вычислений с плавающей точкой. Но сопроцессор может работать и с целыми числами, хотя и менее эффективно. Перечислим форматы данных, с которыми работает сопроцессор:* двоичные целые числа в трех форматах — 16, 32 и 64 бита;II упакованные целые десятичные (BCD) числа — длина максимального числасоставляет 18 упакованных десятичных цифр (9 байтов);к вещественные числа в трех форматах — коротком (32 бита), длинном (64 бита),расширенном (80 битов).Кроме этих основных форматов, сопроцессор поддерживает специальные численные значения, к которым относятся:я денормализованные вещественные числа — это числа, меньшие минимальногонормализованного числа (см.

ниже) для каждого вещественного формата, поддерживаемого сопроцессором;я нуль;is положительные и отрицательные значения бесконечности;i* нечисла;ii неопределенности и неподдерживаемые форматы.Рассмотрим более подробно основные форматы данных, поддерживаемые сопроцессором. Важно отметить, что в самом сопроцессоре числа в этих форматахимеют одинаковое внутреннее представление — расширенный формат вещественного числа.

Это один из форматов представления вещественных чисел, которыйточно соответствует формату регистров RO... R7 стека сопроцессора (см. рис. 17.1).Таким образом, даже если вы используете команды сопроцессора с целочисленными операндами, то после загрузки в сопроцессор операндов целого типа они автоматически преобразуются в формат расширенного вещественного числа.Форматы данных457Двоичные целые числаСопроцессор работает с тремя типами целых чисел (рис. 17.5).ЗнакI | Целое слово |15ОКороткое целое31ОДлинное целоеО63Рис. 17.5. Форматы целых чисел сопроцессораВ табл.

17.1 представлены формат целых чисел, их размерность и диапазон значений.Таблица 17.1. Форматы целых чисел сопроцессораФорматРазмер, битовДиапазон значенийЦелое слово16-32 768...+32 767Короткое целое32-2 • 109...+2 • 109Длинное целое64-9-10 18 ...+9-10 шВыбирая формат данных, с которыми будет работать ваша программа, помните, что сопроцессор поддерживает операции с целыми числами, но работа с нимиосуществляется неэффективно. Причина в том, что обработка сопроцессором целочисленных данных будет замедлена из-за дополнительного преобразования целых чисел в их внутреннее представление в виде эквивалентного вещественногочисла расширенного формата.В программе целые двоичные числа описываются обычным способом — с использованием директив DW, DD и DQ.

Например, целое число 5 может быть описаноследующим образом:ch_dwch_ddch_dq555представление в памяти: ch_dw=05 00представление в памяти: ch_dw=05 00 00 00представление в памяти: ch_dw=05 00 00 00 00 00 00 00Работать с целыми числами может далеко не всякая команда сопроцессора.Подробную информацию о командах сопроцессора можно найти в приложении.Упакованные целые десятичные числаСопроцессор поддерживает один формат упакованных целых десятичных чисел,или BCD-чисел (рис. 17.6).

Как вы помните, для описания упакованного десятичного числа используется директива DT (см. главу 8). Данная директива позволяетописать 20 цифр в упакованном десятичном числе (по две в каждом байте). Из-затого что максимальная длина упакованного десятичного числа в сопроцессоре составляет только 9 байт, в регистры RO...R7 можно поместить только 18 упакованных десятичных цифр. Старший десятый байт игнорируется.

Самый старший битэтого байта используется для хранения знака числа.458Глава 17. Архитектура и программирование сопроцессораЗнакd9d8 | d7d6 | d5d4 |О79Рис. 17.6. Формат десятичного числа сопроцессораУпакованные десятичные числа также представляются в стеке сопроцессорав расширенном формате. Упакованные десятичные числа в программе описываются директивой DT.

Например, целое число 5 365 904 в формате упакованногодесятичного числа может быть описано следующим образом:ch_dtdt 5365904представление в памяти: ch_dt=04 59 36 05 00 00 00 00 00 00Нужно отметить, что в сопроцессоре имеются всего две команды для работыс упакованными десятичными числами — это команды сохранения и загрузки.Вещественные числаОсновной тип данных, с которыми работает сопроцессор, — вещественный.

Данные этого типа описываются тремя форматами: коротким, длинным и расширенным (рис. 17.7).Знакs| Характеристика q |Мантисса (М)3124 23s Характеристика qМантисса (М)|...|635352| Мантисса (М)| ... |sХарактеристика q7964630С0КороткийформатДлинныйформатРасширенныйформатРис. 17.7. Форматы вещественных чисел сопроцессораДля представления вещественного числа используется следующая формула:wА - (±М) • If(17.1)Здесь:• М — мантисса числа А (мантисса должна удовлетворять условию | М \ < 1);Ш N— основание системы счисления, представленное целым положительнымчислом;II р — порядок числа, показывающий истинное положение точки в разрядах мантиссы (по этой причине вещественные числа имеют еще название чисел с плавающей точкой, так как ее положение в разрядах мантиссы зависит от значенияпорядка).Для удобства обработки в процессоре чисел с плавающей точкой его архитектурой накладываются некоторые ограничения на компоненты формулы (17.1).Далее перечислены эти условия и ограничения для сопроцессоров, применяющихсяв архитектуреIA-32.Форматы данных1459Основание системы счисления N=2.Мантисса М должна быть представлена в нормализованном виде.

Нормализация может отличаться для разных типов процессоров. Для ЕС ЭВМ, например, мантисса нормализованного числа должна удовлетворять условию1/N< \М\ < 1. Это означает, что старший бит представления должен быть единичным. Для случая, когда N= 2, это соответствует отношению 1/2 < |М| < 1или в двоичном виде ОДО...ОО < |М| < 0,11...11, то есть первая цифра после запятой должна быть значащей (единицей), а порядок;?, соответственно, таким, чтобы это условие выполнялось. Для архитектуры сопроцессора IA-32 нормализованным является число несколько иного вида:Л = (-!)*. J V ' - M(17.2)Здесь:П s — значение знакового разряда (0 — число больше нуля, 1 — число меньшенуля);Q q — порядок числа, его назначение аналогично назначению порядкар в формуле (17.1), но как поясняется далее, р и q — не одно и тоже.В этой формуле знак имеют и порядок вещественного числа, и его мантисса.На рис.

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

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

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

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