Научная статья на тему 'Интерпретирующая система для ЦВМ «Минск-1»'

Интерпретирующая система для ЦВМ «Минск-1» Текст научной статьи по специальности «Математика»

CC BY
58
16
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Интерпретирующая система для ЦВМ «Минск-1»»

ИЗВЕСТИЯ

ТОМСКОГО ОРДЕНА ОКТЯБРЬСКОЙ РЕВОЛЮЦИИ И ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ПОЛИТЕХНИЧЕСКОГО ИНСТИТУТА имени С. М. КИРОВА

Том 187 1974

ИНТЕРПРЕТИРУЮЩАЯ СИСТЕМА ДЛЯ ЦВМ «МИНСК-Ь

В. А. МАЛЬЦЕВ, В. Д. ДЕЛЬ

(Представлена научным семинаром вычислительной лаборатории)

Электронная цифровая машина «Минск-1» является машиной с фиксированной запятой. Это создает существенные затруднения при программировании и зачастую вызывает необходимость программного введения плавающей запятой. Эффективным средством автоматизации программирования в режиме плавающей запятой являются интерпретирующие системы, предназначенные для реализации алгоритмов, записанных на языке псевдокоманд.

Рассматриваемая интерпретирующая система (ИС) позволяет моделировать на ЦВМ «Минск-1» действия в режиме плавающей запятой с числами, записанными в одну ячейку. При записи числа знаковый и 22 первых разряда отводятся под мантиссу, 8 последних разрядов — под величину порядка и егс знак. Результаты действий перед записью округляются; ошибка округления мантиссы не превышает 1,2-10-7. Смесь двоичных разрядов, отведенных под величину порядка, позволяют записывать числа с десятичными порядками до 4=38.

При перфорации десятичных чисел пять первых десятичных разрядов занимает мантисса, шестой и седьмой — порядок. При отрицательном порядке перфорируется его модуль, увеличенный на 20. Это »позволяет вводить числа с порядками до ±19. На печать число выдается в одну строку; порядок печатаемого числа не ограничен.

ИНТЕРПРЕТИРОВАНИЕ ПСЕВДОКОМАНД

Включение ИС осуществляется двумя командами:

К Ю К 0217 К+1 24 0140 0140

После этого псевдокоманда, содержащаяся в ячейке К+2, засылается в рабочую ячейку и интерпретируется.

Введем следующие сокращения:

4АК—к адресу Ак прибавлено 4000, к—1,2;

2АК— к адресу Ак прибавлено 2000;

К4— в псевдокоде вторая цифра больше трех;

КОП — коды операций в псевдокомандах.

По определенным признакам псевдокоманды разделяются на коды и псевдокоды, последние, в свою очередь, — на арифметические и логические. Носителями этих признаков являются 7, 8 и 19, 20 разряды ячейки, не используемые в командах машины, а также 0, 1 и 4 разряды.

Псевдокоманда до исполнения может быть автоматически переадресована. При наличии признаков 2АК в рабочей ячейке формируются исполнительные адреса

Ак =АК+С,

где С—накопленная константа переадресации.

При наличии признака 4А\ псевдокоманда исполняется как машинный код, при этом роль сумматора играет ячейка 0023.

По признаку К4 отделяются логические псевдокоды от арифметических.

Арифметические псевдокоды

В псевдокодах арифметических действий используются машинные коды операций: 00, 01, 02, 03. Введены псевдокоды 10—13 для вычисления функций. При небольших изменениях в ИС для вычисления функций могут быть использованы также псевдокоды 20—23 и 30—33.

Для функции назначается один из указанных КОП; начало стандарт-нрй подпрограммы (СП) вычисления функции указывается в ячейке с номером 0240-рКОП:

24 СП 0000.

СП должна брать аргумент из ячеек 0020, 0021 (для двухместной функции— из 0020—0023) и давать нормализованный результат в ячейках 0022, 0023. Некоторые СП библиотеки стандартных подпрограмм должны быть соответствующим образом скорректированы. Выход из СП — в ячейку 0100 или, если необходимо восстановить (0067), в ячейку 0077. При исполнении арифметических псевдокоманд ячейки 0022, 0023 играют роль псевдосумматора.

