|
|
|
|
Операции с целым
Выполнить преобразование целого в двоичный код на 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 цифр, они должны быть масштабированы, и мы входим в область
вещественных чисел с плавающей запятой.
|
|