Такое расположение делает простым переход
Такое расположение делает простым переход от двойной точности к обычной через слово
DROP. Расширение двойных чисел включает следующие слова:
2DROP AA ---> 2DUP AA ---> AA,AA 2OVER AA,BB ---> AA,BB,AA 2ROT AA,BB,CC ---> BB,CC,AA 2SWAP AA,BB ---> BB,AA D. AA ---> D+ AA,BB ---> сумма AA+BB D- AA,BB ---> разность AA-BB DABS AA ---> абсолютная величина AA DNEGATE AA ---> число с обратный знаком -AA
Здесь обозначение типа AA подчеркивает, что значение занимает два элемента стека. Хотя стандартное расширение этого не предусматривает, во многих реализациях языка Форт этот ряд продолжают операции умножения и деления:
D* AA,BB ---> произведенме AA*BB D/ AA,BB ---> частное от AA/BB DMOD AA,BB ---> остаток от AA/BB
Операндами и результатами перечисленных слов являются значения двойной длины, занимающие по два элемента стека каждый; это обстоятельство отражено в мнемонике, начинающейся с цифры 2, когда два элемента стека выступают как одно целое, или с буквы D (от слова DOUBLE — двойной), когда речь идет арифметическом значении двойной длины.
Следующие два слова являются переходными между арифметическими операциями одинарной и двойной точности; их мнемоника включает букву M (от слова MIX — смесь) и U (от слова UNSIGNED — беззнаковый):
UM* A,B ---> CC UM/MOD AA,B ---> C,D
Слово
UM* перемножает операнды A и B как 16-разрядные числа без знака, возвращая все 32 разряда получившегося произведения. Слово
UM/MOD рассматривает 32-разрядное делимое AA и 16-разрядный делитель B как числа без знака и возвращает получающиеся 16-разрядные остаток C и частное D. Если делитель нуль или частное превышает 65535, то это рассматривается как ошибка. Для перехода к двойной точности с учетом знака многие реализации имеют слово
S>D A --> AA, которое расширяет исходное число A до числа двойной точности распространением знакового разряда.
Чтобы при вводе различать числа двойной и одинарной точности, в сформулированное выше правило умолчания внесена оговорка: если не найденное в словаре слово состоит только из цифр с возможным начальным знаком минус, то это число одинарной точности, а если в слово входят точки (в любом месте), то это число двойной длины.Пример использования форт-системы как калькулятора для работы с числами двойной длины представляет следующий протокол работы:
> 1234567. 7654321. D+ D. 8888888 ОК
В ответ на приглашение (знак
> ) программист вводит два числа двойной длины, операцию сложения этих чисел и операцию печати результата. Выполняя указанные действия, форт-система печатает ответ (заметьте, что он уже не содержит точки) и подтверждающее сообщение
ОК.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий