На главную
Подписка
Новости










Главная / MS-DOS / MS-DOS. РУКОВОДСТВО РАЗРАБОТЧИКА / Глава 10 / Операции с целым Сделать домашней страницей Добавить в избранное Написать писмо

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Операции с целым

Выполнить преобразование целого в двоичный код на NPX просто, благодаря наличию команд загрузки и хранения упакованного BCD FBLD и FBSTR. Все что нужно, это простая программа главного центрального процессора для упаковки цифр BCD из строк ASCII и их распаковки. Для перехода из десятичного кода в двоичный, загрузите десятичное число с помощью FBLD и затем выполнить команду записи десятичного, FBSTP.


Обратите внимание, что если преобразованные числа малы для заполнения 16-битого регистра (или 32-битового регистра в 8038), необязательно использовать NPX для перевода из десятичного формата в двоичный. Это связано с тем, что упаковка цифр и выполнение последовательности FBLD-FIST требует больше времени, чем следующая стандартная программа преобразования с использованием "многократного сдвига":


; Предполагаемое число аккумулировано в AX, а новая цифра
; находится в регистре CL.
    shr   ax,1; имеющееся число x 2
    mov   bx,ax        ; сохранить
    shr   ax,1; число х 4
    sch   ax,1; число х 8
    add   ax,bx        ; (# x 8) + (# x 2) = # x 10
    xor   ch,ch        ; подготовить к 16-битовому добавлению
    add   ax,cx        ; добавлена следующая цифра

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


Если числа больше 16 двоичных битов, главный центральный процессор начинает работать медленнее, так как он должен постоянно выполнять проверку на наличие переноса, возможных переполнений и потерь значимости, и так далее. В диапазоне от 16 до 64 двоичных битов, NPX выполняет операции преобразования чрезвычайно быстро!


Так как длина числа не превышает 18 десятичных цифр (что трудно достичь!), то не требуются операции NPX, связанные с командами загрузки и сохранения. Как только длина чисел превышает 18 цифр, они должны быть масштабированы, и мы входим в область вещественных чисел с плавающей запятой.


НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Hosted by uCoz