/
Text
МАЛАЯ УНИВЕРСАЛЬНАЯ ЭЛЕКТРОННАЯ
ЦИФРОВАЯ ВЫЧИСЛИТЕЛЬНАЯ МАШИНА
„СЕТУНЬ"
МАТЕМАТИЧЕСКОЕ ОПИСАНИЕ
ВО «МАШПРИБОРИНТОРГ»
СССР
МОСКВА
65-8
ЭО^н
УСЛОВНЫЕ СОКРАЩЕНИЯ
УМ - умножение
Дел - деление
БП - безусловный переход
Норм - нормализация
УП - условный переход
ИП-2 - интерпретирующая программа
Об.вч - обратное вычитание
Об.сл - обратное сложение
пр - пропуск
пч - подчеркивание
ст - стоп
вк - возврат каретки
пс - перевод строки
цр - цифровой регистр
бр - буквенный регистр
пб - пробел
вч - вычитание
вч мд - вычитание модуля
(х) бл - ближайшее целое число х
св» ячейка - свободная ячейка
кс - контрольная сумма
вх - вход
сдв - сдвиг
условное обозначение знака числа
МБ - магнитный барабан
ПРЕДИСЛОВИЕ
В данной работе дается описание машины "Сетунь”,
некоторых особенностей программирования на ней, а
также система математического обслуживания с использова-
нием интерпретирующей программы и библиотеки стандартных
подпрограмм для выполнения арифметических действий и
вычисления основных элементарных функций в системе пла-
вающей запятой. Библиотека подпрограмм,приводимая в данной
работе, является далеко не полной. В частности,в ней нет
подпрограмм для вычисления обратных тригонометрических
функций,подпрограмм для перевода чисел из десятичной систе-
мы в троичную и обратно,а также нет программ,реализующих
какие-либо методы решения арифметических задач ( решения
систем линейных алгебраических уравнений,вычисления ин-
тегралов и т.д.). Однако ряд таких подпрограмм уже разработан и
практически используется. Описание их приводится в отдельных
работах сотрудников Московского Государственного университета.
Эти подпрограммы удовлетворяют всем требованиям интер-
претирующей системы, описываемой в данной работе,и поэтому
с успехом могут использоваться с другими подпрограммами
этой системы:
I. Подпрограмма ввода и перевода чисел из десятичной
системы в троичную.
2. Подпрограмма перевода чисел из троичной системы
счисления в десятичную и их печати.
3 Подпрограмма вычисления azctq и.
4. Подпрограмма для вычисления определенных интегралов.
5. Программа для решения систем линейных алгебраи-
ческих уравнений.
6. Программа для интегрирования систем обыкновенных
уравнений методом Эйлера.
Эта библиотека со временем будет дополнена и дру-
гими программами.
Кроме интепретирующей программы ИП-2 разрабатываются
и другие интерпретирующие системы,отличающиеся в основном
разными формами представления чисел ( например, система для
комплексных чисел и т.д.).
О
Лица, интересующиеся только программированием на маши-
не "Сетунь”, могут ограничиться знакомством с § 1-5. Для
использования описываемой интерпретирующей системы достаточ-
но дополнительного знакомства с § 6-7 и 14. Материал остальных
параграфов может быть полезен лицам,занимающимся составле-
нием подпрограмм для вычисления элементарных функций или
при необходимости внесения некоторых исправлений в ту или
иную подпрограмму. Кроме то го, приводимые в данной работе
программы являются хорошим иллюстративным материалом для овла-
дения техникой программирования на машине "Сетунь".
§ I. Троичная система счисления.
Различные позиционные системы счисления основаны на
представлении числа х в виде
X - (lit (V
где - целое число, являющееся основанием системы счис-
ления^ коэффициенты £< , принимающие различных
значений, обозначаются цифрами этой системы счисления.
Такое представление числа х принято сокращенно записы-
вать следующим образом
х = (.е1ег...(т,ет1 ...к ...) у (г)
В большинстве случаев очевидно,о какой системе
счисления идет речь,и поэтому скобки с указанием основания
системы в записи (2) могут отсутствовать.
При равном десяти и
6 = 0,1,2,3,4,5,6,7,8,9,
мы имеем дело с десятичной системой счисления,широко приме-
няемой в повседневной практике. Однако такая система невыгодна
для построения вычислительных машин.
Известен следующий факт. Если для реализации одного
разряда - ричной системы счисления ..требуется эле-
ментов,то наименьшее число элементов для представления
многозначных чисел потребуется при <J,= е = 2,7 ...
Но так как основание системы счисления должно быть
целым,то наиболее выгодными оказываются системы счисления
с основаниями близкими к Р , т.е. двоичная и троичная,
3
причем последняя несколько выгоднее двоичной.
Большинство элементов,на основании которых строятся электронные
вычислительные машины, имеют два резко ограниченных состоя-
ния, что позволяет реализовать двоичный разряд не на двух
элементах,а на одном. Построение же элементов с числом резко
ограниченных состояний большим двух встречает серьезные
трудности. Этим и объясняется тот факт, что большинство сов-
ременных вычислительных машин базируется на двоичной системе
счисления. Кроме указанного достоинства в двоичной системе
счисления очень просто реализуются основные арифметические
действия ( значительно проще, чем^апример, в десятичной
системе счисления ).
При наличии троичного элемента, т.е. элемента с тремя
резко ограниченными состояниями, троичная система счисления
оказывается для построения вычислительных машин более чем
в полтора раза выгоднее двоичной. В дальнейшем мы будем
подробно рассматривать лишь троичную систему счисления.
В обычной троичной системе цифры El принимают три
следующих значения: 0,1 и 2. Для построения вычислительных
машин удобнее другая, сокращенная, троичная система, в
которой цифры El принимают значения 0,1 и I ( будем обоз-
начать в дальнейшем цифру „-I" символом I ).
Десятичные цифры,например,в этой системе представляются
следующим образом:
0-0,2-II, 3-10, 4~ПГ
5- Ш, 6 - НО, 7 - III, 8 - 101, 9 - 100.
В этой системе счисления,так же как и в двоичной,
довольно просто выполняются основные арифметические действия
( сложение, вычитание,умножение ).
Так указанные действия над однозначными числами
определяются следующими таблицами:
Таблица сложения
I+I = и 0+1=1 1+1=0
1+0=1 0+0=0 1+0=1 ( 3 )
1+1=0 0+1=1 1+1=11
4
Таблица вычитания
1-1=0 0-1=1 1-1=11 ( 4 )
1-0=1 0-0=0 1-0=1
1-1=11 0-1=1 1-1=0
Таблица умножения
1x1=1 0x1=0 1x1=1
1x0=0 0x0=0 1x0=0
1x1=1 0x1=0 1x1=1 ( 5 )
Пользуясь этими таблицами,а также известными правилами,
справедливыми для любой системы счисления,такими,как,напри-
мер, добавление единицы переноса в старший разряд при сложении
или сдвиг множимого на один разряд влево при умножении на
каждый следующий ( если идти справа налево ) разряд множителя,
легко понять арифметические действия над многозначными
троичными числами. Мы ограничимся здесь двумя примерами.
Пример I; = 385
+ ___ _
IOIOIOI = 656
III0H0 = 1041
Пример 2: IOIIO = 75
х-----
ИОН = 50
IOIIO
+ 10П0
iorio
IOIIO
IIIOIIOIO = 3750
Представление чисел в этой системе счисления имеет
ряд интересных особенностей. Так,например, для представле-
ния чисел в этой системе не требуется специального символа
для знака числа;знак числа учитывается в разрядах цифровой
части и определяется знаком старшей значащей цифры
5
троичного представления этого’числа (сравните 6 ~110 и -
6~1 10). Таким образом, изменение знака числа равносиль-
но изменению знака каждой цифры троичного представления
этого числа.
Поэтому вычитание двух чисел сводится к их сложению измене-
нием знака каждой цифры вычитаемого на противоположный.
Очень важное значение имеет тот факт, что наилучшее ок-
ругление числа х до к верных троичных знаков получается
отбрасыванием младших знаков, начиная с ( к +
Действительно, если X = (£ Ес'3~^)‘Зтt
1)
(1')
(2')
т.е
то
можно представить в виде:
где
и
ИЛИ
L-KU
Ясно,ЧТО
К-т
т-к
(6)
всех к-знач-
ИЗ
Отсюда следует вышеуказанное утверждение, что
ных троичных чисел ближайшим к числу является
..частности, ближайшим целым числа х является
число
JCт £<Ее Ет.. (7)
Эта особенность позволяет в вычислительной машине, базирую-
щейся на сокращенной троичной системе счисления, очень просто
производить округление при выполнении арифметических опера-
ций над числами.
При использовании троичной системы счисления возникает
необходимость перевода чисел из троичной системы в десятичную
6
и наоборот, из десятичной системы счисления в троичную. В
этом параграфе рассматриваются лишь способы ручного перевода
из одной системы в другую, предполагая, что все действия
выполняются в десятичной системе счисления.
В этом случае перевод в десятичную систему числа х , представ-
ленного в троичной системе в виде записи (2), сводится к вы-
числению выражения (15 подстановкой в это выражение значений
из записи (25.
Другими словами,нужно просуммировать те степени числа
3, которые соответствуют значению разрядов записи (2) с £с =1,
и вычесть те степени числа 3, которые соответствуют значению
разрядов записи (2) cEi. =1. Например, если х = 1011,1101,
то его можно представить в вцце
х = з3- з' + 3% з'- 3% 3*—
27 - 3 + 1 + 0.333333-
- 0.111111 + 0.012346,
т.е. 25,234568.
Для получения результата перевода с п верными десятич-
ными знаками после запятой, необходимо отрицательные степени
числа 3 брать с ( /7+1) верным десятичным знаком после за-
пятой. В нашем примере отрицательные степени числа 3 брались
с шестью верными знаками, поэтому результат перевода получен
во всяком случае с пятью верными знаками после запятой.
Перевод в троичную систему производится последовательным
определением значений Ei записи (2) для I = 1,2,3,.........7 К,
где к определяется требуемой точностью перевода.
Рассмотрим сначала способ перевода в троичную систему
чисел х удовлетворяющих неравенству
Л Л
Ясно,что в троичной системе такое число будет иметь
вид:
X- O,EtE& ... Ек (8)
к
т*е« JT = £ , где Ес - троичные цифры
7
( Ес = 0,1 и -1), которые необходимо определить. В силу соот-
ношения (7),6/ является ближайшей целой частью числа Зх,
т.е. Е/= [Зх]сГл • Положим X - Зх.- ЕЗх~]<Гл .
Очевидно, IX,/< , но знак числа х, , вообще говоря, может
не совпадать со знаком числа х . Применив к х t тот же самый
прием, получим Ег'ЕЗх^сЕл .
Таким образом, положив х~Хо , можно выписать сле-
дующие рекурентные соотношения для получения троичных цифр <57 :
Л = [Зх c-<J<f/) 1
= 1’2’3 ........ (9)
Этот процесс определения El легко осуществляется на любой
настольной счетной машине , только требует дополнительного за-
поминания каждой смены знаков чисел.
Например: переведем в троичную систолу число 0,3 :
Е, =1 Х, = 0,9-1 = - 0,1
6 =£0,§<Г/?= О Хг= 0,3-0 = -0,3
6 =£O,9/J>=-1 Ъ =-0,9+1 = 0,1
6=fO,3]cT/7= 0 -27=0,3-0 = 0,3
Е5=[О^(Гл= 1 0,9-1 = - 0,1
Далее очевидна переодичность чередования цифр.
Таким образом, ( 0,3)^= 0,10101010... (10)
Перевод произвольного числа х в троичную систему сво-
дится к рассмотренномуслучаю умножением х на число
Зг, (х/-Згх , а из троичного представления (8) числа
X- Згтроичное представление числа х получается переносом
запятой в записи (8) на 2 разрядов вправо при 7^0 и
влево при 7 >О •
Например, для перевода в троичную систему числа 24,3
нужно умножить его на 3 1/81. Тогда число 0,3 = 24,3x3
имеет троичное представление (10). После переноса в записи
(10) запятой на четыре разряда вправо получим:
24,3 = 10 10, 1010...
Однако для перевода целых чисел в троичную систему
8
можно указать другой более простой способ. Пусть целое
число X записывается в троичной системе в виде
X ~ 6/ 6? .. Ет
т
т.е» 3m~L , где Её - троичные цифры, которые
с-7
необходимо определить. Ив соотношения (7) следует, что
6/77=
Если положить х, [%]({/? , то применив к числу xt
тот же прием, получим:
Етч = xf-3
Таким образом, положив х * можно выписать следую-
щие рекурентные соотношения для получения троичных цифр 6/7?-/,'
JCl+i -
Этот процесс продолжается до тех пор,пока не будетХт-0
Например, переведем в троичную систему число 62:
63 _21 / 3
-10 0
1
Отсюда получаем: (62)^г = 1110 1.
Условимся в дальнейшем произвольную последователь-
ность троичных цифр б, Е& • Ек называть троичным кодом
(троичным словом)»
Для сокращения записи троичных кодов используются
цифры tki так называемой сокращенной девятеричной системы
счисления, где
= - 4, - 3, - 2, - 1, 0, 1, 2, 3, 4.
Цифры - 4, - 3, - 2, - 1 будем обовначать символами
4, 3, 2 и 1,соответственно.
9
Для сокращения записи любая пара 6^/ смежных
цифр троичного кода может быть заменена соответствующей
девятеричной цифрой с4/ . Соответствие между девятеричны-
ми цифрами и парами троичных цифр устанавливается следующим
образом:
4—11, 3-10, 2 — 11, 1-01, 0-00,
1-01, 2-11, 3-10, 4-11.
Например, троичный код
101100111101
может быть сокращенно записан следующим образом:
32042?
Ниже приводится таблица степеней числа 3, кото-
рая окажется полезной, как при переводе чисел из троичной
системы в десятичную, так и при других действиях, связанных
с использованием троичной системы счисления.
10
Степени числа 3
Таблица I
п з" з_/? -—
0 1 1,000 000 000 0
1 3 0,333 333 333 3
2 9 0,111 111 111 1
3 27 0,037 037 037 0
4 81 0,012 345 679 0
5 243 0,004 115 226 3
6 729 0,001 371 742 1
7 2 187 0,000 457 247 4
8 6 561 0,000 152 415 8
9 19 683 0,000 050 805 3
10 59 049 0,000 016 935 1
11 177 147 0,000 005 645 0
12 531 441 0,000 001 881 7
13 1 594 323 0,000 000 627 2
14 4 782 969 0,000 000 209 1
15 14 348 907 0,000 000 069 7
16 43 046 721 0,000 000 023 2
17 129 140 163 0,000 000 007 7
18 387 420 489 0,000 000 002 6
19 1 162 261 467 0,000 000 000 9
20 3 486 784 401 0,000 000 000 3
II
§ 2. Краткая характеристика и система
команд машины " Сетунь”.
Вычислительная машина "Сетунь" является малогабаритной
одноадресной машиной последовательного действия с фиксирован-
ной запятой. В качестве системы счисления используется троич-
наяХусистема с цифрами - 1,0,1. Машина оперирует с 18- ти
разрядными (длинными) и 9- ти разрядными (короткими) троичны-
ми кодами. Все команды являются 9~ти разрядными кодами
' а ' е ’
причем старшие пять разрядов команды образуют адресную часть
й , а младшие четыре разряда образуют код операции В с
признаком модификации команды TTf • Числа могут быть как 9- ти
разрядные, так и 18-ти разрядные, причем запятая стоит всегда
после второго разряда, т.е. все числа по модулю меньше 4,5.
С точки зрения точности представления чисел 18 троичных
разрядов, примерно, соответствуют 29 двоичным. Оперативную
( ферритовую) память машины составляет 81 ячейка, в каждой
из которой может храниться либо один длинный, либо два ко-
ротких кода.
При использовании только этой памяти машина выполняет
в среднем 4500 операций в секунду. Оперативную память можно
условно разбить на три зоны ЗД , «(=-1,0, 1, в каждой
х/ В машине используются феррито-диодные элементы, позволяю-
щие реализовать три устойчивых состояния.
Применение троичной системы в этих условиях привело к сок-
ращению оборудования в ряде устройств машины.
12
из которых может храниться по 54 коротких кода. Адреса
ячеек каждой зоны имеют одно и тоже значение старшего
троичного разряда, являющегося, по существу, признаком
зоны оперативной памяти 7Тср=<*- . Следовательно, адреса
ячеек оперативной памяти, а также адресную часть команд
можно представить в виде [\ = ТГср &,
где Л означает номер строки в зоне с признаком тт<р г
причем младший из четырех разрядов Л является призна-
ком длины кода 77^ , к которому относится данный адрес
( при lTft - - 1 адрес относится к длинному коду, при
7^= О или 7Гн = 1 адрес относится соответственно к первому
или ко второму коротким кодам, составляющим один длинный
код).
Основной памятью машины "Сетунь" является магнитный
барабан, способный хранить 36 зонх4ю 54 коротких кода,
т.е. всего на магнитном барабане может хранится 1944
коротких кода. Обмен информацией между магнитным бараба-
ном и оперативной памятью производится зонами, а именно:
любая зона магнитного барабана ( оперативной памяти) мо-
жет быть считана (записана) в любую зону оперативной па-
мяти ( магнитного барабана). При этом адресная часть/7
команд указанного обмена информацией имеет следующий вид:
в ~ 7Гф М>
где Лер по - прежнему является признаком зоны оперативной
памяти, а М является номером зоны магнитного барабана, с
которой связан обмен информацией. Существующие зоны маг-
нитного барабана имеют номера ( в девятеричной системе
счисления) 14, 13, 12........... 43, 44.
х/ В ближайшее время емкость этой памяти ( число зон)
будет удвоена.
13
При увеличении емкости магнитного барабана новые
зоны будут иметь номера
44, 43, 42...........13, 14.
Магнитный барабан вращается со скоростью
6000 об/мин. Вдоль образующей барабана размещается четыре
зоны. Следовательно, время считывания ( записи) одной зоны
( 54 коротких кода) в среднем равно 7500 мксек.,что сос-
тавляет примерно время выполнения 34 команд.
Кроме описанных видов памяти машина "Сетунь” имеет
четыре регистра, доступных для программиста:
1) 18-ти разрядный регистр S , с которым связано
выполнение большинства операций;
2) 18-ти разрядный регистр А , используемый при выпол-
нении операций умножения;
3) 5-ти разрядный регистр модификации F ( индекс-ре-
гистр), который позволяет при выполнении команды A6J/F
использовать в качестве ее адресной части код
(модифицированный адрес)
/7* = /ГД ’ (PHmod
где (F ) означает содержимое регистра F ;
4) 5-ти разрядный регистр управления С , в котором
содержится адрес выполняемой команды. После выполнения каж-
дой команды в регистре С формируется адрес следующей ко-
манды;
х/ Ясно,что А**А 'при JiF = 0. В остальных случаях адрес-
ная часть А увеличивается или уменьшается на содержимое
регистра F .
14
причем за командой, являющейся первым коротким кодом какой-
либо ячейки, следует команда, являющаяся вторым коротким ко-
дом этой ячейки, а вслед за ней - команда, являющаяся первым
коротким кодом следующей ячейки и т.д. Этот порядок может
быть нарушен при выполнении команд перехода.
Содержимое каждого из первых трех регистров сохраняется
неизменным до тех пор, пока в соответствующий регистр не бу-
дет послан результат выполнения какой-либо команды. При выпол-
нении команд, использующих регистры F и С , операции произво-
дятся над пятиразрядными кодами, которые можно рассматривать
как целые числа.
При выборке из памяти пятиразрядный код рассматривается как
старшие пять разрядов соответствующего короткого кода; при
запоминании в ячейке памяти пятиразрядный код записывается
в старшие пять разрядов и дополняется до соответствующего
короткого или длинного кода записью нулей в остальные разряды.
При выполнении команд, использующих регистры 5 и Л, выбира-
емые из памяти короткие коды рассматриваются как длинные с
добавлением нулей в девять младших разрядов, а в оперативную
память в качестве короткого кода записывается содержимое де-
вяти старших разрядов регистра 5 ( записать в оперативную
память непосредственно из регистра К невозможно).
В таблице 2 приведена система команд машины "Сетунь".
В ней код операции вместе с признаком модификации,положенным
равным нулю, записывается с помощью двух девятеричных цифр.
При этом цифры с черточкой на верху обозначают соответствую-
щие "отрицательные" цифры ( например, символ 3 обозначает
Цифру - 3).
При написании команд к такому колу операции необходимо
прибавить значения признака модификации команды ( если, ко-
нечно, оно отлично от нуля).
15
Система команд машины "Сетунь"
Таблица 2
Код опе- рации Наименование операции Содержание команды /7 QJ!f Выработ- ка (a) Время выполнения команды
33 Считывание с МБ сохраня- ется 7500 мксек.
30 Ввод-вывод См. таблицу 3 сохран. 7500мксек.
33 Запись на МБ сохран. 7500 мксек.
23 Нормализация Норм ,) й?(5) (275+51V1) мксек.
20 Сдвиг W(S) (290+51Л/1)
мксек.
23 Запись из S (5) Ю Cd (5) 225 мксек.
13 Сложение в F (F) и (Ft 180 мксек.
10 Посылка в F СО (F) 180 мксек.
13 Сложение в С с ПОСЫПКОЙ BF ЦГ) + (С)-^Р 180 мксек.
03 Запись из F (F)^ 1в*) CO{F) 180 мксек.
00 Безусловный переход ( БП) /?* (с) сохран. 100 мксек.
03 Запись из С сохран. 180 мксек.
13 Условный пере- ход УП-1 A* ==^(C jnpu to=7 сохран. 100,180 мксек.
10 Условный переход УП-0 при CO=O сохран. 100,180 мксек.
13 Условный пере- ход УП-1 A* =^(c)npu ю=ч сохран. 100,180 мксек.
23 Останов Останов: (/Г) =^(R;
16
Продолжение
Код опе- рации Наименование операции Содержание команды A6Jif Выработ- ка а) Время вы- полнения команды
20 Поразрядное умножение U(S) 180 мксек.
23 Посылка в R (Я*; -* (R) u)(R) 180 мксек.
33 Вычитание в S (5)-(fT)^(s) CJ (S) 180 мксек.
30 Посылка в 5 (в*) -» (з; Си (5) 180 мксек.
33 Сложение в 5 (S) * (йг) * (5) u>(s) 180 мксек.
43 Умножение - 1 (S) W(S) 325 мксек.
40 Умножение - 0 10(8) 325 мксек.
43 Умножение - 1 (S)4R')W^(5) ' LV (S) 325 мксек.
Примечание.
Операции с кодом 43,40,43 в настоящее время не
используются. Они предназначены для действий с магнитной
лентой.
17
Кроме того, используются следующие обозначения:
символы [м] или f 9-W обозначают содержимое зоны Л/ магнитного
барабана или соответственно зоны фс( оперативной памяти;
символы (А), (5), (Л), (Г), и {С) обозначают соответственно
содержимое ячейки А оперативной памяти, регистров S,R,Fu С;
символ => обозначает посылку результата или содержимого зоны,
указанных слева от этого символа, на место величины или со-
ответственно содержимого зоны, указанных справа от этого сим-
вола. Например, запись (S ) Ф (А ) означает: послать содержи-
мое регистра S на место содержимого ячейки А.
Г. V*/
Звездочкой помечаются модифицированные адреса или их
составные части.
После выполнения каждой команды вырабатывается значение
некоторого признака и> по формулех/
где Jf - обозначает какой - либо регистр, или сохраняет пре-
дыдущее значение этого признака. Команды условного перехода
выполняются по-разному в зависимости от значения этого приз-
нака 1л) . При выполнении операций сложения, вычитания и умно-
жения, использующих регистр S , может произойти останов маши-
ны по переполнению, еели результат выполнения этой операции^
посылаемый в регистр^окажется по модулю больше 4,5.
(+ 1 при С*) > О
(- 1 йк О
18
Операция сдвига производит сдвиг содержимого регистра
(5 ) на (Л</разрядов , где Л7 рассматривается как пятиразрядный
код, хранящийся в ячейке Я* , т.е. Л/ = (/?*).
Сдвиг влево производится при N>0 и вправо при N< 0.
При /V = С содержимое регистра 5 не изменяется.
Операция нормализации производит сдвиг (5 ) при
(5/^0 в таком направлении и на такое число разрядов / /V/ ,
чтобы результат, посылаемый в ячейгу Я* , был по модулю
больше 1/2, не меньше 3/2, т.е. чтобы в двух старших разря-
дах результата была записана комбинация троичных цифр 01 или
01. При этом в регистр 5 посылается число V ( пятиразрядный
код), знак которого определяется направлением сдвига, а именно
N>0 при сдвиге вправо и при сдвиге влево. При
(%М 0 или при 1/2 < 1(3)1 гС 3/2 в ячейку /\* посылается (5)
а в регистр 8 посылается (V = 0.
Остальные операции, содержащиеся в таблице 2, ясны без
дополнительных пояснений.
§ 3. Систала ввода и вывода
Информация в машину "Сетунь” вводится с пятипозицион-
ной перфоленты. При этом используются два фототрансмиттера,
которые производят считывание информации с перфоленты. Каждый
из этих фототрансмиттеров производит считывание информации
по специальным командам, которые встречаются в процессе выпол-
нения программы. Кроме того фототрансмиттер № 1 производит
считывание при нажатии кнопки "начальный пуск" на пульте уп-
равления ( см. § 4). Эти фототрансмиттеры могут работать по-
переменно в любой последовательности, задаваемой соответствую-
щей программой. Это дает возможность иметь два независимых
потока информации, вводимой в машину,Фототрансмиттер М 2 на
ряде машин может отсутствовать, если характер решаемых задач
не требует на этих машинах двух независимых потоков вводимой
информации.
19
Информация, вводимая в машину каждым из фототрансмиттеров,
монет восприниматься машиной двумя различными способами в за-
висимости от вида выполняемой команды ввода: либо эта информа-
ция воспринимается в качестве последовательности команд и дру-
гих коротких троичных кодов, либо она воспринимается как после-
довательность некоторых символов из фиксированного для данной
машины набора ( см. таблицу 3). При вводе троичных кодов каж-
дый короткий код задается пятью девятеричными цифрами (пятью
строками информации на перфоленте), причем значение старлей
девятеричной цифры должно соответствовать значению старшей
троичной цифры вводимого короткого кода.
При вводе символов, каждый символ запоминается очередными
тремя разрядами ( три символа в короткой ячейке начиная со
старших разрядов).
Ввод информации производится в последовательные ячейки,начиная
с начала какой-либо зоны оперативной памяти; указываемой в ко-
манде ввода.
Для вывода информации из машины служит электроуправля-
емая машинка ЭУМ-46 , которая печатает последова-
тельности символов на бумажном рулоне. В случае необходимос-
ти имеется возможность параллельно с печатанием на машинке
выводить информацию путем перфорации на ленте перфоратором
ПЛ-20.
Вывод информации в зависимости от вида выполняемой команды
вывода может производится в двух различных формах: либо в виде
последовательности команд и других коротких троичных кодов,
либо в виде последовательности символов. При выводе троичных
кодов, каждый короткий код печатается пятью девятеричными
цифрами в одной строке, причем каждая старшая троичная цифра
20
печатается отдельной девятеричной цифрой. Вся последователь-
ность коротких кодов печатается в один столбец. При выводе
символов значение каждой тройки троичных разрядов вызывает
на телетайпе определенные действия . Последовательность этих
троек цифр, начиная со старших разрядов каждой короткой ячей-
ки, и определяет последовательность выводимых Символов.
Вывод информации производится из последовательных ячеек, начи-
ная с начала какой-либо зоны оперативной памяти, указываемой
в команде вывода. Выведенная на перфоленту информация может
быть непосредственно введена в машину по соответствующей ко-
манде ввода.
Все команды ввода и вывода имеют один и тот же код
операции - 30 (приЛ1р=О), Конкретное значение команде ввода -
вывода придает условное числоМ* получаемое из условного числа
М , задаваемого в четырех младших разрядах адресной части ко-
манды, после модификации команд. Ввод и вывод информации произ-
водится зонами, так же как и обмен информацией между оператив-
ной памятью и магнитным барабаном, при этом зону оперативной
памяти, с которой связан ввод или вывод информации, определя-
ет старший разряд команды Л<р ( или Л ср , если команда модифи-
цируется перед выполнением).
Таким образом, команда ввода-вывода в общем сдучае имеет вид:
7Г<р MBJTF , где В = 30.
Соответствие между значениями условного числа и видами
команды ввода-вывода дается в таблице 3. Следует заметить,что
ввод и вывод символов может осуществляться и неполными зонами,
для чего в конце вводимой и выводимой информации должен быть
задан специальный символ "стоп" (ст) (таблица 4).
Каждый символ на перфоленте задается в одной строке в
виде различных комбинаций пробивок/ отверстий/. На пятипо-
21
зиционной перфоленте в одной строке можно указать одну из
32-х таких комбинаций, т.е. можно было бы указывать один из
32-х различных символов. Однако ввиду того,что машина "запо-
минает” каждый такой символ в двух или трех троичных разрядах
( в зависимости от вида команды ввода-вывода) , то реально
используются 27 различных символов - пять комбинаций проби-
вок машина просто не воспринимает при любой команде ввода.
Такие комбинации на перфоленте играют роль пробелов (nS ).
К числу пробелов относятся как строка с отсутствием проби-
вок, так и строка с наличием пяти пробивок ( пробивки во всех
позициях). Последний пробел удобно использовать в качестве
вычеркивания символов при ручном исправлении перфоленты.
Среди остальных 27 комбинаций пробивок (символов), вос-
принимаемых при вводе, есть такие комбинации (символы), кото-
рым при выводе соответствует не печать каких-либо значков, а
лишь некоторые управляющие воздействия на телетайп. К таким
символам относятся символ "стоп” (ст), о котором мы упомина-
ли выше, а также символы" возврат каретки” " перевод строки"
( вк, пс), " цифровой регистр" (цр) и "буквенный регистр"
(бр). О значении символа "стоп" мы уже говорили,следующие
символы(вк,пс)определяют формат печати, а последние два сим-
вола включают соответственно нижний (цифровой) или верхний
(буквенный) регистры печатающего устройства, в результате че-
го большинству символов при печати соответствует пара разных
значков- один из этих значков печатается при включенном циф-
ровом регистре, другой при включенном буквенном регистре.
В буквенном регистре имеется 20 заглавных букв латинско-
го алфавита, открывающаяся круглая скобка "(" и знак
В цифровом регистре имеется десять арабских цифр, пять заг-
лавных букв латинского алфавита ( буква "о" в печатающем
устройстве отсутствует,вместо нее можно использовать цифру
0), пять символов . используемых при записи чисел ("+","-",
”х”) и закрывающаяся круглая скобка ” ) и.
22
Один из символов цифрового регистра является просто пропуском
(пр) одной позиции при печати ( на место этого символа не
печатается никакого знака ).
Кроме этих символов в обоих регистрах имеется символ
подчеркивания (пч). При воспринятии телетайпом этого символа
производится печать черты под очередной позицией и блокируется
сдвиг каретки ( переход к следующей позиции). В результате
этого следующий символ будет отпечатан в той же позиции и,та-
ким образом, будет подчеркнут. Подробный перечень используемых
символов дан в табл. 4. В этой таблице в колонке ’’Комбинация
пробивок на перфоленте" кружочки обозначают позиции на перфо-
ленте, причем закрашенный кружок означает наличие пробивки в
данной позиции. Кружочки разделяются на две части точкой,
изображающей шаговую дорожку. Прочерк в какой-либо колонке
означает, что данный символ не воспринимается при соответствую,
щем вводе.
Использование в печатающем устройстве латинского алфави-
та объясняется тем обстоятельством,что латинский алфавит явля-
ется основным при описании большинства математических задач.
Однако при решении ряда экономических, хозяйственных и других
задач может оказаться более удобным русский алфавит. С ЗИПом
машины поставляется и другой вариант машинки "ЭУМ-46" с
русским шрифтом вместо латинского.
При этом русские буквы, совпадающие по написанию с
какими-либо латинскими буквами, изображаются на перфоленте те-
ми же комбинациями пробивок,что и соответствующие латинские
буквы. В остальных случаях комбинациям пробивок соответствуют
русские буквы,стоящие на втором месте в соответствующих ко-
лонках табл. 4. Буквы "С", ”3", "Ч" в данном алфавите отсут-
ствуют и могут в случае необходимости заменяться соответствен-
но цифрами 0,3,4. Отсутствует в данном алфавите и буква
"ъ”(эта буква используется весьма редко), ее можно заменить в
случае необходимости, например, буквой "ь".
23
Значение условного числа команды ввода-вывода
Таблица 3
Девятеричная система Смысл команды ввода-вывода
01 Ввод троичных кодов с фот ©трансмиттера д'1
01 Ввод символов с фототрансмиттера № 1
03 Ввод троичных кодов с фототрансмиттера №2
03 Ввод символов с фототрансмиттера № 2
10 Вывод троичных кодов
10 Вывод символов
зо Перфорация троичных кодов
30 Перфорация троичных символов
Скорость ввода - 800 строк в секунду? скорость вывода -
7 символов в секунду.
Перечень используемых символов
Таблица 4
Конби- нация проои- бокна перфо- ленте Запись S3* тро- ичных разр. Запои тро- ичные разр. изображе- ние синболоЬ KonhuHd иия про перфо- ленте Запись ВЗ* троич- ных разр Запись. 82^ троич- ных разр. изображение синьолоВ
Цифр, ре- гистр БукЬ ре- гистр Цифр, регист/ Букё регистр
099-90 777 -— ст ст О О* -ОО ОТО Ю 3 5b
090-99 /То — ** FB О О 9*09 ОН И 4 Т
990-99 77/ — пи пи 990-90 И/ — 5 ип
09 9-00 ю7 — 8к,пс Вл, пс 990- ОО /ТО — 6 А
000-99 ЮО — / ю ОШ, 99 0- 09 Гн — 7 3
900-99 Ю/ — 9 н 9 00-90 юТ — 6 С
099-09 7 н — X 900-00 ЮО — Э РА
009-99 7/о — in • оО-О» IOI пр Е
•ое-ее 7н — из ЭЫ • о •-•О И! — цр ЦР
о во-во О 71 гг ХЫЖ К • ое • о« I/O — ЗФ (Ш
09 О-ОО ОТО то X ТГ 909•ОО /// — бр 5р
090-09 ОТ/ и У!/ м 000-00 — — пб~ пб
000-90 оот ОТ Z4 МИ 9 9 9-00 — — пб пб
09 9-99 ООО ОО О р 999-09 — — пб пб
00 0-09 ОО/ о/ / вй 999-90 — — пб пб
ОО 9 • 90 ОН и 2 ня 9 9 9 • 99 — — Ви Вч
24
При вводе и выводе троичных кодов вместо девятеричных
цифр 4,3,2,1 используются соответственно буквы W, X, У
Z в латинском варианте и Ж,Х,У,Ц в русском вари-
анте. В дальнейшем мы часто будем пользоваться при описании
программы буквенным изображением указанных девятеричных
цифр. Следует также обратить внимание на то,что при вводе
символов,символ "стоп" воспринимается только тогда, когда
он будет третьим символом в короткой ячейке( записан в трех
младших разрядах короткой ячейки). Если заранее трудно раз-
бить символы на тройки, то для правильного ввода нужно в
конце зоны поставить подряд три символа "стоп". Для того,
чтобы выводимая зона символов могла быть обратно введена в
машину, необходимо при выводе неполной зоны символ "стоп"
помещать в трех младших разрядах какой-либо короткой ячейки
( остальные два символа, помещаемые в данную ячейку, в слу-
чае необходимости можно задавать, например, символами "про-
пуск") .
25
§4. Пульт управления
Пульт управления машины (см. рисунок) является средством не
посредственного общения человека с машиной. Он используется как
рабочее место оператора, управляющего машиной.
Пульт управления представляет собой стол,на котором имеется вер-
тикальная стойка, переходящая затем в наклонную панель. На вер-
тикальной стойке пульта воспроизводится содержимое каждого ре-
гистра машины. Для этой цели каждому разряду того или иного ре-
гистра на этой стойке соответствует пара вертикально расположен-
ных неоновых лампочек. Зажигание верхней неоновой лампочки соот-
ветствует появлению ( и последующему хранению) в данном разряде
цифры I, зажигание нижней неоновой лампочки соответствует появ-
лению в данном разряде цифры I. Если ни одна из неоновых лампо-
чек этой пары не горит, то это означает, что в данном разряде
регистра хранится цифра 0. Слева в верхнем ряду девять пар та-
ких неоновых лампочек соответствуют командному регистру К, в ко-
тором фиксируется модифицированная команда перед ее выполнением.
В среднем левом ряду пять пар неоновых лампочек изображают ре-
гистр модификации К В нижнем левом ряду имеется аналогичное изоб-
ражение регистра управления С. Справа в верхнем ряду имеется
двадцать пар таких лампочек, изображающих регистр сумматора 5 ,
причем две самых левых пары соответствуют двум разрядам перепол-
нения 'fi и Уг .В среднем правом ряду имеется 18 таких пар, изоб-
ражающих регистр R В нижнем правом ряду имеется четыре пары
неоновых лампочек, служащих для фиксации номера зоны магнитного
барабана, которая участвовала при последнем обращении к бараба-
ну. Почти посредине этой стойки расположены часы (секундомер).
26
©©£©©
©©£©©
©©£©©
©©£©©
©©^©©
©©°>©©
©©°О©©
©©^ ©©<*>©©
©©^©©^©©
©©^©©^©©
< Со
27
Слева от часов в среднем ряду имеется еще одна пара нео-
новых лампочек, которой индукцируется значение признака^.
На наклонной панели расположены органы ручного уп-
равления машиной. Справа в нижнем ряду имеется ключ, вклю-
чающий однотактный режим работы машины. При выключенном
ключе машина выполняет программу автоматически, пока не
встретится какой-либо из остановов или пока выполнение
программы не будет прекращено оператором с пульта управ-
ления. Левее этого ключа имеются четыре кнопки (перечис-
ленные слева направо): "останов”, "пуск", "команда с пуль-
та" и "начальный пуск". Нажатие кнопки "останов"прекраща-
ет автоматическое выполнение программы. Нажатие кнопки
"пуск" вызывает продолжение автоматического выполнения
программы, если не включен однотактный режим. При вклю-
ченном однотактном режиме нажатие кнопки "пуск" вызывает
выполнение одной команды* находящейся к этому моменту в
регистре К. Следует заметить, что выполнение одного так-
та начинается не с вызова из памяти данной команды', вы-
зов из памяти команды с соответствующей ее модификацией
был произведен в конце предыдущего такта. Выполнение од-
ного такта начинается с выполнения команды, хранящейся
в регистре К, а заканчивается вызовом из памяти следую-
щей команды и помещением ее после соответствующей модифи-
кации в регистр К.
Нажатие кнопки "начальный пуск" равносилен по-
сылке в регистр С адреса 001 ( в девятеричной системе)
и в регистр К команды 001 30.
При автоматическом режиме работы машины это вызы-
вает ввод с фототрансмиттера № I одной зоны информации
в зону ф0 оперативной памяти и автоматическое выполне-
ние введенной программы, начиная с ячейки 001. В однотакт-
яом режиме ввод зоны информации производится после до-
полнительного нажатия кнопки "пуск?
28
Нажатие кнопки "команда с пульта" равносильно посыл-
ке в регистр К команды^набранной на пульте управления. Выпол-
нение этой команды в однотактном режиме требует нажатия кноп-
ки "пуск", причем после ее выполнения в регистр К вызывается
команда, адрес которой содержится в регистре С после выполне-
ния команды, заданной с пульта управления. Если команда, за-
даваемая с пульта управления, не является передачей управле-
ния, то после ее выполнения фактически восстанавливается пре-
дыдущее состояние регистра К. В автоматическом режиме выпол-
няются те же действия, по окончании которых начнется обычное
автоматическое выполнение программы.
На этой же наклонной панели имеется три ряда клю-
чей, предназначенных для набора на пульте команды, длинного
(18-ти разрядного) троичного кода и пятиразрядного адреса
останова. Каждый из этих ключей имеет три положения: среднее
положение соответствует цифре 0, поворот тумблера к себе
(вниз) вызывает набор цифры Г, а поворот тумблера от себя
вызывает набор цифры I.
Набор команды производится в верхнем левом ряду,
состоящем из 9-ти ключей. Ниже этого ряда расположен ряд из
пяти ключей для набора адреса останова. Верхний правый ряд,
состоящий из 18-ти ключей, предназначен для набора произволь-
ного троичного кода.
О назначении первого ряда мы уже говорили. Коман-
да, набранная на этих ключах, посылается в регистр К при на-
жатии кнопки "команда с пульта". Последний ряд ключей пред-
назначен для ввода в машину информации непосредственно с
пульта управления. Немного левее этого набора ключей имеет-
ся один дополнительный ключ с двумя положениями. Включение
его будет означать, что выполнение всех последующих команд
(вплоть до выключения этого ключа за исключением команд ви-
да (F) =>(Я) и (C)=^(fl) будет связано с кодом, набранным
в этом ряду, а именно: вместо вызова из памяти кода, участ-
вующего при выполнении данной команды,будет вызываться код,
набранный на этих ключах; вместо посылки в память содержи-
29
мого регистра 5 в соответствующую ячейку будет посылаться
этот же код, набранный на пульте. Ряд из пяти ключей, слу-
жащих для задания адреса останова, используется в том слу-
чае, когда возникает необходимость прекратить выполнение
программы при выполнении некоторых команд (например, при
отладке программы). Правее этого ряда расположена пара клю-
чей с тремя положениями, расположенных один под другим
(по наклонной плоскости). Среднее положение верхнего клю-
ча (ключа остановов по адресу) не нарушает естественного
хода выполнения программ . При повороте этого ключа в край-
нее левое положение ("останов по адресу С"), выполнение
программы будет прекращаться каждый раз при совпадении ад-
реса, набранного на ключах, с адресом очередной выполняе-
мой команды, который будет содержаться в регистре С. При
этом останове указанная команда будет выбрана с соответст-
вующей модификацией в регистр К, но не будет выполнена.
Нажатие кнопки "пуск" вызывает продолжение авто-
матического выполнения программы (естественно, при выклю-
ченном ключе однотактного режима). Поворот ключа остановов
в крайнее правое положение ("останов по адресу в К"), может
в зависимости от положения ключа, расположенного под клю-
чом остановов, вызвать прекращение выполнения программы
каждый раз при совпадении адресной части выбранной в регистр
К команды ( с учетом ее модификации) с адресом останова,
набранным на ключах. При этом крайнее левое положение (по-
ложение "МБ") нижнего ключа будет вызывать указанный останов
только перед выполнением команд обращения к магнитному ба-
рабану; крайнее правое положение этого ключа (положение "ВП")
будет вызывать указанный останов только перед выполнением
команд ввода-вывода; среднее положение (положение "ФК") будет
вызывать указанный останов, только перед выполнением команд,
не связанных с вводом-выводом или обращением к магнитному
барабану. Продолжение автоматического выполнения программы
обеспечивается так же как и в первом случае-нажатием кногг
ки "пуск".
30
§ 5. Некоторые особенности программирования
Используемая в машине "Сетунь" троичная система счисле-
ния оказалась удобной для программирования.
Для достижения максимально-возможной точности выполне-
ния арифметических операций и вычисления элементарных функ-
ций большое значение имеет тот факт, что в троичной системе,
используемой на машине "Сетунь", наилучшим округлением числа
до какого-либо разряда является простое отбрасывание всех
цифр, записанных в более младших разрядах, т.е. замена этих
цифр нулями. Это означает, что во многих случаях, например,
при выравнивании порядков в операции сложения с плавающей
запятой, наилучшее округление достигается "автоматически",
без каких-либо дополнительных действий.
Весьма удобной при программировании оказывается и дру-
гая особенность данной троичной системы, а именно: отсутст-
вие у числа специального знакового разряда - знак числа оп-
ределяется знаком его старшей значащей цифры. В силу этого
любая часть числа, содержащаяся в его последовательных раз-
рядах, имеет свой знак, может быть, отличный от знака само-
го числа. Поэтому каждое число можно рассматривать как пос-
ледовательность нескольких чисел меньшей разрядности, над
которыми можно производить параллельно некоторые действия,
например, складывать или вычитать две такие последователь-
ности. Так в программе перевода чисел из троичной системы
в десятичную при переходе от записи числа видаХ'З^ к за-
писи вида V 10 промежуточные значения троичного и десятич-
ного порядков записываются в одной ячейке и изменяются од-
новременно.
Две эти особенности троичной системы позволяют лег-
ко получить ближайшую целую часть числа и соответствующую
ей дробную часть, которая, как известно, эффективно исполь-
зуется при вычислении экспоненты и тригонометрических функ-
ций. Действительно, последовательность цифр, расположенных
перед троичной запятой (положение которой определяется тро-
ичным порядком числа) и последовательность цифр, расположен-
31
ных после троичной запятой, и образуют соответственно ука-
занные целую и дробную части числа со своими знаками. Вы-
деление какой-либо части числа или, вообще, троичного кода
производится с помощью операции поразрядного умножения
(код операции 20), которая эффективнее известной операции
поразрядного логического умножения в двоичной системе, так
как с помощью этой операции можно не только "извлечь"какую-
либо группу разрядов троичного кода, но часть из этих раз-
рядов (или всю группу) можно "извлечь” с противоположным
знаком, если константа, с помощью которой производится
"извлечение", будет содержать в соответствующих разрядах
I вместо I. Это используется, например, при реализации опе-
рации деления. С помощью этой операции можно так же легко
получить функцию
при х>о
при х=О
при х< о
поразрядным умножением нормализованной мантиссы числа на
число I. Тогда модуль числа X может быть получен с помощью
соотношения /х/ X SL^fZ X.
Этот прием в значительной степени компенсирует отсутствие
в системе команд машины "Сетунь" каких-либо операций над
знаками числа и применяется, например, при выполнении опе-
рации вычитания модулей.
Большую роль при выборе алгоритмов вычисления тех
или иных функций играет наличие в системе команд машины
"Сетунь" команды умножения вида
с помощью которой весьма эффективно вычисляются полиномы
по схеме Горнера, а именно: каждое выполнение такой коман-
ды реализует один шаг схемы Горнера, если в ячейке А на-
ходится очередной коэффициент полинома, в регистре R поме-
щен его аргумент, а в регистре 5 хранится результат выпол-
32
нения каждого шага схемы Горнера. Если к этому добавить, что
схема Горнера обеспечивает, как правило, весьма медленное на-
копление ошибок округления, а также если учесть, что в наборе
операций машины отсутствует операция деления, то все это в
большинстве случаев делает использование полиномов наиболее
эффективным по сравнению с другими методами вычисления функций.
Как известно, автоматическая модификация команд (нали-
чие регистра модификации) вообще удобна при программировании,
а имеющаяся в машине "CeTyHb'’ возможность модификации команд
в двух направлениях (содержимое регистра модификации F может
как добавляться к адресной части команды, так и вычитаться из
нее) позволяет в ряде случаев построить программу весьма ком-
пактно, Так7например, для вычисления каждой из функций
fju.v) и Ji (u,ir) = J, (ir,u)
можно воспользоваться одной и той же частью программы, если в
командах, использующих одну из величин U и IS ,записать Лр =1,
а в командах, использующих другую из этих величин, записать
Лр =1 и посылать в регистр F нуль или разность между ад-
ресами величин U и в зависимости от того, какую из этих
функций нужно вычислять. Именно такой прием используется в
подпрограмме сложения чисел с плавающей запятой.
Все эти особенности программирования позволили создать
достаточно компактные подпрограммы для выполнения действий
над числами с плавающей запятой и вычисления элементарных функ-
ций со сравнительно высокой точностью и небольшим временем
счета.
Приводимые в данной работе подпрограммы достаточно полно
иллюстрируют указанные особенности программирования. Следует
также заметить, что описанная в § 3 система ввода и вывода
позволяет задавать информацию для работы машины, а также выво-
дить окончательные результаты в форме, весьма удобной для че-
ловека.
Исходные данные можно задавать в любой из распространен-
ных форм записи, например: 123
- 15.35
.428
3.164
_10+4 10 '
33
Все используемые здесь символы содержатся в алфавите
машины и необходимо лишь разработать программу перевода,кото-
рая бы понимала указанные записи чисел и переводила их в
троичную систему счисления.
Точно так же и выводимые результаты можно печатать в та-
кой форме,которая уже не требует какой-либо дополнительной
ручной обработки. В частности, печатаемые результаты можно
снабжать заголовками и дополнительными комментариями в
пределах алфавита машины. Для иллюстрации этих возможностей
ниже приводится одна страничка таблиц функции SinJC 9 полу-
ченной на машине "Сетунь” (, см. табл. 5 ).
Некоторые трудности при программировании возникают в
связи с двухступенчатым строением памяти машины.
Оперативная память машины ( 162 коротких троичных кода )
позволяет без использования магнитного барабана решать лишь
незначительное число самых простых задач. При решении преоб-
ладающего большинства задач в качестве основной памяти исполь-
зуется магнитный барабан,в связи с чем возникает значительное
число команд обращения к барабану. Частые обращения к магнит-
ному барабану могут сильно снизить скорость счета,поэтому жела-
тельно построение программы с наиболее рациональным использова-
нием памяти. При решении некоторых задач и в особенности при
составлении стандартных программ реализация достаточно рацио-
нального использования памяти может оказаться одной из основ-
ных проблем,разрешение которой может потребовать больших
усилий программиста.
Таблица 5
X Sin X
С,0100 +0,0099998
0,0101 +0,0100998
0,0102 +0,0101998
0,0103 +0,0102998
0,0104 +0,0103998
0,0105 +0,0104998
0,0106 +0,0105998
0,0107 +0,0106998
0,0108 +0,0107998
0,0109 +0,0108998
0,0110 +0,0109998
о,ош +0,0110998
0,0112 +0,0111998
0,0113 +0,0112998
0,0114 +0,0113997
0,0115 +0,0114997
0,0116 +0,0115997
0,0117 +0,0116997
0,0118 +0,0117997
0,0119 +0,0118997
0,0120 +0,0119997
0,0121 +0,0120997
0,0122 +0,0121997
0,0123 +0,0122997
0,0124 +0,0123997
Однако даже в тех задачах,где такая проблема не
ставится,решение вопроса об использовании барабана вызывает
ряд затруднений. Одним из способов автоматического устране-
ния этих затруднений является введение интерпретирующей
системы, описываемой в § 6.
В тех задачах,где время счета не играет решающей
роли использование этой системы может сильно облегчить про-
цесс программирования. Эта система допускает и частичное
решение вопроса о рациональном использовании магнитного бара-
бана , особенно при наличии достаточно эффективных подпрограмм.
§ 6. Интерпретирующая программа ИП-2.
С целью автоматизации процесса обмена информацией меж-
ду магнитным барабаном и оперативной памятью, введения пла-
вающей запятой и использования стандартных подпрограмм раз-
работана интерпретирующая система. Основу этой системы
составляют интерпретирующая программа ИП-2 и библиотека
стандартных подпрограмм. В рамках этой системы магнитный
барабан рассматривается фактически в качестве оперативной
памяти. Для указания месторасположения кодов на магнитном
барабане вводятся обобщенные адреса, являющиеся девятиразряд-
ными троичными кодами. Каждый из этих адресов имеет сле-
дующую структуру*):
х)
Здесь Jfpj является троичной цифрой,a Mj, и Л j -
-четырехразрядными троичными кодами.
36
где Aj- является номером строки зоны Mj, магнитного
барабана при JTy# = О и Л// / О. В противном случае
обобщенный адрес может содержать иную информацию,смысл
которой будет достаточно ясен в процессе изложения.
При таком способе указания месторасположения кодов на
магнитном барабане образуется сплошной массив "ячеек"
памяти с последовательными обобщенными адресами.
Предполагается,что программа и информация необходимая
для ее работы,находятся полностью на магнитном барабане.
Оперативная память играет в этой системе роль буферного
запоминающего устройства,на которое вызывается для выпол-
нения очередная часть ( зона ) программы и какая-либо зона
информации необходимость в которой возникает в процессе
вычислений. Кроме того,в оперативной памяти постоянно хра-
нится основная часть интерпретирующей программы ИП-2.
В связи с этим зоны оперативной памяти выполняют сле-
дующие функции:
а) зона Фо служит местом,на которое считывается зона инфор-
мации,требующаяся в процессе выполнения программы,а также
местом для выполнения ряда стандартных подпрограмм;
б )зона Ф/ , служит местом для выполнения очередной зоны
основной программы;
в )зона Фт , служит местом для размещения интерпретирую-
щей программы.
Основная программа выполняется в режиме частичной
интерпретации,а именно: выполняются обычные машинные команды
до тех пор,пока не возникает необходимость использовать
обобщенные адреса ( потребуется информация,хранящаяся в
данный момент на магнитном барабане ), обратиться к какой-
- либо стандартной подпрограмме или перейти к выполнению
команды,расположенной в другой зоне основной программы, в
этих случаях происходит обращение к ИП-2.
х)
' При этом, естественно, можно использовать константы и
ячейки интерпретирующей программы, находящиеся в
зоне Фв1.
37
Интерпретирующая программа ИП-2 выполняет следующие
функции:
I) реализует обращение к стандартным подпрограммам и,
как частный случай этого, производит пересылку информации
с одного места памяти на другое;
2) производит передачу управления по обобщенному
адресу ( обобщенный переход ) ;
3) продолжает выполнение линейных (без передач
управления ) кусков программы при переходе от одной зоны
программы к следующей.
При обращении к стандартным подпрограммам задаются
обобщенные адреса аргумента и результата^ также обобщенный
адрес начала подпрограммы. При этом предполагается, что
указываемые при обращении числа XL представлены в системе
плавающей запятой следующим образом:
Xi = 3
/
58
гдеЛх является 18-ти разрядным кодом,рассматриваемым в каче-
стве обычного числа с фиксированной запятой,a является
пятиразрядным кодом,рассматриваемым как целое число и поме-
щаемым на место первого короткого кода, следующего за длин-
ным кодом Xi • Результат выполнения какой-либо подпро-
граммы представляется в таком же виде,только в этом случае
Xi и Pi удовлетворяют следующим соотношениям:
//г I Pi 1^40 при
XL - Q Pi 40 при Xi —О.
Такое представление чисел позволяет вести вычисления с
та
восемью верными десятичными знаками в диапозоне от 10 до
. та
10 . В качестве обобщенного адреса величины Xi. указывается
обобщенный адрес ее мантиссы Х^Обобщенный адрес начала подпро-
граммы^ также обобщенный адрес /7^ при обобщенном переходе
относится к коротким кодам. Для продолжения выполнения линей-
ных кусков программы никакой информации не требуется,так как
после выполнения последней команды зоны <7^/ , т.е.последней
команды зоны основной программы,расположенной в оперативной
памяти управление автоматически перейдет первой команде зоны
Ср_1 т.е. первой команде ИП-2, которая "догадается" что в этом
случае нужно передать управление первой команде следующей
зоны основной программы.
Интерпретирующая программа каждый раз запоминает номера
зон магнитного барабана содержимое которых в данный
момент вызвано в оперативную память соответственно на место
зон Фо И Ф< . Поэтому при каждом считывании зоны магнит-
ного барабана содержимое ( соответствующей зоны оперативной
памяти)в случае необходимости запоминается на магнитном
барабане•
Основная часть ИП-2находящаяся в оперативной памяти,
полностью реализует ее действия, которые чаще других повторяют
ся в процессе счета,а именно: обращения к стандартным подпро-
граммам и вызов в оперативную память информации,требующейся
в процессе счета. Внутри этой части имеются рабочие ячейки,
в которых, в частности, могут храниться
39
две величины Uи (f ,представленные выше указанным образом
в системе плавающей запятой, и номер Мо зоны магнитного
барабана,вызванной в данный момент в зону4^ оперативной
памяти. Для реализации обобщенного перехода или "продолжения"
линейных кусков программы в основной части ИП-2 имеется
лишь несколько вспомогательных команд,которые производят
запоминание основной части ИП-2 вместе с содержимым рабочих
ячеек в зоне 13 магнитного барабана,а на ее место вызывают
другую зону ИП-2 ( зону переходов ), хранящуюся в зоне 14
магнитного барабана. Внутри этой зоны также имеются рабочие
ячейки,в которых, в частности,запоминается номер Mi , зоны
основной программы,вызванной в зону W оперативной памяти.
После выполнения своих функций зона переходов ИП-2 записывает
свое состояние в зону 14 магнитного барабана и восстанав-
ливает в оперативной памяти состояние основной зоны ИП-2.
Обращение к стандартным подпрограммам в самом общем
случае имеет следующий вид:
(Но) 7 4г оз (c)-^(oi)
(Hi) - Т U3 00 БП^Ьк.1 ИП-г
(Нг) •' Jlqht Мх
(Нз) Jlcp, М/
(Ни) Лер у Му Л уJ
где первые две команды (Но) и (Hi) производят обра-
щение к ИП-2 ( И - рабочая ячейка ИП-2 ),а три последние
команды ( Нг ), ( Н3 ) и ( Hr ) определяют некоторую псев-
докоманду типа которую должна выполнить ИП-2.
При этом /\х = ТфХ Мл является обобщенным адресом аргумента,
-обобщенным адресом начала соответствующей подпро-
граммы, т.е.наименованием функции }(x)t & Ry = Jlqjу Му Лу-
обобщенным адресом результата.
Работа интерпретирующей программы в этом случае грубо
может быть представлена следующей схемой (подробно по коман-
дам ИП-2 приведена в приложениях I и 2).
40
Bx.L P(Mo*0)~
[<PJ^ [mJ
Bx.il Mx-*- Mo —1
p (Mx -----------------
[MxWti]
_ Норн. (]Гср, U
Bx.lll М^=>Мо
P(Mj*O) ----------
БПпо адреса ТТф/ >
о тс. кА - кл I из стандартной
DX.Iy Г/у^>Мо -* 1 подпрограммы
P(My^D)-------
U —* (яру
Возврат к основной программе
Символ (</*)* следует понимать как число,
представленное в системе плавающей запятой и образован-
ное длинным кодом с адресом 6 и следующим за ним
коротким кодом ; символ"Норм, (сГ )г означает,что это число
нормализуется, т.е. к длинному коду (сГ) применяется
машинная операция нормализации,а число сдвигов /V
добавляется к короткому коду ( порядку числа ).
Из этой схемы видно,что в качестве аргумента каждой
стандартной подпрограммы берется величина U результат
выполнения этой подпрограммы посылается на место величины//.
Над величиной^интерпретирующая программа никаких
действий не производит, однако с этой величиной может
оперировать та или иная подпрограмма, используя ее в каче-
стве второго аргумента или в качестве второго результата.
41
Из этой же схемы ясно назначение составных частей
обобщенного адреса,в частности, при Л//=0 соответствующий
обобщенный адрес /1} относится к оперативной памяти. Так,
например,величины U и V имеют соответственно обобщенные ад-
реса I 00 32 и I 00 41, которые можно рассматривать в
интерпретирующей системе как адреса двух быстродействующих
ячеек.
Таким образом, при обращении к стандартной подпрограмме
в общем случае требуется 4 обращения к магнитному барабану,
что составляет с учетом времени работы ИП-2 и стандартной
подпрограммы 39000-51000 мксек. Однако это время будет
меньше, если обобщенные адреса относятся к оперативной памяти
например, при отсутствии обращений к магнитному
барабану время обращения к стандартной подпрограмме и ее
выполнения составляет 19000 + 23500 мксек.
С помощью такого обращения к стандартным подпрограм-
мам можно осуществить пересылку вида , если положить
Д/ = Т 00 21,
что будет означать в процессе работы ИП-2 передачу управле-
ния не какой-либо стандартной подпрограмме,а блоку ВхГУ
интерпретирующей программы.
Время работы подпрограммы полагается равным 4000-8500
мксек. За это время выполняются все арифметические дей-
ствия в системе плавающей запятой и вычисляются
основные элементарные функции.
42
При указанном способе обращения к стандартным под-
программам и пересылки чисел с одного места памяти на дру-
гое ИП-2 обеспечивает правильный и своевременный обмен
информацией между оперативной памятью и магнитным бара-
баном. Однако в ряде случаев можно избежать работы некото-
рых блоков ИП-2, если воспользоваться дополнительными
сведениями о размещении информации в оперативной памяти.
Так можно избежать работы блока Вх.1 интерпретирующей
программы, если заведомо известно,что состояние зоны Фо не
нужно или не обязательно запоминать на магнитном барабане.
Для этого вторую строку ( hh ) обращения к стандартным
подпрограммам следует заменить строкой вида
I 32 00 БП г* BX.1I ИП-2.
Если,кроме того,аргумент уже находится на месте вели-
чины U ,то можно избежать работы и блока Вх.Н интер-
претирующей программы. В этом случае обращение к стандарт-
ным подпрограммам имеет следующий вид:
( Но ) : I 42 03 (с) Ы)
(/// ) : I 22 00 БПг*- Вх.Ш ИП-2
( //г ) : 1
(//з ) : -% Л/у J
Во всех этих случаях
первая строка ( /4?
может быть
пропущена,если данное обращение к стандартной подпрограмме
непосредственно следует за другим обращением к стандартной
подпрограмме ( режим сплошной интерпретации ).
43
Следует также отметить,что ряд стандартных подпрограмм
может быть организован таким образом,чтобы не требовать
при обращении к ним задания последней строки
В этом случае результат будет получаться только на месте
величин U и 1Л
Как уже указывалось выше, для " продолжения"линейных
кусков программы не требуется задания какой-либо инфор-
мации: после выполнения последней команды зоны Ф/,управ-
ление автоматически перейдет блоку Вх У интерпретирующей
программы. Для выполнения обобщенного перехода требуется
написать три следующие строки^ :
(М?): I 23 13
(//,): I 42 00
(//а)г 0 Л/
( С )
БП Г*Вх V/ ИП-2
где, является обобщенным адресом команды,с которой
нужно продолжить дальнейшее выполнение программы.
Здесь и в дальнейшем изложении С я означает единицу
адресной части команды, т.е. единицу пятиразрядного
кода.В силу того,что младший разряд 1а адресной части
используется для указания длины кода ( смотри выше ),
то имеет место соотношение:
Но + ЗСп ~ ,
44
Работа интерпретирующей программы в этих слу^'аях грубо
представляется следующей схемой:
fi*y O-*(F)
8х w [ qu]
[li j — [ q>,]
(f) -^Axt
[VJ ^[M,]
OMi Л?з Aii
Л^Л
M). =>Mi
Au -*($) -
[?.;] [«]
[13] ^LV-<]
при Ail =0
43 =* &
[«, t /] Ml
БП по адресу I A ( возврат к основной программе )
45
Здесь %з - адрес строки, следующий за обобщенным переходом,
он связан с величиной Лх3 следующим соотношением:
•Хз = I Лх3 •
Как видно из схемы, внутри зоны переходов в случае обоб-
щенного перехода запоминается величина Az3 = &M/Ax3 ,
являющаяся обобщенным адресом строки, следующей за обоб-
щенным переходом. Кроме того, эта величина Axiперед выходом
из интерпретирующей программы засылается в регистр 3
и поэтому может быть немедленно использована основной про-
граммой,например, для организации обратной связи с той
частью программы,в которой был произведен данный обобщенный
переход.
При реализации действий, описываемых в данной схеме,
производится 6 обращений к магнитному барабану, что состав-
ляет с учетом времени работы интерпретирующей программы
50000 4- 55000 мксек.
Обобщенный переход может использоваться и для обра-
щения к стандартным подпрограммам. В этом случае в стро-
ках (/73 ), ( Нц ) И Т.Д., следующих за обобщенным
переходом, может задаваться ’ информация, необходимая для
работы соответствующей подпрограммы.
Для "извлечения" этой информации имеется стандартная
подпрограмма,расположенная в зоне переходов ИП-2,обращение
к которой в общем случае производится следующим способом:
(V»): I 42 03
(U): I 43 00
( Ve): Mx &x
( V3): 0 14 20
( С ) => ( 4 )
БП
Вх!
ИП-2
__w s
БП зоны переходов ИП-2.
46
Здесь,по-прежнему, Ду является обобщенным адресом
аргумента. Но так как величина в данной подпрограмме не
используется,то можно положить
Ах= I 00 32,
если только не требуется для дальнейших вычислений занести
какое-либо число на место величины U . Все сказанное о
возможных других вариантах обращения к стандартным подпро-
граммам имеет место и в этом случае.
Данная подпрограмма производит засылку в регистр
S очередной "извлекаемой" строки ( Д^/), где 0MXi
(первоначально OMi Лх3 ),а на месте величины
обобщенного адреса следующей строки
( О Axi+t Ах с
При этом производится три дополнительных обращения
к магнитному барабану ( нё считая обращений,производимых
интерпретирующей программой ).
Последующие обращения к данной подпрограмме,если они
не разделяются другими обращениями к ИП-2,можно произво-
дить с помощью следующих двух строк;
( Vc) : I 42 03 ( С ) => ( Л )
( V, ) J 0 20 00 БП Г^к подпрограмме.
При этом каждый раз производится три обращения
к магнитному барабану.
После "извлечения" всех строк информации величина
Ахс, хранящаяся в ячейке 0 03 (с обобщенным адресом О
14 03 ), по-прежнему будет обозначать обобщенный адрес
команды основной программы,к которой нужно вернуться по
окончании работы подпрограммы,указанной при обобщенном
переходе.
47
Описанная здесь интерпретирующая система значительно
облегчает процесс программирования на машине "Сетунь",
причем это достигается без заметного увеличения времени
счете ввиду того,что в этой системе производятся в большин-
стве случаев только существенно необходимые обращения к
магнитному барабану,а интерпретация тех или иных псевдо-
команд осуществляется, как правило,между такими обращениями
к магнитному барабану,не вызывая значительного увеличения
времени счета.
Дальнейшее расширение возможностей интерпретирую-
щей программы потребовало бы увеличения числа команд,что?
в свою очередь, увеличило бы число обращений к магнитному
барабану,а тем самым,и время счета. В свете этого будут
понятны следующие замечания, уточняющие возможности
применения интерпретирующей системы.
I. ИП-2 использует в процессе работы все регистры,
кроме регистра /? ,не восстанавливая их содержимого
после окончания работы ( регистр А может использоваться
только в стандартной подпрограмме ). Поэтому при каждом
обращении*) к ИП-2 информация,содержащаяся в этих
регистрах, должна по необходимости запоминаться основной
программой.
2. Все строки каждого обращения к стандартным
подпрограммам^ также первые три строки каждого обобщен-
ного перехода должны располагаться целиком в какой-либо
одной зоне основной программы. Информационные строки,
следующие за обобщенным переходом и имеющие последователь-
ные обобщенные адреса могут занимать строки и в следую-
щих зонах программы.
х)
В том числе и при "продолжении" линейных кусков
программы.
48
§ 7. Общая характеристика стандартных подпрограмм
в системе Щ1-2
Все подпрограммы рассчитаны на работу с плавающими (пе-
ременными) масштабами, что, как известно, включает как
частный случай работу в системе плавающей запятой, если
иметь дело только с нормализованными числами и все арифме-
тические действия выполнять с помощью обращения к соответ-
ствующим стандартным подпрограммам. Все числа Xi представ-
ляются в форме
Xi =Xl 3 , ( 7.1 )
где Хд- мантисса числа Х[ , записываемая в длинную ячейку,
/X t/< 4,5 у
Pxi - целое число,являющееся порядком XI и записываемое
в пяти старших разрядах короткой ячейки, обычно следующей
за указанной длинной ячейкой , /Z^z/^121.
Такое представление называется нормальным, если вели-
чины Xi и Pxi удовлетворяют следующим соотношениям:
0,5</Х</< 1,5 /р^1 ^40 при (7.2)
Хг = о, Pxi при л*= о.
Основным аргументом каждой стандартной подпрограммы
является величина и = U3?u,хранящаяся внутри интерпрети-
рующей программы ИП-2 ( величина^ - в ячейке I 32, а вели-
чина Ри -в ячейке I 43 ) ;
основной результат посылается в те же ячейки на место
величины и
49
Кроме того, некоторые подпрограммы используют величину
г = V . 3^
в качестве второго аргумента или ( и ) второго результата.
Эта величина также хранится внутри ИП-2 ( величина V
в ячейке I 41, а величина Рг - в ячейке I 43 ).
При этом аргументы U и if , задаваемые в форме
( 7.1 ), не предполагаются обязательно представленными
в нормальной форме в смысле соотношений ( 7.2 ).
Однако для аргумента U. предполагается выполненным со-
отношение
0,5 </£//< 1,5 при Z/^O ( 7.3 ).
Это соотношение выполняется автоматически,если величина
была получена с помощью стандартной подпрограммы или
была выбрана с помощью ИП-2 ( при засылке на место и
какой-либо величины ИП-2 предварительно нормализует ман-
тиссу этой величины с соответствующей корректировкой ее
порядка ). Основной результат ( на месте величины и )
выдается всегда в нормальной форме, т.е. выполнены соотно-
шения (7.2), причем, если у результата А, <-40, то
полагается U ~ О, Ра=~ 40 ;
если же Pv>40, то происходит " предупредительный” останов
по команде I 44 23 ( оператор ), по которой
в регистр R посылается величина Мо , хранящаяся
внутри ИП-2 и равная номеру зоны магнитного барабана,
в которой помещена данная стандартная подпрограмма.
При этом останове на месте величины U оказывается
правильный результат и поэтому этот останов можно игно-
рировать и продолжить вычисление нажатием кнопки "Пуск",
но после этого возможен останов по переполнению разрядной
сетки машины ( даже внутри стандартной подпрограммы),
если порядок какого-либо промежуточного результата должен
получиться по модулю больше 121. Относительного второго
результата,посылаемого на место величины f/ , никаких общих
требований не накладывается,но,по возможности, он также
выдается в нормализованном виде.
50
Как известно,обращение к стандартной подпрограмме
производится в общем случае с помощью следующих строк:
( Но): I 42 03 ( С ) => ( of )
(///): I 43 00 БПГ*Вх1 ИП-2
( #г): Лх (7.4)
( /6 ):
( Z4 ): А у;
где Ау = Ао/^^/является ,по существу,наименованием данной
подпрограммы ( или кодом данной псевдооперации ),причем,
здесь всегда 0,0£у - начало данной подпрограммы в опера-
тивной памяти ( напомним, что каждая подпрограмма при
обращении к ней строками вида ( 7.4 ) вызывается в зону
Фо оперативной памяти ),а М/ является условным номе-
ром зоны магнитного барабанах4 в которой
х)
При помещении какой-либо подпрограммы на другую зону
магнитного барабана необходимо будет переработать
по специальной подпрограмме указанные условные номера.
51
должна храниться данная подпрограмма. В табл. 6 приводится
перечень описываемых псевдоопераций.
Таблица 6
пп Наименование псевдо- операций Код Содержание
I. Сложение 012 33 u ta^ и; Норн.
2. Вычитание 012 32 U-ir^ U; - HopM.F=^Lr
3. Вычитание модулей 012 23 ! U1 -Да/ U- - Hop Hits'] U
4. Обратное сложение 012 43 -U~tr=^Uj -Норн. u~=^tr
5. Обратное вычитание 012 43 -и+ tr^u-, НOpM.tr=> tr
6. Умножение ОН 40 и* V U; HopFf.WСТ
7. Деление 011 43 и/О' => и, Норм.
8. Извлечение кв.корня 010 42 => cr, лГй => и
9. Синус ОН 43 Si О Bi
10. Косинус ОН 40 Cos = > и
II. Эспонента 012 13 exp и
12. Натуральный логарифм 013 43 Спи* и
В этой таблице под символом мНорм.^'( понимается
нормализация мантиссы числа с соответствующей коррек-
тировкой порядка,а не полное удовлетворение соотношения
( 7.2 ).
При составлении новых подпрограмм следует иметь
ввиду,что каждая подпрограмма по окончании своей работы
должна передавать управление по адресу 121 (Вх. IV ИП-2)
в том случае,когда после работы данной подпрограммы преду-
сматривается запоминание результата.Если же запоминание
результата не требуется ( не требуется задания обобщенного
адреса при обращении к данной подпрограмме ),то перед окон-
чанием работы такой подпрограммы нужно выполнить две команды
I 42 IO ( И ) ==> ( F )
I 23 03 ( F ) => ( В ) j
а затем передать управление по адресу 101.
52
При использовании указанных псевдоопераций могут
возникнуть случаи, когда заданную псевдооперацию нельзя
выполнить ( в пределах описанной системы ) над какими-либо
аргументами. В этих случаях происходит аварийный останов,
говорящий о том,что программа составлена неверно. Ниже при-
водится перечень таких остановов.
Останов Q, (по команде О 00 23 ) означает,что
требуется выполнить деление на нуль.
Останов ( по команде I 32 23) означает,что
требуется вычислить квадратный корень из отрицательного
числа.
Останов ( по команде 0 02 23 ) означает,что
требуется вычислить exp и при и > ,/г,Зг9
В этом случае троичный порядок результата был бы
не меньше НО ( в.девятеричной системе) и для его пред-
ставления в большинстве случаев ( начиная с порядка 122)
было бы недостаточно пяти троичных разрядов.
Останов Qv ( по команде 0 01 23 ) означает,что
требуется вычислить ’ 6?/7 при 0.
§ 8. Подпрограмма для выполнения действия
типа сложения
Алгоритм сложения двух чисел и -=СГЗРи и W = V3Ptr
использует известное соотношение :
[(и-з^-^-/- \г)-зр>г
при Ри > PlS
при Р„ + Ри- ,
53
При этом предварительно производится нормализация
мантиссы величины 1Л с соответствующей корректировкой
ее порядка. Все остальные действия типа сложения
( вычитание, вычисление модулей,обратное сложение и
обратное вычитание ) сводятся к сложению предварительным
преобразованием знаков величин U и V , на знаки,
соответствующие данному действию.
Подпрограмма для реализации действий типа сложения
( включая и само сложение ) размещена в одной зоне МБ
и представлена следующей схемой:
Вычитание
нодулей
Lf и^Ц; норн IX Lr - БПГ” 1
Обратное Обратное
вычитание сложение Вычитание
[-и—и] i(s}v-*v]
сложение 3
f[O=*(F)]p(u* 0)ГР(У*0)Гнорм (/=* if, Pir-Pu^(S)]
P(u^T)rs[-(5)^(5)2] [-M,
Cd£V№HO (p) [(S)+Ue-^ (S)Jp (Ы * o)re
[Норн(5)^1Г,
r-^-£ e~L
plbj^oh Pu]БП[^
вх\уил г Bxiy on г b*w Ип-г
54
Здесь и в дальнейшем изложении символ „Норм.
обозначает нормализацию мантиссы величины У с соответ-
ствующей корректировкой ее порядка, тогда как символы
мНорм, ( 5 ) «=> U ; Л/ =*- S обозначают обычную машинную
операцию нормализации,где Л/ - число сдвигов .
Символом БП будем обозначать безусловный переход по
стрелке с номером К . Величина со обозначает значение
соответствующего признака, вырабатываемого в машине.
Величина В является числом - 3 или -81£д(6а-единица
пятиразрядного кода), которое имеется в основной зоне ИП-2;
с помощью поразрядного умножения на эту единицу, (S
выделяется с обратным знаком значение старшего разряда содер-
жимого регистра в данном случае - старшего разряда
порядка результата. Величина -6 6» равна "расстоянию "
в памяти между величинами U и IF , т.е. равна разности
между адресами этих величин. Величины и Xе обозначают
величины,отстоящие в памяти от величины х на "расстоянии"
+ ( F ) и, соответственно, - ( F ). Оператор 90
производит останов по команде I 44 23 ( см. § 7 ).
Остальные обозначения понятны без дополнительных пояснений.
В силу того,что при операции сдвига производится
лучшее округление ( см. § 5 ), погрешность выполнения этих
действий не превосходит по модулю половины единицы младшего
разряда мантиссы наибольшего по модулю аргумента.
Время выполнения сложения не превосходит 4630 мксек,
в том случае,когда порядок результата не меньше - 40 ;
в противном случае требуется дополнительно 1000 мксек,
для того,чтобы положить результат равным нулю. Для выполнения
остальных действий типа сложения, кроме вычитания модулей,
гребуется дополнительное время,не превосходящее 1460 мксек.;
для выполнения вычитания модулей чисел требуется дополнительно
ко времени сложения 2780 мксек.
Подробно по командам данная подпрограмма приведена
в приложении № 3.
55
§ 9. Подпрограмма для выполнения умножения
и деления.
В другой зоне МБ расположена подпрограмма для
выполнения умножения и деления, причем деление сводится
к умножению после предварительного вычисления обратной
величины второго аргумента. Алгоритм умножения двух
чисел использует известное соотношение:
U • U~ — U \1‘3Ри^р\
Обратная величина 2 = */ir определяется только при
«¥ О с помощью соотношения 2=Ур 3 >
причем) так же как и при сложении производится предвари-
тельная нормализация мантиссы величины ir с соответ-
ствующей корректировкой ее порядка. При W = О проис-
ходит аварийный останов по команде О ОО 23 (оператор).
Для вычисления 2 = z/l/ используется известная инте-
рационная формула:
2 = Л/т? 2/7 , где Lurin' (£~ Zrtf )ъ (9.1)
П-^- ео *
причем, если положить = и = Z +Еп+< ,
то величина Епч , вообще говоря, определяется по фор-
муле <£/?+/ = - Е„ V .
Однако,из-за потребности выполнения операции умножения
формула для определения <f/^/ будет иной. Действительно,
пусть а* б -псевдопроизведение двух разрядных
чиселх/<7 и В , соответствующее точному произведению
и пусть & - а •() - а*б , причем,для машины
"Сетунь" выполняется неравенство;
/6/£ '/г (з-,е-3~зг)
х/ Под разрядным числом понимается число,представленное
в машине.
56
Тогда ^_nty будет вычисляться по формуле
или 1пч-2п^г-1пУ-еп) = Ъп(г-1пУ-бп^б"п ,
Отсюда х - г<? v /г? (9.2 )
СпИ----Сп V-bln^On.
Из этой формулы видно,что одновременно с выполнением
неравенства
Кп v/< г-з ~'е (э.з)
будет выполнено неравенство ‘Уг'З^.
В силу того,что при IVl^fa придется производить
нормализацию величины ~£п+/ ( сдвиг вправо на один разряд),
то для нормализованной мантиссы Z/?// обратной
величины, Z/7*/ = +€будет выполнено нера-
венство fE'n+/^ '/з-1Ьи</+ й 3~'6< 3/<тЗ~'е ,
т.е. Z /?#/ не более, чем на единицу младшего разряда
будет отличаться от величины Е' - наилучшего представ-
ления в машине величины . Последующие итерации
не могут заметно улучшить этот результат,так как хотя и
будет выполняться неравенство
/£*/< 3/e-3~/6t К^П+З, J
но после нормализации можно будет гарантировать
лишь выполнение неравенства
/г;/« '/з /сф'/з-з~'6< % 3~" ,
т.е.по-прежнему
Л?;- г'Д
57
В случае
и при условии
l£e„ V/< (9.4)
будет выполнено неравенство !£п+</< 3/г З ,
т.е. inn не более чем на единицу младшего разряда
будет отличаться от величины/. Этот результат также не
может быть заметно улучшен последующими итерациями,так
как можно будет лишь гарантировать выполнение неравенства
//дг /< V' 3 Т К ~П+3, П+%- >
т.е. по прежнему /2^-
С точки зрения уменьшения времени счета оказалось
невыгодным на данной машине делать более одной итерации
по формуле ( 9.1 ).Выгоднее сразу получать такое Ио ,
чтобы в зависимости от абсолютного значения величины
V было выполнено неравенство ( 9.3 ) или (9.4 ).
Если положить
V = + h , где ///=1, /л/< '/г ,то легко из соот-
ношения ) получить
довольно эффективную формулу для вычисления io , если
с помощью полиномов Чебышева свернуть ряд,заключенный
в скобки, до полинома восьмой степени. В результате
этого получена следующая формула:
io - (<F~h)(/+h?-+ a, + ty, h* + cf3 h32
где
#,= 1,0007;
0= 0,9504;
Cf3 = 1,5126,
Величина €o определяется из соотношения
Со =(<Г-/>)/>еЛ , /Z)/< З./НГ* .
При этом для случая /к < jy/г/3
х/ Здесь учтена погрешность представления коэффициентов,
которые хранятся в подпрограмме в коротких ячейках.
58
будет выполнено условие ( 9.3 )
!бо V/< о,7 /г?_<9< т/3 . з-м
а для случая '
sk</V/< 3/г
будет выполнено условие ( 9.4 )
М/ v/< о,гз /о 6 < </3
Дальнейшее понижение степени данного полинома приводит
уже к невыполнению условий ( 9.3 ) или ( 9.4 ).
Как уже указывалось выше, произведение UV вычи-
сляется с погрешностью /б7< , а,
тем самым, частное и/сг вычисляется с погрешностью
,где 6/ - погрешность вычисления нормализо-
ванной обратной величины от V
Данная подпрограмма описывается следующей схемой:
Умножение _________Деление
— бп^ \[норн.1/^т-Pv =^Ру, од
Р(1Р=*О)Гг [(S)® А ~^(5), (S)(S)V~7=>(S);(S)=^(R)
(ЗЛаг=>(5)- -c/ti-(5)(f<)^ (5)t 745)(R)^(5)f
~7^(5)(R)^(S)i (5)Z^(5)j (S)=^(R); (R)V^ (5); (S)®A^(Sj
0 + (S}(8)^(S)Jir~/^e^(S)^Vf (S)i-Pu^P^;
UV=^(S)Jp(U^o)r^3Co^(5)^OjA/^(Sj
(S)^Pv-^pu^ (5); (S)^Pui P (cO^o)^ *'~
Р(со*7)Г"3 Яо 63ri£jo-*и, -ьоев ^рЛ бп~? Qt
exiy ип-г Вл /Р тур-г
59
Здесь величине Д является числом (-3^).
Поразрядным умножением величины V = <Г + h на это
число вычисляется величина <Г - h , после чего определяется
величина по формуле -Ьг = V~/.
Кроме того,поразрядным умножением величины У'Л? = /*/4»,
///„/< ? на эту величину Z] вычисляется выражение
2 - V- 1О = /-/&
( в подпрограмме это выражение вычисляется с обратным знаком,
так как и величина Zo получается с обратным знаком ).
Время выполнения умножения не превосходит 2900 мксек,
в том случае, когда порядок результата не меньше - 40 ;
в противном случае,требуется дополнительно 1000 мксек.для
того,чтобы положить результат равным нулю. Для выполнения
деления дополнительно ко времени выполнения умножения тре-
буется время,не превосходящее 4965 мксек.
Подробно по командам данная подпрограмма приведена
в приложении 4.
60
§ 10. Подпрограмма вычисления |/Z7
Алгоритм вычисления V/7 использует соотношение
л[и=и- (7= и-
причем предварительно вычисляется
LP =
по формулам
При U<0 происходит
I 32
при U =0 значение
при Pu+2.Pv=0
( Ю.I )
при Рц +2Р(Г = -/.
аварийный останов по команде
23 ( оператор Qa ) ;
1/2/ полагается равным нулю,
а величина it
величина V
нормализуется и
не вычисляется ; в остальных случаях
; вычисляется по формуле ( 10.) , не
поэтому удовлетворяет неравенству
'Гб/з^У<
(10.2)
Вычисление величины V производится в два этапа:
сначала с помощью полинома вычисляется нулевое приО—
лижение этой величины ,затем оно уточняется по
итерационной формуле. Это обеспечивает наименьшее время
счета, если использовать итерационную формулу достаточ*
но высокого порядка точности и получить = V + Ео
настолько точно, чтобы после первой же итерации была
достигнута требуемая точность вычисления величины V .
Оптимальной оказалась итерационная формула
61
V = Um Vn, Vn4 = Vn (35/m ~ 35/'6 + ^/6UeVX-s//t>U3VnL
которую легко получить , если воспользоваться методом
Шредера для получения функциональных итераций
высокого порядка. При этом, если положить ,
величина определяется из соотношения
= 3S/e V~3£„v.
Однако,в таком виде эту формулу использовать нерацио-
нально из-за сравнительно большого накопления ошибок
округления,но ее можно привести к следующему виду:
V^/ Нл + 3/в Нп -5//&Нп )( ю.з )
где Нп = U’V^U — г.Еп У~\
В действительности из-за погрешности выполнения операций
умножения и представления коэффициентов в машине величина
Vw/ будет определяться по формуле
Здесь Нп= U^n-/= Hnt6'ol /6о/< '/г-З''6,
причем,величина Ип определяется точно,так как Vn. пред-
ставляется коротким кодом ( запоминается в короткой
ячейке / ) : - представление в машине
соответствующих коэффициентов формулы ( 10.3 ).
Тогда величина Еп+/ будет определяться из соотно-
шения
= 3^/e V3fn -'/г^о Vn+6,+ Нп ( 10.4 )
62
где иу— погрешность выполнения последнего умножения
/6//< '/г 3 ,а член Нп Z) включает все остальные
погрешности:содержание в качестве множителя величины
в какой-либо положительной степени и возникающие из-за
погрешности выполнения операции умножения и представления
в машине коэффициентов формулы /10.3/.
Последним членом правой части соотношения /10.4/ можно
практически пренебречь при достаточно малых по модулю
значениях величины Нп .Так,например,уже при 1Нп}+ OJ
выполняется неравенство /л/< 3,7- з~,£»
Верхняя грань погрешности - ^6oVn+ 6/ не зави-
сит от числа итераций / как йот порядка точности
итерационной формулы/,поэтому оценка погрешности
вычисления величины V ,удовлетворяющей неравенству
/10.2/,не может быть меньше
(MVe + '/г )’3~'е< иг з-'е,
т.е. Vn-t-/ может отличаться на единицу младшего разря-
да от величины V - наилучшего представления в машине
величины V .Даже в случае,если величина V будет норма-
лизованной (V< 3/<э) ,оценка погрешности £*/?*/
не может быть меньше 7/8*3"''*' ,т.е. по прежнему можно
гарантировать лишь выполнение неравенства /Vn+< - V
Тогда достаточно выполнения неравенства
/ Но Д/+/3% Vе, 0,36-3 МЛ/
чтобы после первой же итерации по формуле /10.3/ получить
величину V/ ,отличавшуюся от величины V не более чем на
единицу младшего разряда.
Величина Vo согласно /10.1/ определяется из соотноше-
ния \rJVo при Ри±2.Ру=О
° [VS Ve при Ри * Ери = ~/
где Vo - приближенное значение величины z/i4/
^/з < < i/г.
В связи с этим величина Но должна вычисляться по формулам
/4 = / U'Vod-/ при Pti+PPv -О
[(^Voj-VoU4 при Ри^гр^'/.
Величина Vo вычисляется с помощью полинома
Vo =ао + а, и + агиг + а3 и
63
где
с/о= 2,3594
= - 2,6393
с/г = 1,6872
а3= - 0,4088
Этот полином получен из ряда
'/& = /-/ (U-/h В
сворачиванием с помощью полинома Чебышева,при чем величина
Ур будет удовлетворять /с учетом погрешности представления
в машине коэффициентов этого полинома,задаваемых короткими
кодами/нерав енству
Оо- ЧтГиО b.-l-iO-3
ввиду того,что
г _ (Vo - ^/тГи при У< V?
[V3 (Vo- </1Ги] при
будет выполнено неравенство
3S/a V'3EX< o,65 icre< о,зг-з~'*.
Кроме того,бу дет выполнено неравенство///?^ О, Ок- 3~^
так как в этом случае / Но/< .
Следовательно,условие /10.5/ будет выполнено.Погрешность
вычисления величины U• V будет определяться выоажением
t.-Ui-S, ICI^-З-'*.
Можно доказать,что в данном случае
/6 и^б'/< 5/& -3'/е.
Данная подпрограмма размещается в одной зоне МБ и описыва-
ется следующей логической схемой:
64
Вычисление Vu
J------ ----------
^1г(1-3,Б)Ри - 1/зЕй => Ptrj Pu-=^(F)i(F}-^Pr;
(F)^-pu U =*(S)J p(ul +1) Г'р(ь) -0)^ £- iOf„ -*> pUi
O-^(Sj]Bn^t [(5)^(p); (S)tde^(S),
a,+(s)(R)~>-(5)i a0+{s)(R) ^(s)j (f)+pv (F)
(5)E e— (5), (5) -* (fij, (fi) -» (5)j CdB(S)HadB^ (S);
(S)W ^(5);(s) V -* is)I (S)^ (P)^ is), (SJ -> V; (S)U-^ (S)J
^FopH.fS)-^ Ui_ M+Pu -^(S), (S)^Pu; 15)&в ~^fS)J
0X/P ^3 e~.
P(aj^o)' ип-г P(cJ=f4y QoBnf 9г_
^Bxiy Ы/7-в
Здесь величина Е равна числу 1, а величина d равна
О, число V3 и пятиразрядный код - ^отстоят в памяти
соответственно от величин Е и d на "расстоянии",равном
Так как порядки чисел являются пятиразрядными кодами,
то получение в регистре F величины Ри + 2. Ру вместе с
использованием величин Е^ и dQ обеспечивает счет Vo
и Но по формулам, соответствующим значению этой величины
Ри + 2Ру .Для того,чтобы уместить подпрограмму в одной
зоне,пришлось пойти на некоторое увеличение времени сче-
та в случае,когда результат полагается равным нулю /см.
оператор БПГ*'4'/.
Время вычисления du не превосходит 8500 мксек, в том
случае,когда порядок результата не меньше -40; в противном
случае (довольно редко) требуется дополнительно 1795 мксек.
Подробно по командам данная подпрограмма приведена
в приложении 5.
§ ।. Подпрограмма вычисления SinU и CosLl
Алгоритм вычисления Sin U использует соотношение
где Ц = ZJTk * По + to, к = [ и/г jrJ<Гл,
[2 (, /to/^t Btnuc^eme Cos U
сводится к вычислению Sinj> (-//^'4
где [2 (и/гРГ~ + , t{ - ~K)i-
причем ввиду того,что /и/гтг -к/>
будет выполнено неравенство /с/у /< / ,
Для вычисления Sin используется
полином 9-й степени,
Sin t — aot + cf3t7+cfvt9,
ГДе 0о= 1,570 796 290
07 =-0,645 963 358
аг = 0,079 688 475
Оз =-0,004 672 220
ov= 0,000 150 817
66
Этот полином получен из отрезка ряда Тейлора для
Sin х, х сворачиванием с помощью полино-
мов Чебышева и позволяет вычислять ///< /
с абсолютной погрешностью,не превосходящей 1/6?3~/<5,
Дальнейшее понижение степени аппроксимирующего полинома
приводит к внесению в вычисление Sin~t недопустимо
большой абсолютной погрешности.
Для уменьшения накопления ошибок округления эта
формула приводится к несколько другому виду,в частности,
сначала вычисляется величина 3Sln ,а затем
производится сдвиг её на один разряд вправо /в подпрограм-
ме это реализуется с помощью нормализации величины ZSin^-t
и последующего уменьшения её порядка на единицу/. Окончательная
формула для вычисления 3 Sin ~t имеет вид:
3Sin ft = ((((Бч - + (П.1)
где Г - приближенное значение
Т - приближенное значение
а цде Z = о,1,2,3,4 обозначает представления в
машине коэффициентов Вс =2 (A:/3}L'CIl ,имеющих следующие
численные значения:
Во= 3, 141 592 580
S/= -1, 722 568 055
Вг= 0 , 283 336 799
=-0,022 149 785
V 0,000 953 313
Величина Z определяется по формуле
Г = (Со * U- 9*)х f + Cf- 3<С ,
где Со - представление в машине числа 9/зл,
( 9/гл - Со)< Св равно нулю при вычислении SinU
или является представлением в машине числа 3/2 при вычис-
лении COS и (ь этом случае Д С,= 3/г~с< = -з~'6
а величина d может принимать одно из трех значений:
0,1 или -1. Отсюда:
Во = % (Со - а/гл)и + г/з ас, t '/г 3~'£, /б//< '/3 -3
67
т.е.абсолютное значение Ао может быть весьма большим
при больших абсолютных значениях L/ .Однако, ввиду того,
что вместе с увеличением абсолютного значения аргумента U
увеличивается и абсолютная погрешность его представления
в машине / U предполагается приближенным числом/,можно
при оценке погрешности ограничиться случаем /и3/г,
т.е. Ри < О , Тогда будет выполнено неравенство
Эта погрешность Д, вносит в вычисление 3 Sin t
погрешность,равную Льо соз^/г t , причем величиной 0(Ьб)
практически можно пренебречь.
Величина Т вычисляется по формуле
т = Д *(t - t) = &-з
причем ошибка округления 6" согласно /11.1/ вносит в вычис-
ление 3Sin J/£t погрешность,не превосходящую по абсо-
лютному значению величины /6, t 6\/ ,так как коэффициен-
ты Pi с ростом l убывают по абсолютному значению и попере-
менно меняют знак.
Следовательно абсолютная погрешность б (t) вычис-
ления 3Sin~t ,включая и погрешность метода,будет удов-
летворять неравенству:
Iff (t)/ + t6/+/A.hlbtl> (П.2)
где A, - погрешность,вносимая из-за погрешности выполнения
умножения при вычислении полинома /11,1/
Л, = &o + t 16-11^3-'* о,1,2,3,^
а 4 - погрешность,вносимая погрешностями ьРс представле-
ния в машине соответствующих коэффициентов
/\& = Т (&Ро + Zl Pt Т + ^РгТг-г др3 Т3-г & PvTy)а
В данном случае справедливо неравенство
/Дг/сЗ'"
Тогда,если положить /б'/=/6о/=/^/=/<^/=/!^/=/^у/=/ 3
неравенство /11.2/ можно переписать в виде
Cosgt + ll/Tl+lTlTt Ts^ T3)J.
68
Правая часть этого неравенства вблизи точки /t/ = 1/5
достигает максимума,не превосходящего 3 «
Таким образ ом, абсолютная погрешность вычисления SinU
или Cos и равна ЧзS(t)+^-3~,е и не превосходит
при ]и/< f значения 5/2 “ 3~/zf .При этом следует
иметь ввиду, что относительная погрешность при вычислении
значений или&з^, близких к нулю, будет весьма большой.
Данная подпрограмма описывается следующей схемой:
Вычисление Cos Ц Вычисление Sin U
I [Зей =^(Р)1БП! ^[O-^(F)3j [3/гг1/ ^(S)i CdSI5)на (Sj;
^(S)^^.(S),(5j^U, (S)SB^(S), (S)-^(B);
(Shu -» (S); (fi) —(Р}]Р/М*о)Г~г[-(5) ^-(S)rC(S)
P(CJ*oy~3[(S)l/ — (S)LC06(S)m -h?(S); (5) -* (R),
l>lK)-*lS);lSh%,-'*(5); *(S)i 6^lS)(R)-^(5J;
B<,+ (S)W’* ($), (S)u^- (S); Hopa.(5)^U V— (S);
(sj-e, -^Pu]EnS~№C^P^] 6П<~ Bx * ип~г
Здесь величина Z равна нулю; на "расстоянии" - ЗСЯ
в памяти от этой величины отстоит число 3/2.
Остальные обозначения!те же самые,что и в предыдущих
схемах.
Время вычисления Sin I/ не превосходит 6610 мксек,,
a CoS U - 6710 мксек.
Подробно по командам данная подпрограмма приведена в
приложении 6.
§ 12. Подпрограмма вычисления е и
Алгоритм вычисления е и использует соотношение
еи= 7. з\
где P^U/en3U]Cnt г=3\ 1 = ^/епз и}Сл.
При и?£-з5 происходит аварийный останов по ко-
манде 0 02 23 /оператор Q3 /\ при U^.-~ 35
результат полагается равным нулю,в остальных случаях ре-
зультат выдается в нормальной форме /см.§ 7./.
69
Для вычисления величины Z используется полином 7-й
степени /+ t к, (12ф1)
где
df= 1, 096 612 296
0 , 603 474 560
О3^ 0,220 994 948
о^= 0, 060 694 247
<£= 0,013 335 959
0 , 002 464 222
а7= О, ООО 385 256
Этот полином получен из отрезка ряда Тейлора для
3* ,сворачиванием с помощью полиномов Чебыше-
ва и позволяет вычислять величину Z с погрешностью,не
превосходящей /с учетом погрешностей представ-
ления в машине коэффициентов этого полинома/.
Дальнейшее понижение степени аппроксимирующегр полинома
приводит к внесению в вычисление 3* недопустимо большой
погрешности.
В действительности из-за ошибок округления погрешность
вычисления величины Z будет иной.Во-первых,вместо величи-
ны t в подпрограмме вычисляется её приближенное значение
Л = £+ло по формуле
= '/з * (со*и-зр±),
где Со - представление в машине числа ,
(сь ~31е„з)< У/о'З '6\ Отсюда '/з (Со- 3/&>з/6”/<'/г. 3 /6 #
Здесь так же,как и в предыдущем параграфе,абсолютное значе-
ние 4О может быть весьма большим при больших абсолютных
значениях- U ,но при этом будет увеличенной и абсолютная
погрешность представления в машине аргумента tt т.е. вели-
чина t будет содержать уменьшенное число верных знаков.
Поэтому при оценке погрешности здесь можно ограничиться
случаем }и!< 3/g , т.е.
Тогда будет выполнено неравенство
/21 »/z Uko-3''e
70
Эта погрешность вносит в вычисление величины Z
погрешность
<£(t)=6 3*епЗ-Ю(Ь<,), 16а)1<1ло1^Епз^ г,/аоЗ-'е.
Во-вторых,при вычислении полинома /12.1/ из-за погрешности
выполнения будет внесена дополнительная погрешность
/Ь/С'б-З-*, Л-=<«?, .... 7 .
Ясно,что /(Г, (t)l< */з ' 3 /е . Следовательно суммарная
погрешность вычисления величины Z не превосходит Л. з“ 16
т.е. полученное значение величины Z будет отличаться
не более чем на две единицы младшего разряда от величины
Z наилучшего представления в машине величины 2 .
Данная подпрограмма размещается в одной зоне ML и
описывается следующей схемой:
Вычисление еэср С/
[Ри~ к (SJJ Р(М * (р), 3/&>3 17^ (S)j
(s)=^ и- Сдб. (Ь)на (р) (P)^(F};
U ^(S)j Сдё(5)наРи ^(S)t Cd6(S)*cr
^(5)^(3); (S)^(R); U7(r)=^(S)- cfs + (S) =^(S),
dv±(S)(R) ^ (S);
a^(S)(R)=^(5); af±(S)(R)=^(S); 1+(S)(R) (S)J
Щр) => Pu, Норн. (5) => U - M+Pu =*> (S)j
(S) Pu ; (S) ® в =* (5)] P((J *О)Г~ Bx P
P(CJ 4 Я БПГ^В* CLr (s) J
P(CJ о) P ((J [- РОЕЯ (F); 0=^(5)]БПГ3
Здесь используются те же обозначения,что и в преды-
дущих схемах.
Время вычисления етр U не превосходит 7030 мксек.в
том случае,когда порядок результата не меньше -40, в
противном случае требуется дополнительно 1980 мксек.
Подробно по командам данная подпрограмма приведена в прило-
жении 7.
71
§ 13. Подпрограмма вычисления £п U
Алгоритм вычисления £п U , L
соотношения „ ,
Вп (1/3 Ри) = Ри ВпЗ+ Bn U,
Bn U = -ВпАс + Bn (At и),
где At подбирается так,чтобы выполнялось неравенство
,использует
/-Н</+Нt Н = if3 - '/т/5 */ .
Ясно,что в этом случае Ас принимает одно из двух значений:
At = 3/з № - /)^3 , А&=2(\Гз-/),
В случае иО происходит аварийный останов по команде
О 01 23 /оператор 9У/.
С целью уменьшения накопления ошибок округления в под-
программе предварительно вычисляется величина ЗВпЦ ,
а затем она сдвигается на один разряд вправо. Кроме того
вместо величин и Ag были взяты их приближенные
значения и Лг ,являющиеся точными короткими троичными
кодами ~
' А, = 0.845 450 389 и
1*,= 1.464 106 081.
Это уменьшило влияние ошибок округления,а также осво-
бодило две короткие ячейки. В этом случае величина Н будет
удовлетворять неравенству
0,2682.
Для вычисления величины ^//используется полином восьмой
степени* у/ г .
£п U = ^/з(-ЗЕпАс +'£ аК'hi ) /13./
где Д, -Ac U-/, ,а коэффициенты имеют следую-
щие численные значения:
d,= 3,000 000 000
Цэ =-1,499 999 418
<Ъ = 1,000 014 904
ач =-0,750 071 459
cfs = 0,598 345 925
О5г =-0,497 027 892
at = 0,473 708 276
=—0,426 611 797
72
Этот полином получен из отрезка ряда
Рпи = '/з(~зепЛ1+ hi)
сворачиванием с помощью полиномов Чебышева и позволяет
вычислить величину ?п U с погрешностью,не превосходя-
щей 0,9* /с учетом погрешностей представления в
машине коэффициентов этого полинома/.
Из-за ошибок округления вместо величины hi в подпрог-
рамме вычисляется приближенное значение этой величины
hi = hi + Ai по формулам.’
Л/= —) при U > 3/г
he - 17* при и < ^/г
т.е. /zjt /< £ з ,
Погрешность Довносит в вычисление 8п //погрешность
<£ г « А с/{ +Ьс+ О (Ас), /&н /< 0,69 3
При вычислении полинома /13.1/ из-за ошибок округле-
ния будет внесена дополнительная погрешность
Эта погрешность будет удовлетворять неравенству
/<£/< 7з X /&/ нк’'+ /ЛЛ о,57 з .
Суммируя указанные погрешности,получим,что абсолют-
ная погрешность вычисления z^Z/не превосходит 2,16» З"1^ .
Кроме того,для//^/=1 к этой погрешности будет добавлена
погрешность представления в машине ,не превосходящая
0,33- З"16 .
Следовательно суммарная абсолютная погрешность вычис-
ления/frZ/для /Ри/^ ) не превосходит 2- .з” 16
При/А//>/ значение PnUбудет сдвигаться вправо по крайней
мере на один разряд,поэтому и в этом случае полученная
мантисса 8п U будет отличаться от наилучшего представления
в машине этой мантиссы не более,чем на две единицы млад-
шего разряда.
Данная подпрограмма помещается в одной зоне МБ и
описывается следующей схемой:
73
Ьычисле ние Рп U
(F); ри (5Л 65? => (p)J р ((л) *о)Г'[:нОрн.($)=^(М,
^+зея^> (SJ; ~(5)(Sfi^LCS)U=>(SJ]p(pj^
^(SjJPiCP^d^CJ^ ^(FjpCU^(S);
(5Г Л,®-/ =* (S); (SJ (R); a3(R)^ (SJ; q7 + (5J =^(Sj
Cfe i- (S)(RJ => ( SJ; Cjs f (SJ(R) =» (S); av + (SJ(RJ => (Sj;
q3 + (5)(R) =^(5J; аг ★ (SJ(K) => (5); a, +(SJ(R) =* (SJ;
B, + (S)(RJ => (S); СдВ(5)нс/ (5 J ; CdP(S) на Pa => (5),
(S)+(fi)tn3 =*> (SJ;Hoprt.(S) => UijJ-Pu^ PuJ&7^ ex/~v .
Здесь величины Тг и />а =- З^лЛ/ ,отстоят в памяти’
соответственно от величин Я/ и В, =- 3£лЛ ,на "расстоянии”
зеЙ .Остальные обозначения такие же,что и в предыдущих
схемах.Следует также заметить,что нулевой результат выдается
подпрограммой в виде нулевой мантиссы и нулевого порядка.
Такое отступление от формы /7.2/ было вызвано затруднениями,
связанными при размещении данной подпрограммы в одной зоне.
Время вычисления/?л/7не превосходит 7605 мксек.
Подробно по командам данная подпрограмма приведена в
приложении .6.
§ 14. Ввод библиотеки стандартных подпрограмм.
Все эти подпрограммы вместе с ИП-2 отперфорированы на
одной перфоленте и вводятся /с фототрансмиттера № 1/ нажа-
тием кнопки "начальный пуск”. При правильном вводе всей
библиотеки произойдет останов по команде
0 01 23.
В начале этой перфоленты имеется зона с программой
ввода всей библиотеки.
За ней следуют подпрограммы в следующей последовательнос-
ти:
Зона переходов ИП-2 /вводится в зону 14 МБ/,
Основная зона ИП-2 /вводится в зону 13МБ/.
Подпрограмма для выполнения действий типа
сложения /вводится в зону 12 МБ/.
Подпрограмма для выполнения действий умножения
и деления /вводится в зону 11 МБ /,
Подпрограмма вычисления /вводится в зону 10 МБ/.
74
Подпрограмма вычисления Sin Ц j Cost/
/вводится в зону 11 МБ/.
Подпрограмма вычисления еи /вводится
в зону 12 МБ/.
Подпрограмма вычисления //^/вводится
в зону 13 МБ/.
Все эти зоны,в том числе программа ввода,имеют свои кон-
трольные суммы, которые хранятся внутри программы ввода в
последовательных длинных ячейках памяти, начиная с ячейки 0 44.
При вводе каждой из этих зон происходит вычисление
контрольной суммы введенной информации и сравнение её с
заданной контрольной суммой,соответствующей данной под-
программе.
В случае несовпадения этих контрольных сумм происходит
останов по команде
О 42 23,
причем в регистре S будет храниться разность между получен-
ной и заданной контрольными суммами. При нажатии кнопки
"пуск" полученная контрольная сумма посылается в регистр
R и повторяется ввод этой зоны,для чего необходимо предва-
рительно на фототрансмиттере № 1 передвинуть перфоленту на
одну зону назад. В случае несовпадения контрольных сумм
программы ввода необходимо повторить ввод с самого начала.
Контрольная сумма какой-либо зоны информации получается
суммированием всех коротких троичных кодов этой зоны с пред-
варительным сдвигом их в регистре S на девять разрядов вправо
/на место второй половины регистра 5 /.
Подробно по командам данная подпрограмма приведена
в приложении 9.
75
ИП-2 (Основная зона МБ 13)
Приложение I
Адреса Jtcp~ Е Команда Комментарии Адреса "Пор - E Команда Комментарии
„ 43 44 42 __ 40 41 41 42 43 44 34 ?3 32 31 30 31 32 33 34 24 33 22 21 !° 21 _ 23 22 _ 24 14 I3 12 И 40 II 12 J3 14 04 03 02 _ 00 01 01 I I I 0 I I 0 I I 0 I 0 I I I I 0 I I I I 0 I 1 I 0 I I 31 13 14 01 44 32 00 23 21 00 32 04 43 32 23 42 03 21 44 34 44 03 44 44 00 00 22 42 10 33 33 00 10 10 34 03 00 31 23 34 23 10 03 10 31 20 23 20 33 II 13 03 10 32 23 30 0=>(Р); вл v [Фе! [JQ] =* №1 еЛ 1Чо=^(Р)', Вх1 чп-о [<РО] Г Но] БПГ* 1 xpcs) (S}+Px^(S) (5J_=> Pq I 25 * F", Sx Hl (P) => (6) ((j.) + sen) (S) Jltpj. OOQf (S)Mo Ozj 00^ (S) (S)-MO^(S ) (<d) + 5e»)^(F) (P) 4 Mo => (F) (F) => Mo ЦП-О1— 2 [Mjl [VoJ (s) (fi)^ a W (^) 02 14 II 12 24 21 22 34 31 32 44 41 42 2 03 04 13 12 10 II 13 14 23 22 20 21 23 24 33 32 30 31 33 34 43 42 40 41 43 44 i I I i i I i i 0 0 0 I I I 0 i 0 i 0 0 0 0 0 0 0 0 0 I 41 42 41 42 23 23 23 22 00 00 00 00 23 32 00 43 04 00 00 00 00 00 00 00 00 00 00 02 20 33 33 23 10 13 03 10 00 00 01 44 23 30 24 30 24 00 00' OOj 00 00 oo; 00. 00 00 II 12 OOSifl (S)-^ (SR< (5)^ (6)- (Р) + (F)- W- (s) = Pu = (S)- БПr u Pu w V Pv Mo 00 => (S) (5) =* (5J => (F) 5eA->(P) >(e) (F) * Y -> 2
х/ Норм - нормализация
76
ИП-2 (зона переходов МБ 14 )
Приложение 2
Адреса Tiq> 3 /, 0 Команда Комментарии Адреса 17(р~7гО Команда Комментарии
О о 1—0 Ж* 1-11 го» го) го> col СО) СО» Ж» 1>| •₽» 1—<1 to Ь-11 ГО 1—II l£>l ГО 1—1| ГО 1—11 *•» О О О, О »—1| 1—1» 1—ll 1—1» 1—1> 1—li ГО| ГО) ГО» ГО) ГО1 ГО) col COI col СО4 СО1 со» rf3-! »£“< М О tol СО| »> со Н О М W| w Н о NJ UI >₽ w Н О Ml WI W Н О N>l 0JI I 13 33 I 42 10 0 03 01 I 03 03 I 44 10 I 00 34 1 32 13 I 03 30 I 04 10 I 03 10 I 32 20 I 24 33 I 03 33 I 21 20 I 44 33 I 03 23 о со зГ I 01 20J I 02 23 I 02 10 I 00 20] I 01 20J I 13 00 0 00 00 0 00 00 0 00 00 0 04 00 0 44 44 ОЗ^С^Р* W -» (F) &ыход (Г) => Aocl 14, (С) [Ф,] =>/>,! (Р}+?А =>(F) йхь => (5; уп-о^ 1 Aoct => СР) 90Л л 00 =* (S) {S) + ~iO12O=>(S) (S) + fS) O^i ZJxs =*• (S) (5? => 0MJ& => (S) (S? (8) (8) =» СР? О^оо =>Сз) БП^ г Л Де, (8) (ЧСл) 02 03 04 14 13 12 II 10 II 12 13 14 24 23 22 21 20 21 22 23 24 34 33 32 31 30 31 32 33 34 44 43 42 41 40 41 42 43 44 2 0 00 01 I 43 30 I 44 33 I 02 23 I 00 32 I 44 03 I 02 10 I 03 30 Т 14 33 I 13 33 I 13 33 0 04 10 I 00 32 0 03 30 0 00 20' 0 01 20. 0 02 23 0 02 10 0 03 30 0 03 20 0 03 33 0 03 33 0 03 23 1 00 31 0 43 00 0 14 00 0 00 10 I 21 44 If 0^ 3 00=> (S)+ 1005 4 (8) f A//J =* (р; => н, (8) => CPJ (S) Дхг =* СР} [Мэе.^] С^Pr'J Лхс => (S) Од <£i, оо С$) (5) (&) (8) (г) *> (3) ООООЮР ($) (S}+ (syeF С S) (S) => A'Xi. f /1 CS) БП v Mi
77
Операции типа сложения (зона МБ 12)
Приложение 3
Адреса JTep^D Команда Комментарии Адреса Лер =0 Команда Комментарии
44 43 Г 32 30 1/^(5), OS. Зч 02 03 Г 43 32 (5) ! Pue-*(S)
42 0 40 40 - (5) ~ (s) 04 I 43 23 (5) ^Pu
41 1° I 32 2 3 is) 14 I§ Г 31 20 Tip oooo^(s)
41 0 33 00 БПГ^г 12 I 21 10 yp or^^tyun-г
42 43 I 32 30 U => (S); OS С Л II 10 0 14 13 УП G
44 0 40 40 -15)-* (S) II I 44 23 о
wi col 1 OOI I 32 23 (S)^u 12 13 I 21 00 бПГ^Вх!У ил~г
32 0 40 30 -! -> fS?; ЁЧ 14 0 44 10
__ 30 ГН 40 _ 23 I 32 03 !F)-^U
31 31 I 41 23 (S)->V 24 22 0 41 10 - чие„ =* (f)
Q9 33 0 44 10 0 =^(F); 21 20 I 43 03 (F) => Pa
34 I 32 30 и > (S) 21 I~2I 00 5pF- BxLV ОП~ё.
24 23 0 II 10 УП-ОГ^3 22 23 I 32 30 U=^(S)j
22 I 41 30 v => fs; 24 0 43 20 St (JO(S)=^(S)
от 0 02 10 УИ-ОГ^" 34 33 I 32 40 /u/^ (S)
С1 — 21 I 41 23 Норм (S) I 32 23 (5) -^(U)
22 23 Г 43 33 (S)-f~pv=> (S) 31 30 I 41 30 V ^(5)
24 I 43 23 (s) pr 31 I 41 23 Норм (S)^V
Т4 13 I 43 33 (S)-Pu (s) no 33 f 43 33 (5)+Ру=>(5)
i2 0 13 13 УЛ-/ r^5 34 I 43 23 (5) -* Pv
II 1° II 0 40 40 0 12 10 -(S)~*(S) -eeH^(F)^ 44 « 42 I 41 30 0 40 20 v-5- (S) -si^n (5)=^ IS)
12 I3 14 I 22 23 I 41 31 (S)~»(f>)^S V® -*(S) 41 40 41 0 30 00 0 44 00 БП1^' -чоей
04 03 I 22 20 сдЗ($)на(р)^ (S/ *42 43 0 30 00 /
02 I 32 32 (S)->t/G * 44 0 00 00 0
_ ОС 0 14 10 Уп-о r^e 0 00 13
01 Г — — —
01 I 32 23 Норм (Sj U I 02 44
78
Приложение 4
Умножение и деление (зона МБ II)
Адреса Jtqj—O Команда Комментарии Адреса Jicp = 0 Команда Комментарии
44 I? 0 24 44 1/г. 02 03 I 41 40 (s)V-^(s)
42 I 44 44 04 0 21 10 yn-o^3
41 40 I 41 30 (ЬЛ Ум 14 13 I 32 23 //opM.(S)=^ L/
41 0 03 00 Б z 12 I 43 33 (5)+Pu-
42 43 I 41 30 V => fS); Ren II 10 I 43 33 ($)+ Pu^(S)
44 I 41 23 Бор(S)=>V II I 43 23 (S)-^Pu
34 33 I 43 33 (S)+Pv (5) 12 13 I 31 20 7Гр ООО О ==^(S)
32 0. 42 20 14 I 21 10 О/7-Б
зГ зо I 43 23 (S) Pl, 24 23 0 21 13 ЧП-уГ^ 3
31 I 41 30 V - (S) 22 I 44 23
32 33 0 30 10 ЧП-0Г^г 21 20 I 21 00 Бр Ox /г OO-p
34 0 44 20 d'-ь =* (s) 21 0 44 10 0-^ (F)^3
24 В? 0 41 23 22 23 I 32 03 (F)-^U
22 I 41 40 24 0 34 10 -poe„^(F)
21 20 0 33 33 -ьг=>(8) 34 33 I 43 03 (F)=^ Pa
21 0 42 40 ^(S) 32 I 21 00 5nr^ Bxtyoo-P
22 23 0 43 33 aP(s)->(s) 31 30 0 00 23
24 0 34 43 -a.t (S)(H)+ /5) 31 0 30 00 /
и 13 0 31 43 h(s)(k)~> (s) 32 33 0 30 00 -/
12 0 33 43 -^(5)(R)=^(5) 0 30 02 = ooo7k
if 1° 0 41 40 (5/Z ‘(5) 44 43 0 31 30 G/г = O, 95043
II I 41 40 -го—(К),//})¥*(5) 42 I 44 14 -C/3 = - 7,5/256
12 I3 0 44 20 (S) 41 40 0 00 00] /
14 0 44 43 0+(5)(R)^(5} 41 0 00 00J p
04 03 I 41 23 Hopri.(5)=>V-^ 1 42 43 0 00 00 ct). y 000/^77
02 Т 43 33 (S)+Pv-*(S) 44 0 00 00 0
01 00 I 43 23 (5W Pr <“> 0 00 14
01 I 32 30 (S) 2 I 20 13
79
Вычисление S/'/i UbsU (зона МБ II)
Приложение 6
Вычисление/7Z (зона МБ 10)
Приложение 5
Адреса JTcp —О Команда Комментарии Адреса JF<P Команда Комментарии
44 11 42 41 1° 41 42 £3 44 зГ 33 32 3J 30 31 32 33 34 24 I3 22 2f _20 21 22 23 24 14 I3 12 П I10 II 12 Z3 14 04 03 02 01 00 01 I 21 33 Т 43 30 0 42 40 Т 02 33 I 43 23 I 43 10 I 43 03 Т 43 13 Т 43 03 I 32 30 0 14 13 0 И 13 0 00 20 о оТ То Т 43 03 0 30 00 1 42 21 0 Т2 03 0 II II 0 33 33^ 0 II 41 I 32 23 Т II 23 0 24 40 0 23 33 0 Т2 43 0 44 43 I 43 13 Ри (S) -^(5) (з)-'/зев^5 (S) Ptr Ал -> (F) (F)-^(Pr) (FH P«^(F) (F)^Pu U->(S) уп-н^~' уп-рг~г -роен —(f) (F)^Pu БП^" № аз [ % -7* q2^ {S)^(R),a3(R)^S- (8)-(-аг)^(8) ctf + (S)(R)^ (5) a0+(S)(R) -*(5, (F)+Pir ^(F) 02 03 04 14 13 12 П 10 II 12 13 14 24 23 22 o"t 20 cl 21 22 23 24 34 33 32 31 30 31 32 33 34 44 43 42 41 40 J/ 41 42 43 44 z 0 21 4T I 22 23 1 22 33 0 23 21 T 22 40 T 32 40 0 21 33 T 41 23 0 II 40 0 14 33 0 42 43 T 22 40 T 41 40 T 22 33 I 41 23 I 32 40 T 32 23 T 43 33 T 43 23 T 31 20 T 21 10 0 23 13 T 44 23 T 21 00 ° *4 44 T 44 44 0 00 12 0 34 30 (5; (p) (?) (V (S)(p) (S)U^(SJ Fo =^(s) (S)=^V '^(^=^(S);HO-(R) /в +(S)-*(S) ~7a+ (S)(R)^(S) (S)(B)=^(S) (8)V^(8);-q> (S)-+V (S)U^(5) Fop/U8)=> Uj4 (s)->Pa=^($) (S) Pu Jtp OOF О =^(5) ivoo-г yn-or - ЧПЧГ^ БПРвх*ип-г Уг J
Адреса JTtp=O I Команда Комментарии Адреса Jflp=O Команда Комментарии
-- 43 0 43 31 D2 03 1 41 33 (S)~Pe =>(S)
44 — I ^/г.зг
42 1 14 14 04 1 43 23 (S)-^PU
— 40 1 23 To (F), Cos U 14 13 1 21 00 Вл /V UO-2
41 1 13
41 0 44 00 \5nr~' 12 0 33 10 - toeff =^> (Fi-1
_ 43 I 31 10 p ^(F)i Sen О 11 10 1 43 03 (F)
42 _
44 1 32 30 11 1 21 00 впгвшин-г
-- 33 0 44 40 \s)3/2jr=>(S) 12 13 1 04 24
3 4 - _ — Во
32 1 43 20 Ш(8)но Ро^(8; 14 1 01 11;
зГ30 0 43 40 (5) 24 1 42 44 в.
31 0 32 32 \(SpX.B->fSj 22 1 20 21)
- 33 I 32 23 \(S)=> и 21 20 0 11 31
32 ~ h?
34 1 31 20 (8) & В -^(S) 21 1 02 21J ис.
aS Ц 1 22 23 1 32 33 (S)-I- и ^(S) 22 23 24 0 01 43 I 31 32.
— 2D 21 _ 21 1 22 10 0 24 10 (fi) (F) УП-ОГ^г 34 33 32 0 00 02' 0 23 33J
22 23 24 0 31 20 1 32 23 -($)-* (S) (S)-*- и 31 30 31 1 44 44j 1 44 44/ з/г
-- /3 0 12 10 ЧП-o^3 33 0 00 00|
14 12 1 32 40 (Siu => (S) 32 34 0 00 00J L-o
_ io 0 23 20 CdS(S)на ~/=^ ( S) 0 20 00
11 0 34 40 S)^(R);64(R)=^(S) 44 - 42 0 00 00Л
- 13 12 _ 14 0 22 33L 0 21 43 (5)(k)-*-(s) - 40 41 41 0 00 00 0 00 00 сЁоЬодные
- 03 04 02 0 24 43 0 12 43 B<+ (5)(R)-*(5) &>+(S}(K)“>-(S) 43 42 c 44 0 00 00 0 00 00J ячейки
_ 00 1 32 40 (S) 0 00 7з
01 01 i 32 23| Наркоз) a 2 t ) 42 34
80
81
Начисление зона МБ 12)
Приложение 7
Адреса //«> — о Команда Комментарии Адреса 7/aj — Q Команда Комментарии
44 43 1 12 24 > 3 /п 02 03 1 32 23 (з)
42 0 21 30, э /8 п з 04 1 22 20 Сдё^)на (p)=^(s)
40 0 33 30 ) _ 13 1 22 23
41 - Ui 14 _
41 1 00 34J 12 1 22 10 (?) -^(F)
42 43 0 22 33) ГК 1110 1 32 30 U^(S)
44 1 44 11] 11 1 43 20 СдЬ(3)на PU=>(S)
— 33 0 13 оз) 13 1 41 20 Сд£(3)на^(з)
34 -- 32 1 04 20 йз 12 лл 14 0 44 20 Сдв (5)на-г=^(5)
__ 30 0 02 32 23 0 21 40 (S)^(R)ia7(Rh45)
31 _ 31 1 21 43 ач 24 0 24 33 Об+(5}^(3}
- 33 0 00 32) - 20 0 32 43 d^(S)(f<)~^(S)
32 _ 34 0 44 24) а5 21 21 0 31 43 ay+(s)(p)^(S)
24 22 0 00 14 1 24 43, а6 22 23 24 0 34 43 0 42 43 а3+(з)(р) -^(5)
. 20 0 00 01 _ 33 0 41 43 atU3)(R)^(3)
21 _ 21 0 42 23; 32 0 11 43
- 23 1 32 кЭ0 _ 30 1 43 03 (F) ^Pu-7^
22 31 .
24 0 13 10 чпог-г 31 1 32 23 Рорм/[3)^и
— 13 0 44 13 ЧП-и^я 33 1 43 33 (5H Ри (5)
12 0 01 10 - 40t^F)^y 32 34 1 43 23 (8)
10 0 11 20 О-*(5) _ 43 1 31 20 ТГср оооо -^(8)
И 11 0 30 00 БПГ~3 44 42 1 21 10 ЧП~Рг^~ 8* (7 вп-3
- 13 1 43 30 Pu=^(s)t exp _ 40 0 12 13 7П-/г^ *
12 14 1 34 33 (S)-4& => ($) 41 41 I 44 23
- 03 0 23 13 УП-S 43 1 21 00 БПГ^Вх
04 42 — —
02 1 22 23 (&->(?) 44 0 02 23 ^з~^5
оТ 00 I 32 30 u^(s) К. С. 0 00 14
°' 01 0 44 40 (5/ 1 10 23
Вычисление 4/(зона МБ 13) Приложение 8
Адреса Команда комментарии Адреса Команда Комментарии
p-QJ~O_ JFcp = (У
44 43 1 43 30 А/ => ($) вп 02 03 1 22 43
42 1 22 23 (S) =^(р) 04 1 32 23 Poprf,(S)^C/
__ 40 0 33 10 Мог'1 _ 13 1 44 33 (S)Pu->(S)
41 — 14 _
41 1 22 23 Иорн.(5)~>(р) 12 i 43 23 (5)^Р„
_ 43 1 11 33 (SJ+3& =>(S) - 10 1 21 00 БПГ*'в* /Р Ufl-2.
42 _ 44 0 13 20 -(5)^- (S) 11 11 0 34 34
зз 1 43 23 (S)^ puJ< 13 0 33 30'
CjOI го । 1 32 30 и (S) 12 14 1 00 34,
30 0 33 13 ЧП-1г^г 23 0 44 44
31 31 0 01 23 24 22 1 4423, рг
33 0 11 33 - 20 0 30 00
32 _ 21 a3
34 0 22 13 УП~1 г^3 21 о ii ibJ
— 23 1 11 13 (Р)+ЗеЙ -> (F) 23 0 22 22
24 1 32 30 (s)-^3 22 24 1 20 24 (гУу
„ 20 0 00 41 33 0 22' 14
21 21 0 20 33 (s)-/ => (sj 34 32 1 22 40, ^5
23 0 41 40 (S)^(K);ae(R)^(S ') 30 0 14 42 Cfs
22 24 0 31 33 a7+(s) =>(s) 31 31 0 14 21 a?
13 0 30 43 ae+(S№) ->(s) 33 0 34 11"
14 __ 32 -3Pn
12 0 34 43 as+(sj(/<)->(S) 34 1 03 42
if 2° ' й 1 о dQ + (S)(K) ^s) 44 « 0 24 43 >~3Pn
11 0 21 43 ct3 + ($J(R) ^(S) 42 1 44 24 J
13 0 24 43 аг + (S)(K) (3) _ 40 0 44 42 4
12 _ 41
14 0 44 43 Ch+(5)(P) =>($) 41 0 13 43
- 03 0 12 44 ) 43 0 34 24
04 02 0 31 20 CdL($)na -/* (5) 42 44 1 00 00 7/ =3
- 00 1 43 20 Cdfi.(5)//a Pu ^(Sj 0 00 04
01 > —
01 0 12 23 3 => (R) QZ Z—. 1 40 43
83
Ввод системы ИП-2 с контролем (зона МБ)
Приложение 9
Адреса J<P = о Команда Комментарии Адреca JTcp~O Команда Комментарии
43 0 00 02' 03 1 14 33 [/в] ,J
44 42 1 44 42 J £ пР м 02 04 0 21 00
— 40 0 00 10 ] - 13 0 41 io M
41 _ 41 1 21 44, £ ип-г, зп 14 12 0 13 13 (F)+efi =>(f)
0 00 11 - 10 0 41 03
42 - 1 НП-г, 0,3 11 >—
44 1 02 12) 11 0 23 13 УП~ЕГ s
__ 33 34 __ 0 00 13' О det/crnEt/Jt / типа с/?. 13 12 0 01 23
32 1 02 44) Е^я 14 0 41 10
— 30 0 00 14] 23 1 01 30
31 _ 31 1 20 13, z уннокеН. дел 24 22 1 14 34
32 53 0 00 12] V 21 20 i 14 32 CM-i-csj ~ч:фе]
0 34 301 LF 21 0 43 10 O^(F)
23 0 00 13 ] 23 0 42 03 (F)=^£
24 22 0 42 34) Lsi-П 'COS 22 24 0 12 13 (FI-eiFf, -^(F)-Ji
20 0 00 14] у - 33 0 43 31 Ol -^(S)^g
21 21 1 10 L ехр 34 32 0 43 20 Cd8(S)oo-9^(S)
23 0 00 04 ] у» _ 30 0 42 33 + s =*(s)
24 1 40 43, 31 31 0 42 23 (s;=>s
— 13 0 03 00 33 0 13 “13 (F)+3en-^(F}
14 12 1 00 00 -Si Ой 32 0 33 13 9П-Е^б
__ 10 0 41 10 ^2 0 10 13 уп- z
11 11 0 41 13 44 42 0 13 10 (F)
13 0 41 13 (F)+M-^(F) _ 40 0 24 00 БП1^7
12 14 0 14 32 (S)-S4^(S) 41 41 0 10 00 m=-s
- 03 0 13 10 уп-о^г 43 0 00 02 v*
04 02 0 42 23 Qs 42 44 1 44 42 z >
00 0 14 00 БПГ^3 0 00 02
01 01 0 14 33 2 1 44-42
84
СОДЕРЖАНИЕ
Предисловие......................................
§ 1. Троичная система счисления..................3
§ 2. Краткая характеристика и система команд
машины "Сетунь"............................• • • 12
§ 3. Система ввода и вывода.............f . . . jg
§ 4в Пульт управления ........................ 26
§ 5. Некоторые особенности программирования. . 31
§ 6. Интерпретирующая программа ИП-2...........3g
§7. Общая характеристика стандартных подпрог-
рамм в системе ИП-2.............................49
§ 8. Подпрограмма для выполнения действий типа
сложения........................................53
§9. Подпрограмма для выполнения умножения и
деления.........................................5g
§ 10. Подпрограмма вычисления ........gj
§ 11 Подпрограмма вычисления bin U и COS О. . gg
§ 12. Подпрограмма вычисления 8 v......69
§ 13. Подпрограмма вычисления tnU......72
§ 14. Ввод библиотеки стандартных подпрограмм . 74
ОЭ 1965 г.
Алг Ав
•2 ,,-joooo