Интерпретирование арифметических псевдокодов осуществляется в следующем порядке.

1. Если Ах^О, то число из ячейки А1 передается в ячейки 0020, 0021; если А1 = 0, то в ячейки 0020, 0021 передается содержимое псевдосумматора (0022, 0023).

2. При отсутствии признака 4А2 число из Аг передается в ячейки 0022, 0023; по признаку 4Аг сохраняется содержимое псевдосумматора.

3. Происходит обращение к СП соответствующего арифметического действия или вычисления функции.

4. По знаку «плюс» перед псевдокодом результат записывается в ячейку А2.

После этого вызывается и интерпретируется следующая псевдокоманда.

Логические псевдокоды

Автоматизация программирования логической части алгоритма более сложна. Для выполнения в ИС определенных логических действий: условной и безусловной передачи управления, организации сложных циклов, обращения с обратной связью к отдельным блокам и т. д. — составлены

логические подпрограммы, обращение к которым организуется при интерпретировании соответствующих псевдокодов.

Введены следующие логические псевдокоды:

05 ООО А2— запись содержимого псевдосумматора в одну ячейку А2.

15 п А2 — перевод 2—И0 и печать п чисел, начиная с А2.

16 п А2 — перевод 10->2 п чисел.

24 А1 0000 — безусловная передача управления.

34 и 54 — передача управления, как и в кодах машины, по содержимому псевдосумматора (ячейка 0023).

По признаку 4А1 передача управления осуществляется с отключением ИС. При возврате в ячейку 0137 ИС включается и исполняется следующий псевдокод.

При операторном программировании для обращения с обратной связью к отдельным блокам могут быть использованы псевдокоманды: 24, А1А2 — для блока из псевдокоманд; осуществляется передача управления на А[ с предварительной засылкой в ячейку А2 команды обратной связи.

44 А1А2 —для блока команд; управление передается на А1 с отключением ИС. При передаче управления в ячейку 0112 ИС включается, начиная с А2.

Для организации сложных циклов по счетчику введены два логических псевдокода.

1. 64 0000 Н — команда входа в цикл, по которой шаг переадресации и количество шагов внешнего цикла запоминаются, назначается новый шаг переадресации Н и очищается рабочий счетчик—ячейка 0203. В прилагаемом тексте ИС предусмотрена сквозная переадресация, при которой в счетчике 0204 накапливается суммарная константа переадресации по всем внешним циклам. Чтобы переадресация происходила лишь по одному циклу, достаточно внести следующие изменения:

0264 15 0000 0203

0275 16 0267 0206

0276 24 0277 0203

0300 24 0302 0205

0302—23 0203 0204

2. 74 А\П — команда выхода из цикла, по которой организуется п—1 раз обращение к А] (циклический участок программы работает п раз), затем шаг переадресации и число шагов внешнего цикла восстанавливаются. При шагах переадресации до 777 ИС допускает до 4 вложенных друг в друга циклов. При меньших шагах число циклов может быть соответственно увеличено.

При исполнении логических псевдокоманд содержимое псевдосумматора сохраняется.

Пример организации цикла Вычислить полином степени п для т аргументов по схеме Горнера:

п

/2=1

Расположим массив коэффициентов, начиная со старшего, с ячейки 1200, массив аргументов — с ячейки 1100, программу — с ячейки 0600. В качестве рабочих используем ячейки 0030, 0031.

0600 10 0600 0217

1 24 0140 0140 включение ИС

3 64 0000 0001 Н = 0001

*3 05 7100 0030 засылка аргумента

4 64 0000 0001 Н = 0001

5 05 5200 0031 засылка а 6—03 0030 0031 7 00 3201 4031 0610 74 0606 п И 60 4000 0000 интервал

12 15 0002 0030 печать х и Рп(х) 13 74 0603 т

14 37 4000 0000 останов

Отладка программы

Для отладки программы, состоящей из псевдокоманд, можно эффективно использовать ИС, которая позволяет ¡после некоторых изменений в ней выдать на печать определенную логическую или арифметическую информацию. Например, линейные участки программы можно проследить, выдавая на печать все адреса, на которые передается управление:

