Научная статья на тему 'Вспомогательные программы для ЭВМ «Минск-1» по автоматизации отладки задач'

Вспомогательные программы для ЭВМ «Минск-1» по автоматизации отладки задач Текст научной статьи по специальности «Компьютерные и информационные науки»

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

Текст научной работы на тему «Вспомогательные программы для ЭВМ «Минск-1» по автоматизации отладки задач»

ИЗВЕСТИЯ

ТОМСКОГО ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ПОЛИТЕХНИЧЕСКОГО

ИНСТИТУТА имени С. М. КИРОВА

19Ш

Том 168

ВСПОМОГАТЕЛЬНЫЕ ПРОГРАММЫ ДЛЯ ЭВМ «МИНСК !»

ПО АВТОМАТИЗАЦИИ ОТЛАДКИ ЗАДАЧ

Н. С. ГОЛОСОВ, О. к. ГОРДЕЕВ

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

Опыт программирования задач на ЭВМ показал, что отладка программ зачастую составляет один из трудоемких этапов в решении задач.

Часто в процессе работы программы необходимо получить информацию о логической и счетной части отлаживаемой программы. В этом неоценимую помощь оказывают ряд отладочных программ, автоматизирующие техническую часть труда программиста.

Комплексная отладочная программа (КОП)

Программа предназначена для отлаживания программ, работающих с числами, представленными в форме с плавающей запятой, и использующих интерпретирующую систему УИС [1].

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

Информация к отладочной программе состоит из стандартных строк:

1) строки задания участка;

2) строки засылок;

3) строки задания шага и счетчика;

4) строки выдачи;

5) строка конца.

а) Строка задания участка

Информационная строка имеет вид:

КОП I II

адрес адрес, 07 Д, А,

где Аи и Ак — адреса начала и конца участка отлаживаемой программы. При знаке «—» в КОПе такой строки в процессе отладки будет выдана информация о логике программы, которая выдается в виде линейных участков (лучей), и количестве таких участков, если они повторены подряд несколько раз (в цикле) (см. пример!). При знаке «+» в КОПе информационной строки задания участка логика не выдается.

24

б) Строки засылок

Информации о засылках состоит из двух строк:

I II

КОП адрес адрес

±10 Ан Лк

+ 00 ап 0000,

которые задают вид засылки и место в отлаживаемой программе, куда необходимо заслать коды или числа. Знак «±» в КОПе первой строки указывает на то, что необходимо предварительно сделать перевод из 10-2 систему счисления, знак «—»,— что такого перевода делать не нужно.

Ан и Ак — начало и конец ячеек, в которые необходимо заслать коды или числа. аа —адрес начала массива, в котором находятся числа или коды (см. пример 2).

в) Строка шага и счетчика

Информационная строка имеет вид

I II

КОП адрес адрес

[00 2000 ± Ш С,

где Ш — шаг, по которму будет происходить переадресация в участке программы, заданной строкой задания участка. С — счетчик Ц]- Если шаг и счетчик менять не нужно, то строка имеет вид

± 00 0000 0000.

г) Строка выдачи

По строке вида

I II

КОП адрес адрес

± 12 А, Ак

осуществляется выдача кодов или числа на печать. Знак «±» указывает на десятичную выдачу, «—»—на восьмеричную выдачу. Ап и Ак -начальный и конечный адреса ячеек, которые необходимо выдать на печать. При десятичной выдаче в ячейках Ан—Ак сохраняется их двоичное содержание.

д) Строка конца

Строка конца должна иметь вид1

I II

КОП адрес адрес + 77 7777 7777.

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

Информационные строки 1—4 типа образуют блок. Таких блоков может быть задано последовательно сколько угодно. Строка 5 типа дожна быть задана одна в конце всех блоков (см. пример 2). Вся информация, стоящая в блоке до строки) задания шага и счетчика, реализуется до работы участка программы (строка 1 типа). Строки четвертого типа, если они следуют з*а строками третьего типа, выдадут информацию уже после работы участка программы, заданного в этом блоке.

Программа предусматривает включенную восьмеричную печать, а включение и выключение десятичной печати блокируется остановом.

Комплексная отладочная программа занимает 205 ячеек. Перед обращением к ней необходимо поставить в 1000 ячейку по второму адресу номер ячейки, с которой начинается информация. Для начала отладки нужно передать управление в 1000 ячейку КОПа. При авосте или зацикливании в отлаживаемой программе возможно выдать информацию, предусмотренную к участку. Для этого следует передать управление в ячейку 1126.

