Подождите немного, ближе к вечеру выложу результаты по DEC-у. Довольно интересные.
- - - Добавлено - - -
Для работы с числами с плавающей запятой в PDP-11 применяются команды FIS и FP-11.
Команды FIS используют только вещественные числа одинарной точности и имеют только четыре команды - FADD (сложение), FSUB (вычитание), FMUL (умножение) и FDIV (деление). Эти команды реализованы на PDP-11 35/40 (блок KE11-F) и LSI-11 (блок KEV-11). Соответственно, есть эти команды на "Электронике-60", как функциональном аналоге LSI-11. В процессорах серии 1801/1806 эти команды на аппаратном уровне не реализованы, но процессоры 1801ВМ2 и 1806ВМ2 содержат аппаратную поддержку для программной эмуляции команд FIS. Суть этой поддержки состоит в том, что при исполнении команд FIS процессор производит прерывание в HALT-режим по вектору SEL010, и данный вектор содержит адрес программы эмуляции команд FIS обычными командами микропроцессора. Данные эмуляторы FIS есть в УКНЦ, ДВК на базе платы МС1201.02 и в Союз-Неон ПК-11/16.
Команды FP-11 содержат более большой набор команд и могут работать с вещественными числами как одинарной, так и двойной точности. Реализованы во многих системах PDP-11, например на базе процессора J-11. В отечественной схемотехнике это сборки 1811 (аналог F-11), 1831 (аналог J-11) и сопроцессор 1801ВМ4, работающий в паре с 1801ВМ3.
Вещественные числа одинарной точности представляются следующим образом:
15 14 07 06 00 s Порядок Старшая часть мантиссы
15 00 Младшая часть мантиссы
S - знаковый разряд, 1 - это минус. Порядок задается числом от 0 до 255, при этом порядок равный нулю используется для задания вещественного нуля, в иных случах он интерпретируется как 2(порядок-128), т.е. порядок может принимать значения от 2-127 до 2+127, или от 5,877471761E-39 до 1,7014118326E+38. Мантисса – 23 разряда дробной части с двоичной запятой слева. Мантисса всегда нормализована, то есть самый старший разряд справа от двоичной запятой всегда равен единице, является скрытым (избыточным) и он интерпретируется как 2–1. Остальные разряды мантиссы интерпретируются от 2–2 до 2–24. Соответственно, мантисса может принимать значения от 0.5 до 0.99999994. Таким образом вещественное число представляется формулой знак*2(порядок-128)*мантисса. По абсолютной величине самое малое число составляет 2.9387358805E–39, а самое большое 1,7014117311E+38.
Вещественные числа двойной точности уже состоят из 64 разрядов, при этом размер порядка остался таким же, а мантисса соответственно увеличена на 32 разряда, итого 55 разрядов. Таким образом диапазон представления остался таким же, а точность увеличена.
Для тестов удобно использовать языки высокого уровня Паскаль и Си для операционной системы RT-11. Язык Паскаль использует для операций с числами с плавающей запятой команды FIS (в Паскале это тип real), а язык Си команды FP-11 (тип float для чисел одинарной точности и тип double для чисел двойной точности). В данных языках предусмотрено, что на запускаемых системах могут отсутствовать команды FIS и FP-11 и при линковке к исполнимым модулям добавляются эмуляторы данных команд. При отсутствии команд возникает прерывание TRAP10 и программы при старте с помощью системного запроса .TRPSET перехватывают вектор 10. Если же перед запуском программы изменить вектор 10 с помощью команды D=10 12,0, то при первом применении команд FIS/FP-11 произойдет выход в пульт. Так можно узнать, есть ли аппаратная поддержка этих команд.
Далее будут тестовые программы на Паскале и Си и результаты их работы.





Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
