Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#13| Storm King
Demon's Souls |#11| Мaneater part 2
Demon's Souls |#10| Мaneater (part 1)
Demon's Souls |#9| Heart of surprises

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Различные авторы Весь текст 2311.07 Kb

Программирование и кодирование

Предыдущая страница Следующая страница
1 ... 133 134 135 136 137 138 139  140 141 142 143 144 145 146 ... 198
                     ¦        ¦           ¦             ¦
         80-битовый  ¦        ¦           ¦             ¦
         вещественный¦  64    ¦   15      ¦ 3FFF(16383) ¦Определена
         64-битовый  ¦        ¦           ¦             ¦
         вещественный¦  52    ¦   11      ¦ 3FF(1023)   ¦Предполагается
         32-битовый  ¦        ¦           ¦             ¦
         вещественный¦  23    ¦    8      ¦ 7F(127)     ¦Предполагается
         ДДДДДДДДДДДДБДДДДДДДДБДДДДДДДДДДДБДДДДДДДДДДДДДБДДДДДДДДДДДДДДДД

             Кроме размера короткий и длинный вещественные форматы отлича-
         ются от 80-битового вещественного тем, что самый значимый бит ре-

                                     - 10-6 -
         ально не появляется!  Из-за своего ограниченного пространства эти
         форматы всегда предполагают 1 в самой левой позиции, но не хранят
         1, таким образом они приобретают позицию для другой цифры.


                    Целое слово, короткий целый и длинный целый
                                  форматы данных

             Формы целого хорошо известны.  Эти формы  используются  цент-
         ральным  процессором для хранения дополнения двоичных целых чисел
         (хотя центральный процессор не может применять  формат 8-битового
         длинного целого). Эти числа имеют следующие диапазоны:
             64-битовый:
             от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807
             32-битовый:
             от -2,147,483,648 до 2,147,483,647
             16-битовый:
             от -32,768 до 32,767

             Эти числа  отличаются  от  вещественных чисел тем,  что любое
         значение,  загруженное из этой формы, является точным представле-
         нием числа.  Помните также, что хотя эти числа имеют знак и самый
         значимый бит отражает знак числа,  они все же  выражают  двоичные
         дополнения чисел.


                Форматы упакованного двоично-десятичного кода (BCD)

             Последней формой представления данных в NPX  является  упако-
         ванный BCD (двоично-десятичный код). Что такое упакованный BCD? В
         системе счисления двоично-десятичного кода каждый 4-битовый полу-
         байт представляет собой отдельную цифру, которая может иметь зна-
         чение между 0 и 9.  Все число представляет  собой  только  строку
         цифр.  Таким  образом,  число  больше  похоже  на строку символов
         ASCII.  На рисунке 10-4 показано представление числа 256  в  нор-
         мальной двоичной форме и форме двоично-десятичного кода.  Неболь-
         шие вычисления проводятся в десятичной системе счисления.

                  ЪДДВДДДДДДВДДДДД¬             ЪДДВДДДДДДВДДДДД¬
                  ¦01¦ 0000 ¦ 0000¦             ¦01¦ 0000 ¦ 0000¦
                  АДДБДДДДДДБДДДДДЩ             АДДБДДДДДДБДДДДДЩ
                  9-8  7...4 3...0              9-8  7...4 3...0
                                                        
                   1     0     0                 2      5    6

         Двоичный:1x256 + 0x16 + 0x1 = 256     2x256 + 5x16 + 6x1 = 598
         Двоично-
         десятич.:1x100 + 0x10 + 0x1 = 100     2x100 + 5x10 + 6x1 = 256

              Рис.10-4. Представление числа в двоично-десятичном коде

             Из рисунка 10-4 видно,  что мы пишем числа в двоично-десятич-
         ном коде,  как если бы они были шестнадцатиричными (одна цифра на
         каждый 4-битовый полубайт),  но интерпретируем их как десятичные.
         Но почему эта форма данных так важна?  Потому, что она служит для
         преобразований  между  ASCII и упакованным BCD.  Рисунок 10-5 де-
         монстрирует,  что для перехода из BCD в ASCII  Вы  должны  только

                                      - 10-7 -
         распаковать цифры (одну на полубайт) в байты и прибавить шестнад-
         цатиричное 30 для формирования символов ASCII от 0 до 9 (шестнад-
         цатиричные с 30 по 39).  Для выполнения обратного  преобразования
         надо вычесть 30h из каждого символа и упаковать  их,  по  два  на
         байт.

                               ЪДДВДДДДДДВДДДДД¬
                               ¦01¦ 0000 ¦ 0000¦
                               АДДБДДДДДДБДДДДДЩ
                               9-8  7...4 3...0
            Двоично-десятичный            
                 формат         2     5     6
                                ¦     ¦     ¦
                                ¦     ¦     ¦
                     ЪДДДДДДДДДДЩ     ¦     АДДДДДДДДДД¬
                     ¦                ¦                ¦
                                                     
            ЪДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДД¬
            ¦ 0011      0010 ¦ 0011      0101  ¦ 0011      0110  ¦
            АДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДЩ
                  7.......0       7........0        7........0
                      ¦               ¦                  ¦
                                                       
                   32(Hex)         35(Hex)            36(Hex)
                      ¦               ¦                  ¦
                      АДДДДДДД¬       ¦        ЪДДДДДДДДДЩ
            Формат ASCII                     


                Рис.10-5. Преобразования между числами ASCII и BCD

             Эта форма данных применяется NPX только для загрузки и хране-
         ния чисел. Ни одна из арифметических команд не может использовать
         форму  упакованного BCD.  Даже с учетом этого ограничения команды
         загрузки и хранения упакованного BCD являются двумя наиболее  по-
         лезными командами NPX. Это происходит ввиду того, что способность
         вычислять ничего не стоит без возможности передать результаты вы-
         числений  пользователю,  а большинство людей применяют для записи
         чисел с плавающей запятой десятичную систему счисления.
             NPX обеспечивает  возможность преобразования десятичных чисел
         в двоичные и обратно. Программист должен только следить за преоб-
         разованиями  между  строками ASCII и упакованным BCD,  а также за
         правильным расположением десятичной точки (мы  рассмотрим  это  в
         разделе,  посвященном  преобразованию между десятичными числами и
         двоичными числами с плавающей запятой).  NPX следит за  всем  ос-
         тальным.


                              Коротко о типах данных

             В таблице 10-2 мы рассмотрели  размер  чисел,  которые  могут
         быть  представлены  каждым  типом данных вместе с приблизительным
         десятичным разрешением (количество значащих цифр), поддерживающим
         каждый  тип данных.  Для реального использования мы можем пореко-
         мендовать следующее: Использовать упакованный BCD для перехода от
         чисел  ASCII к вещественным числам с плавающей запятой и обратно.
         Использовать вещественные числа с плавающей запятой для всех  вы-

                                      - 10-8 -
         числений  и  для представления в MASM констант вещественных чисел
         (мы рассмотрим это позже). А также использовать форму минимально-
         го целого, пригодную для числа, выражающего константу целого чис-
         ла в MASM.  Следуя этим указаниям мы  можем  получить  наибольшую
         точность  с  некоторым сохранением объема памяти путем применения
         где возможно формы меньшего целого.
             Рисунок 10-6  демонстрирует  диапазон  представления  числа в
         NPX.  Обратите внимание, что NPX хранит числа с большей точностью
         внутри  (80-битовое вещественное),  чем при загрузке и сохранении
         регистров NPX (длинное вещественное). Это дает дополнительный за-
         пас точности для вычислений. Отметьте также, что пробел между от-
                                                         Таблица 10-2
                       Диапазон и точность типов данных NPX
         ДДДДДДДДДДДДВДДДДДДДДДВДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
         Тип данных  ¦ Двоичные¦Десятичные¦ Приблизительный диапазон
                     ¦ биты    ¦цифры     ¦
         ДДДДДДДДДДДД†ДДДДДДДДД†ДДДДДДДДДД†ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
         Вещественное¦         ¦          ¦
         с плавающей ¦         ¦          ¦
         запятой     ¦  80     ¦  19      ¦ 3.4х10(-4932)             ДДДДДДДДДДДДДДДДДДДД>
         уменьшается к 0                увеличивается к бесконечности

                   Рис.10-6. Диапазон представления чисел в NPX

                                      - 10-9 -
         дельными представляемыми числами (расстояние между двумя смежными
         числами,  которые NPX может представить точно) уменьшается к нулю
         (в обоих направлениях) и увеличивается к бесконечности  (плюс или
         минус).  Эта плотность представления числа подразумевает, что NPX
         с большей точностью обрабатывает очень  маленькие  числа,  нежели
         большие.

                                 Набор команд NPX

             NPX имеет то,  что в индустрии называется богатым набором ко-
         манд. Это не обязательно означает, что имеется много команд (хотя
         он имеет 69 различных команд),  а то,  что  набор  команд  хорошо
         приспособлен для выполнения требуемых операций. Существуют коман-
         ды почти для каждой операции, что значительно сокращает количест-
         во шагов (и соответствующих трудностей при программировании), ко-
         торые могут встретиться при использовании менее мощного числового
         сопроцессора.
             В таблице 10-3 приведены 69 команд.  Таблица организована  по
         типам  выполняемых операций,  а не в алфавитном порядке,  так как
         предпочтительнее искать команду по типу, чем по имени. Необходимо
         пояснить два обозначения,  присутствующие в таблице 10-3. Сначала
         отметку (P), появляющуюся в некоторых командах. Это означает, что
         соответствующая  команда  может  быть  использована  в форме POP,
Предыдущая страница Следующая страница
1 ... 133 134 135 136 137 138 139  140 141 142 143 144 145 146 ... 198
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 

Реклама