Программа автоматической переработки адресов

В процессе программирования и отладки возникает необходимость сдвига, перестановки или выбрасывания отдельных массивов команд пли чисел из отлаживаемой программы. Проведение таких процессов вручную является трудоемким механическим трудом, не гарантированным от ошибок, так как должна быть переработана заново вся отлаживаемая программа.

Программа автоматической переработки адресов (ПАПА) автоматически, по инструкции, перестраивает в памяти программные и числовые массивы. В соответствии с этим перемещением ПАПА перерабатывает в программе адреса, принадлежащие перемещаемым массивам, компонует новую программу в зоне МЗУ, вызывает ее и выдает па печать. ^

Информация к ПАПА составляется в закодированном виде (см. приложение 1) из строчек трех типов: информация А, В, С и разделителей.

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

А 0) — А\ А, Л + 1) - А1 А2к Л;!

> ^ 5 5

? 1 1 5

А + к) - Л1;И..Л/^1...Л;, А+к + 1) + 00 0000 0000,

где Л„, Лк — начальный и конечный адреса к-го программного массива в МОЗУ, не содержащего констант; Л;> = 0007 —признак; в А -¡-к-!- 1 — ячейки разделитель (нуль).

Информация В следует за информацией Л сразу за разделителем и состоит из строк компоновки программы в МЗУ (строки с « + ») и считывания из МЗУ (строки с «—») в исполняемой последовательности:

В + 0) А\... Лк... Лм В + 1) А1 Лк2 А2м

в -г к) Ап 1 ... Л'к"! 1 ... Лм 1 ... Я + к+ 1)—00 0000 0000 В + к + 2) 47 0000 0000,

где Ли, Лк — начальные и конечные адреса МОЗУ, из которых записывается информация в МЗУ, если строка „ + ", или из которых 26

учитываются, если строка Аи - адрес МЗУ, с которого начи-

нается обмен. Информация заканчивается разделителем и командой, по которой ПАПА заканчивает работу, если команда „останов", или передает управление по первому адресу, если команда 24 А, 0000 (существенно, что у этой команды второй адрес равен нулю).

Информация С задает смещение' массивов, расположенных ранее с адресов Аи по адрес Ак с новым началом Аш:

С + 0) А1Н А1К Л

С+1) А1 А1 А2ни

С т к) Ак 11... Л;уг1... Л«н~1...

С+ 1-1+ 1) 24 А0 + 2 0000.

В конце С-информации ставится команда, у которой Аь — адрес начала ПАПА.

Количество строк каждого типа произвольно, или они вообще могут отсутствовать, однако, в каждом типе информации должны присутствовать разделители и служебные команды.

Начало работы ПАПА с ячейки 0100. Перед началом работы в ячейки 0020, 0021 должны быть поставлены по первому адресу адреса начала А- и С-информации соответственно.

При правильной работе машины ПАПА выполняет все действия без остановов. Программа ведет контроль при обмене с МЗУ. В случае несовпадения контрольных сумм происходит останов, в регистр А выдается начало и конец обмена, в В — контрольная сумма. При пуске машины повторяется считывание этого массива.

Программа ПАПА — самосуммирующаяся. Для правильной записи ее в нужную зону необходимо проделать следующие действия:

1. Изменить константы записи-считывания в конце программы

2. Поставить останов по адресу 0156, пустить с 0141.

3. После останова пустить с 0247.

4. Считать из ячеек 137, 140 (правильная запись — останов 37 0000 0020).

Приложение 1

Пример 1. Программа начинается с ячейки 0500 и кончается ячейкой 0570. В процессе работы участки 0500-0520 повторяются пять раз, 0521-54С—один раз, 0541-0570— 3 раза.

На печать будут выданы следующие лучи:

I И

КОП адрес адрес

00 0500 0520

00 0000 0004

00 0500 0540

00 0541 0570

00 0000 0003

Пример 2. Пусть необходимо отладить по частям программу, занимающую ячейки с 0400 по 0500. Отладку необходимо произвести следующим образом:

До работы программы необходимо заслать в ячейку 0411 код: 0411) 24 0420 0000; заслать с переводом в двоичную систему в ячейки 0470-0500 числа из ячеек 0600-0610.