0113) 46 0005 0134.

Можно выдать на печать" все переадресованные псевдокоманды:

0222) 40 0155 0110.

Для арифметической отладки предусмотрена возможность выдачи на печать некоторых промежуточных результатов. За отладочный признак, по аналогии с кодами машины, выбрана единица в 1-м разряде.

При отладке включается специальная логическая подпрограмма:

0135) 16 0002 0110,

которая -выдает на печать содержимое псевдосумматора ¡после исполнения арифметических псевдокодов, содержащих отладочный признак 4К (43 вместо 03, — 51 вместо 11 и т.п.). СП перевода 2—>-10 сохраняет содержимое псевдосумматора. 1

После отключения подпрограммы:

0135) 24 0137 0000 отладочный признак работе программы не мешает. Таким образом, выдачу контрольных точек, отладочных и некоторых других результатов,, как и основных, можно предусмотреть при написании программы.

Можно выдать на печать все промежуточные результаты:

0135) 16 0001 0110, или печатать результаты, записываемые по А :

0135) 16 0003 0110

0136) 34 0255 0137.

На время отладки длительные циклы можно ограничить: 0273) 31 0015 0000, т. е. п=2.

Для работы за пультом полезно иметь схему остановов внутри ИС. Например, останов по адресу 0140 или 0141 позволяет читать адрес и содержание очередной псевдокоманды, по адресу 0143 — содержание псевдокоманды после переадресации, останов по адресу 0117 позволяет следить, куда записывается результат. Аналогично можно проследить все передачи управления — останов 0115, фиксировать любой логический

(остановы 0230—0237) или арифметический псевдокод (0240—0243, 0250—0253).

При достаточном знакомстве с системой программирования и некотором опыте отладка программы осуществляется весьма эффективно.

Рассматриваемая ИС разработана и применяется в вычислительной лаборатории ТПИ. Привычный вид псевдокодов, большое число автоматизированных логических операций и широкий диапазон чисел делают ее простой и удобной в работе и позволяют достаточно эффективно применять для решения широкого круга задач.

Операторная схема ИС

1

Ф! 32 Р3 Р4 Р5 Рб 37; 38 Р9 310 Нп А12 Р13 3! 1 Pi»

Ф 1 Ф 4 i i 1

16 17 18 8 9 11 15 СП2

Ф«; Ai7¡ Hi8; Л1Э; л20 Л21; ' Л22 Л23; Л2. г, Л:

1 I + Ф 1 1 Ф

4 1 1 1 1 21

14- Ф \ I Ф I 19 20 21 22 23 24 25

Ф\ (0137) —переадресация 32.

32 (0140) —засылка очередной псевдокоманды в рабочую ячейку. Рз (0141, 0142) — проверка на признак 2АК. Р4 (0143, 0144) —проверка на признак 4АЬ Р5 (0145, 0146) —проверка на признак К4. Р6 (0147, 0150) —проверка А^О.

37 (0151, 0153) —засьшка (0022, 0023)—-^0020, 0021.