Программа должна проработать с 0400 по 450 и выдать лучи в этом участке. После выполнения работы необходимо вывести на печать участок программы 0400-0460, а также выдать рабочие ячейки 0700-0710 с переводом в десятичную систему исчисления.

Комплексная отладочная программа (КОП)

Про д о л же

и и е т а б л и ц ы

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

Адрес КОП Ai А.

1000 00 0000 0000

1 —31 0001 0014

2 54 1004 1004

3 47 1000 1000

4 -17 1014 1000

5 -66 1163 1006

6 00 0000 0000

7 26 0005 1006

1010 16 0006 1116

1 —26 0000 1031

2 00 0012 1000

3 16 0007 1116

4 31 0272 0014

5 54 1033 1114

6 05 1006 1113

7 — 17 1014 1031

1020 -26 1164 1021

1 00 0000 0000

2 05 1031 1131

3 —26 1170 1131

4 -06 1171 1031

5 - 16 0000 1116

6 34 1031 1027

7 05 1167 1120

1030 00 ООП 1031

1 00 0000 0000

2 24 1000 0000

3 06 0000 1076

4 — 07 1035 1031

5 31 1006 0014

6 -37 1001 0000

7 —26 1174 1071

1040 16 0273 1116

1 54 1100 0000

2 — 17 1014 1000

3 —26 1175 1045

4 00 0012 1000

5 00 0000 0000

6 — 17 1001 1006

7 —36 1045 0000

1050 —26 1176 1070

1 — 16 0000 1116

2 9R 34 1056 1053

Адрес КОП А, A-j

3 05 1200 1031

4 И ООП i 177

5 24 1060 1064

6 05 1201 1031

7 05 1177 1064

1060 10 1060 ■ 00U)

1 24 0112 0112

2 05 0347 1045

3 05 0314 1006

4 00 0000 0000

5 05 1031 0314

6 05 1031 0347

7 — 01 1203 0131

1070 00 0000 0000

1 00 0000 0000

2 —01 1203 0131

3 05 1045 0347

4 05 1006 0314

5 00 0000 0000

6 00 0000 0000

7 24 1000 0000

1100 - 16 0000 1116

1 34 1102 шо

2 05 1202 1031

3 05 1204 1076

4 47 0005 0005

5 -16 1176 1006

6 -36 0222 0000

7 24 1057 ! 070

1110 — 17 1001 1006

1 —36 1166 0000

2 24 1053 1070

3 00 0000 0000

4 10 1114 0010

5 24 0112 0112

6 00 0000 0000

7 — 16 1113 0300

1120 24 0112 0П2

1 05 1165 0113

2 05 0000 1070

3 05 0001 1064

4 — 17 1001 1113

5 24 0112 1071

Продолжение таблицы

Адрес КОП Ах Ао

6 —46 0000 1064

7 —46 0000 1070

ИЗО -46 1113 1076

i 00 0000 0000

2 05 1144 0113

3 05 1114 1120

4 24 1000 0000

5 16 0005 0112

6 —27 1001 1076

7 31 0012 0000

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

1140 -31 1071 0000

1 54 1146 1146

2 05 1076 1071

3 — 16 0000 0116

4 36 0225 0000

5 34 0114 0114

6 -06 1071 1113

п 1 -31 1064 0000

ИБО 54 1153 1153

I 10 0012 1070

2 24 1161 1070

3 -46 0000 1046

4 11 1070 0000

5 34 1160 1156

6 —46 0000 1070

7 26 0000 1070

1160 05 1113 1064

i — 17 1014 1076

2 24 1142 1113

3 05 0000 1116

4 05 0000 1021

5 24 1135 0000

6 —40 0000 2000

7 24 1121 0112

1170 05 1021 0000

1 05 1172 0000

2 24 1131 0000

3 24 1126 0000

4 06 3070 0000

5 05 0000 1045

6 -05 2000 2000

7 05 2002 1075

Продолжение таблицы

Адрес | КО п А 2

1200 24 0116 0000

1 24 0323 0000

2 24 0324 0000

3 00 0000 0064

4 47 0006 0006

Программа ПАПА

0100 10 0020 0241

1 24 0103 0103

2 00 0255 0103

3 00 0000 0000

4 34 0111 0111

5 10 0021 0241

6 24 0110 0110

7 00 0255 0110

ОНО 00 0000 0000

1 36 0260 0000

2 -27 0231 0245

3 16 0257 0120

4 -27 0153 0246

5 16 0261 0120

6 -26 0000 0244

7 54 0200 0172

0120 00 0000 0000

i 11 0117 0000

2 20 0256 0117

3 34 0102 0102

4 05 0123 0161

5 05 0264 0137

6 05 0251 0140

7 34 0134 0000

0130 05 0000 0161

1 —01 0263 0244

2 05 0265 0137

3 05 0253 0140

4 00 0244 0137 -

5 10 0245 0246

6 20 0140 0140

7 04 0040 0100

0140 04 0)00 0267

1 05 0243 0147

2 —17 0152 0246

3 -26 0147 0147

Продолжение таблиц ы

Г1 р одолжение т а б л и ц ы

дрес КОП Ах А,

4 05 0000 0120

5 34 0147 0147

6 01 0254 0147

7 00 0000 0000

0150 24 0151 0120

1 56 0261 0147

2 —31 0245 0014

3 -54 0146 0010

4 16 0252 0147

5 54 0102 0102

6 — 11 0120 0267

7 54 0164 0164

0160 —06 0263 0157

1 37 0266 0020

2 60 0_52 0147

3 34 0142 0142

4 --01 0263 0157

5 34 0170 0166

6 47 0140 0120

7 -01 02)3 0157

0170 05 0120 0267

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

1 34 0132 0132

2 -17 0152 0246

3 -26 0242 0250

4 — 16 0241 0246

5 -26 0000 0247

6 - 16 0242 0245

7 24 0105 0266

0200 — 17 0214 0244

1 21 0246 0247

2 05 0247 0205

3 05 0250 0233

4 05 0000 0161

5 00 0000 0000

6 23 0262 0137

7 56 0261 0120

0210 24 0211 0140

1 11 0137 0246

2 54 0217 0213

3 — 17 0152 0137

4 31 0245 0014

5 54 0217 0216

6 00 0147 0161

Адрес КОП А[ А,

7 -17 0214 0140

0220 31 0246 0000

1 54 0222 0226

2 11 0245 0140

3 54 0226 0224

4 — 17 0152 0147

5 20 0161 0161

6 16 0000 0120

7 34 0230 0232

0230 20 0161 0120

1 - 34 0233 0012

2 21 0161 0120

3 00 0000 0000

4 11 0266 0233

5 34 0107 0236

6 00 0255 0205

7 10 0254 0233

0240 24 0204 0233

1 05 0000 0120

2 03 0120 0000

3 — 10 0120 0000

4 00 0000 0100

5 00 0000 0267

6 00 0100 0000

7 -11 0120 0263

0250 24 0125 0266

1 04 0000 0000

2 —40 0000 0000

3 44 0000 0000

4 00 0000 0001

5 00 0001 0000

6 00 0054 0042

7 77 7400 0000

0260 00 0377 6000

1 -00 0000 1777

2 00 1777 0000

3 -00 0000 0000

4 04 0040 0000

5 44 0040 0000

6 —44 7130 5373

7 00 0000 0000

2. Выполнть участок программы 0450-0467, не делая предварительно никаких засылок, а только изменив шаг и задав счетчик: 111 = 4, С — 0024. После выполнение! участка вывести на печать рабочие ячейки 0720-0722. Закончить отладку.

Информация о такой отладке должна иметь вид:

I и

КОП адрес адрес

— 07 0400 0450

— 10 0411 0411

+ 00 0611 0000

+ 10 0470 0500

+ 00 0600 0000

00 0000 0000

— 12 0400 0460

12 0700 0710

07 0451 0467

00 2004 0024

12 0720 0722

77 7777 7777

П р и ложе и ие 1

Разрядная сетка машины «Минск-1» позволяет записать три адреса в одну ячейку. Эта запись и образует строку информации для ПАПА.

В каждом адресе занимаются только 101П-двоичных разрядов. Сдвигая первый адрес на два двоичных разряда вправо, мы освобождаем 101П-двоичных разрядов для Лн - Нужно записать информацию сначала в трехадресной системе и затем произвести кодировку.

ЛИТЕРАТУРА

Н. С. Голосов, О. К. Гордеев. Универсальная интерпретирующая система (УИС). В наст, сборнике.

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