38 (0154—0163) —засылка (АО—>-0020, 0021. Рэ (0164, 0165) —проверка на признак 4А2. 310 (0166—0177) — засылка (А2)—>-0022, 0023.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Нп (0200—0202, 0240—0243, 0250—0253) — расшифровка арифметических псевдокодов и обращение к СП.

А\2 (СП) —выполнение арифметических действий и вычисление функций.

Pis (0100, 0101) —проверка ПК<0.

314 (0116—0134) — запись (0022, 0023)—

Pis (0135, 0136) —проверка на отладочный признак 4К.

Ф16 (0220—0223) —переадресация псевдокоманды.

Ai7 (0110, Olli) —исполнение кодов.

His (0244—0247, 0230—0237) — расшифровка логических ПК и обращение к логическим подпрограммам.

J1 ig (0100, 0101, 0116—0134) — исполнение 05. JI20 (0210—0215) — исполнение 15 и16. Л21 (0224—0227) — исполнение 24. Л22 (0105—0111) — исполнение 34 и 54. Л23 (0103—0104) — исполнение 44. Л24 (0260—0266) — исполнение 64. Л25 (0270—0305) — исполнение 74.

ЛИТЕРАТУРА

1. Библиотека стандартных подпрограмм для ЦВМ «Минск-1», часть 2. Минск,

1961.

2. Г. М. Генделев и др. Программирование для цифровой вычислительной машины «Минск-1». ГОСИНИТИ, М., 1963.

ПРИЛОЖЕНИЕ

0001 77 7777 7777 4 24

2 40 0000 0000 5 16

3 -00 0000 0000 6 —26

4 20 0000 0000 7 05

5 00 7777 0000 0110 00

6 00 0000 7777 1 24

7 -00 0000 0001 2 —07

0010 Об 3146 3146 3 16

1 00 0001 0000 4 -36

2 00 0000 0001 5 24

3 00 0001 0001 6 -26

4 00 0002 0000 7 16

5 00 0000 0002 0120 —31

6 00 0002 0002 1 54

7 14 0001 7761 2 00

0020 -00 0000 0027 3 -07

1 01 0011 0020 4 16

2 -31 0026 0000 5 30

3 54 0020 0000 6 26

4 47 0027 0000 7 —17

5 24 пуск 0000 0130 54

6 -00 2000 0027 1 05

7 00 0000 0000 2 34

0030 40 0000 0000 3 -76

1 00 0012 0030 4 00

2 24 0030 0000 5 24

3 00 0000 0000 6 54

4 00 0000 0000 7 00

5 00 0000 0000 0140 00

6 00 0000 0000 1 36

7 00 0000 0000 2 54

0040 -01 0003 0021 3 16

1 16 0023 0021 4 54

2 54 0046 0046 5 16

3 05 0023 0000 6 54

4 54 0067 0067 7 16

5 24 0050 0022 0150 54

6 01 0022 0020 1 05

7 34 0050 0055 2 05

0050 00 0020 0022 3 24

1 05 0021 0155 4 -26

2 05 0023 0021 5 00

3 05 0155 0023 6 26

4 —11 0003 0020 7 —21

5 21 0012 0020 0160 36

6 —37 0056 0005 1 54

7 54 0000 0067 2 24

0060 —07 0020 0021 3 -01

1 —17 0007 0023 4 16

2 20 0021 0023 5 54

3 05 0022 0000 6 16

4 20 0012 0020 7 —37

5 15 0023 0032 0170 -26

6 00 0020 0022 1 00

7 24 0100 0000 2 26

0070 00 0022 0020 3 -21

1 13 0021 0023 4 36

2 24 0065 0023 5 54

3 -17 0007 0023 6 24

4 22 0021 0023 7 -01

5 И 0020 0022 0200 -17

6 24 0064 0000 1 -26

7 05 0230 0067 2 00

0100 16 0102 ОНО 3 00

1 34 0116 0135 4 00

2 -00 0000 1777 5 00

3 -16 0057 0110 6 00

0110 0110

0257 0134

0313 оно

0023 оооо

0000 оооо

0137 0023

0141 0134

0005 0134

0311 ОООО

0140 0140

0254 0134

0317 0023

0317 0011

0124 0124

0012 0022

0007 0023

0320 0023

0023 ООН

0317 0155

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

0260 0022

0000 ОООО

0022 оооо

0134 0133

0320 0030

0000 оооо

0137 оооо

0255 оооо

0011 0140

0000 оооо

0306 0014

0220 0220

0307 0110

0107 оооо

0310 оно

0244 оооо

0005 оно

0154 оооо

0022 0020

0023 0021

0164 оооо

0312 0155

0000 ОООО

0317 0021

0134 0020

0320 ОООО

0163 ОООО

0164 ОООО

0320 0020

0321 0110

0200 ОООО

0006 оно

0141 оооо

0312 0171

оооо оооо

0317 0023

0134 0022

0320 ОООО

0177 ОООО

0200 ОООО

0320 0022

0133 0110

0314 0202

0000 ОООО

0000 ОООО

оооо ОООО

оооо ОООО

оооо ОООО

3 Заказ 7620

33

7 00 0000 0000

0210 01 0006 0110

1 36 0005 0000

2 54 0166 0000

3 00 0006 0110

4 -11 0216 0137

5 24 0137 0137

6 24 0201 0140

7 -02 7776 0107

0220 -37 0220 0012

1 -23 0204 0155

2 10 0155 0110

3 24 0143 0110

4 16 0006 0110

5 -26 0315 0227

6 10 0316 0140

7 00 0000 0000

0230 24 0100 0000

1 24 0213 0000

2 24 0224 оооо

3 24 0105 0000

4 24 0103 оооо

5 24 0105 оооо

6 24 0260 оооо

7 24 0270 оооо

0240 24 0041 оооо

1 24 0040 оооо

2 24 0073 оооо

3 24 0070 оооо

4 05 ОНО 0134

5 —37 0245 0017

6 21 0314 0247

7 00 0000 оооо

0250 24 СП оооо

1 24 СП оооо

2 24 СП оооо

3 24 СП оооо

4 -26 0155 оооо

5 24 0322 оооо

6 24 0411 оооо

7 -74 0000 оооо

0260 -17 0125 0207

1 -26 0205 0207

2 _17 0125 0206

3 —26 0203 0206

4 05 0000 0203

5 16 0267 0110

6 24 0137 0205

7 00 0000 0777

0270 00 0012 0203

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1 00 0205 0204

2 16 0006 0110

3 -31 0203 ОООО

4 54 0113 ОООО

5 -03 0203 0205

6 01 0205 0204

7 16 0267 0207

0300 24 0301 0205

1 16 0267 0206

2 24 0303 0203

3 -07 0120 0207

4 —07 0120 0206

5 24 0137 ОООО

6 -00 2000 2000

7 00 4000 ОООО

0310 —04 0000 ОООО

1 05 оооо ОНО

2 05 ОООО 0134

3 00 0113 0112

4 -34 0230 0240

5 24 0113 ОООО

6 17 оооо 7670

7 —77 7777 7400

0320 -00 0000 0200

1 00 0000 4000

2 15 ОООО 0020

3 05 0023 0025

4 54 0331 0331

5 -01 0403 0020

6 -01 0406 0021

7 -46 0020 0021

0330 24 0137 ОООО

1 05 0022 0155

2 54 0341 0333

3 13 0405 0025

4 25 ОООО 0024

5 00 0404 0020

6 10 0024 0155

7 31 0404 ОООО

0340 24 0332 0155

1 13 0401 0025

2 25 ОООО 0024

3 01 0404 0020

4 10 0024 0155

5 21 0410 0155

6 54 0341 0347

7 -07 0155 0025

0350 36 0317 ОООО

1 -31 0317 ОООО

2 54 0355 0355

3 01 0404 0020

4 03 0010 0025

5 16 0402 0025

6 20 0025 0025

7 05 0257 0024

0360 03 0405 0025

1 26 0024 0155

2 -26 0021 0021

3 -07 0404 0024

4 -01 0155 0025

5 30 0102 , ОООО

6 54 0360 0367

7 12 0405 0020

0370 26 0400 0155

1 54 0374 0373

2 34 0326 0325

3 -01 0407 0021

4 13 0405 0155

5 31 0020 ОООО

6 —76 0155 ОООО

7 24 0327 0020

0400 —77 7777 7700

1 63 1463 1463

2 —00 0001 7777

3 —00 оооо 0100

4 —00 оооо 0004

5 50 оооо ОООО

6 00 оооо 1200

7 00 оооо 0400

0410 00 оооо D003

1 05 0001 0024

2 15 оооо 0020

3 05 0001 0025

4 05 0022 ОООО

5 54 0427 0433 7 03 0405 0024

6 03 0010 0021 0430 01 0404 0020

7 16 0437 0023 1 10 0404 0022

0420 22 0440 0000 2 24 0415 0022

1 20 0021 0021 3 03 0401 0024

2 —07 0404 0023 4 01 0410 0020

3 -07 0262 0025 5 11 0404 0022

4 54 0416 0000 6 24 0415 0022

5 13 0024 0Ö21 7 —00 0003 6000

6 24 0065 0023 0440 00 0002 4000

i Надоели баннеры? Вы всегда можете отключить рекламу.