Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Справочник проектировщика систем автоматизации управления производством

..pdf
Скачиваний:
6
Добавлен:
19.11.2023
Размер:
39.87 Mб
Скачать

1)(^ i)-(A :2) = j o t

2)ИЗН; 3), 5)

3)(Хг) X (Xj) => См

4)БП; 6), Хмк

5)(A'2)X (X 2) Z=>XMK

6)С10П

Команда 1) — предварительная, после нее происходит разветвление. Команда 2) — исполнительная. Если Х г > Х2, то управление передается команде 3), в про­ тивном случае — команде 5).

Составление циклических программ

Циклическими называются вычислительные процессы, в которых отдельные участки вычислении повторяются многократно. Такие задачи решаются на ЭВМ при помощи циклических программ. Различаются следующие три типа циклов:

1) арифметические циклы — циклы с задан­ ным числом повторений;

2) итерационные циклы — циклы, число по­ вторений которых заранее неизвестно, а опреде­

ляется

самой ЭВМ в зависимости от той точно­

ъ

сти, с

которой нужно вычислить искомые вели­

I

чины;

 

 

 

 

 

3) арифметические циклы с переадресацией

! §

и восстановлением.

 

 

 

 

 

Циклические

программы

должны

быть са-

t&

мовосстаиавливающимися, т. е. если выполне­

S I

ние циклической

программы прекратить на не­

О es

которой команде, то всегда можно выполнять

asc:

эту программу с самого начала без нового ее

 

ввода в ЭВМ с

перфокарт или перфоленты.

 

• Структура

циклических программ с цикла­

 

ми первых двух видов представлена на'рис.

 

VIII.3.

 

 

 

 

 

Pl|c- VIII.3. Структура циклической

Программы циклов с заданным числом по-

втореннй. При решении экономических, учетно­

программы

статистических и других задач число повторе­

 

ний, как правило, известно

заранее.

Например, при составлении разработочных

таблиц известно количество исходных документов,

которью подвергаются статисти­

ческой обработке по формулам. Для управления повторениями циклов в цикли­ ческих программах используются счетчики циклов.

N

Составим программу вычисления суммы 5 = ^ "(2t + 1)345’* i=0

Программа 3

1) Oz=>Sï

g . J подготовка цикла (восстановление)

3)(2) X (0 =$ См л

4)

(См)-|-(1)

и

> вычислительная (рабочая) часть цикла

5)

(и) х (и) =$ и

)

6)

(1)/(!!)=> И

Л

 

7)

(w) + (5 ) = > 5

>

вычислительная (рабочая) часть цикла

8 )

(1) + < 0 = Я

J

 

9) (£ )-(Л 0 = > С л >|

 

10)

ИЗН; И), 3)

>

проверка условия окончания цикла

11)

стоп

J

 

Рабочая часть программы 3, выполняемая N раз, состоит из команд 3)—8), со­ ставлена для вычисления следующего /-го члена суммы и прибавления его к уже на­ копленной сумме первых (/ — 1) членов. Команды 1) и 2) — это команды восстанов­ ления. Команда 1) устанавливает начальное содержимое ячейки 5 равным 0. По ко­ манде 2) происходит установка начального значения i = 0. Команда 8) служит для получения следующего значения Zиз предыдущего. Для проверки окончания цикла в программу 3 введены команды 9) и 10). По этим командам производится сравнение текущего значения Zс N. Если Z< N, то выполняется переход к команде 3, а если i ^ N к — команде И) окончания цикла вычисления. Ячейка / — счетчик числа циклов.

Программы итерационных циклов. Составить программу вычисления значения

квадратного корня х = }/Га с точностью е > 0

(например, в =

ÎO-5). При положитель-

ном а значение

величины х будем находить

по известной

итерационной формуле:

X i + i =

~ j ( x i + a / X i)>

 

 

 

начальное

значение х0 =

I.

 

 

Для составления программы исходную формулу удобно представить в виде:

J б|Ч х= у

( . a / X i - X i )

;

 

 

I A'i+i = *i + ô;+i.

Итерационный процесс прекращаем, когда выполнится условие

|ô«+il=s£e.

 

 

 

 

 

 

Программа 4

 

1) (l)rr> #

}

подготовка

цикла (восстановление)

2) ( a ) / ( R ) = $ C M

л

 

 

3)

(См)(R)Z^ C M

> вычислительная часть цикла

4)

(См) х

(0,5) z=> ôi+1

)

 

 

5)

(ô/^O j — i (e) Jz=>

1

 

 

6)

ИЗН*

7)

9)

 

J

пРовеРка Условия

окончания цикла

7)

(б/+3)+

(/?)

См }

вычислительная часть

цикла

8)БП; 2), R

9)стоп

Команда 1) засылает в рабочую ячейку R начальное приближение х0 = 1. Команды 2), 3), 4) вычисляют значение ô ^ . Команды 5), 6) проверяют условие окончания цикла. Если е не превышает абсолютной величины ô/fl, следует переход к команде 7), кото­ рая вычисляет очередное приближение к искомой величине х , после чего следует команда 8) безусловного перехода к команде 2) на повторение цикла с засылкой оче­ редного значения х-\- 1 в рабочую ячейку R. В противном случае следует переход

к команде останова 9) и в ячейке R получается искомое значение х = У~а*

Программы циклов с переадресацией и восстанов­ лением. Если в циклическом вычислительном процессе используются переменные с индексами, то соответст­ вующие циклические программы будут иметь команды с переменными адресами. Структура циклической про­ граммы с переадресацией и восстановлением показа­ на на рис. VIII.4.

Перечислим основные части циклической програм­ мы с переадресацией и восстановлением.

1. Начальная часть программы (восстановление) выполняет те же функции, что и в арифметических и итерационных циклах. Кроме того, она восстанавли­ вает первоначальный вид переменных команд цикла. Для этого программист в отдельных ячейках заготов­ ляет дубликаты переменных команд первоначального вида, которые в начале программы засылаются в со­ ответствующие ячейки оперативной памяти. Именно эта часть программы делает ее самовосстанавливающейся поскольку она восстанавливает первоначальный вид как переменных команд программы, так и необходимых рабочих ячеек.

2.Вычислительная (рабочая) часть цикла, отдель­ ные команды которой являются переменными, обеспе­ чивает вычисление соответствующих величин.

3.Команды моднфикационной части цикла выпол­ няют переадресацию переменных команд вычислитель­ ной части цикла с помощью команд переадресации, для

чего используются константы переадресации.

Рис. VIII.4. Структура

цик­

4. Проверка окончания цикла осуществляется ли­

лической программы с

пе­

бо с помощью

счетчика,

либо с помощью эталонных

реадресацией и восстановле­

нием

 

команд.

циклы с

переадресацией и восстановле­

 

 

Используя

 

 

нием, запишем

программу решения следующей задачи: в ячейках с а + О п о а + л

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

 

 

 

 

 

 

 

Программа 5

1)

1 2 ) = * 4)

 

засылка (восстановленне) начального вида переменных команд

2)

13)

6) }

3)

(а +

0) z=5>R0

 

 

 

 

4)

|(/?0) | - | < в

+ •11>*

I

С м

рабочая часть цикла

5)

ИЗН; 7),

6)

 

 

 

 

 

 

 

 

6)

(я +

1)* = * /?0

 

 

 

 

7)

СФ;

4). 15) = * 4

}

переадресация

переменных команд

8)

ВФ;

6),

16)=* 6

0)

| (См) | _

114) | =>

См |

проверка

окончания цикла (счетчик цикла)

10)

ИН;

4),

11)

 

 

 

 

 

11)

стоп

 

 

 

 

 

 

 

12)

|№ а ) |- К а + 1 ) |= * С л |

начальный вид переменных команд

13)

(а + 1 )= > /? 0

 

 

 

 

14)

(а-f-n + l)

 

}

константа управления циклом

15)0, 1, (П

16)1 0 J константы переадресации

Пр и м е ч а н и е . * — обозначение модифицируемых адресов команд.

При написании программы рекомендуется разбивать ее на блоки, которые объе­ диняются собирающей программой в единую, программу. Блоки предназначены для выполнения вычислительных и логических операции, подобно тому, как показано выше для блок-схемы алгоритма (см. гл. VII, п. 1).

Преимущества записи программы в виде блоков:

1)каждый блок программируется отдельно;

2)блочная структура программы облегчает ее отладку, увеличивает гибкость программы;

3)появляется возможность при небольших изменениях задания ограничиться переделкой одного или нескольких блоков, не затрагивая остальных частей прог­ раммы.

Кодировка программы, записанной в содержательных обозначениях

Перед вводом в ЭВМ производится кодирование программы — замена содержа­ тельной записи каждой команды ее машинным кодом. Программа в содержательных обозначениях и программа в кодированном виде записываются на одном бланке, как показано в табл. VI11Л применительно к ЭВМ «Минск-32».

При кодировании программы требуется распределить память ЭВМ для хранения программы, исходных данных, промежуточных и конечных результатов вычислений. С этой целью удобно использовать специальный бланк с нанесенными на нем номерами ячеек оперативной памяти. Часть такого бланка, заполненная применительно к про­ грамме, представленной в табл. VIII. 1, показана в табл. VIII.2.

 

 

 

 

 

 

 

Т а б л и ц а

VIII.1

 

 

Программа для ЭВМ «Минск-32».

 

 

 

Шифр задачи С-3.

 

Всего листов

1.

 

Лист Ni 1

Номер

Код операции

Индекс —

Адреса

 

Пояснения

 

 

 

 

 

 

 

ячейки

знак

к оп

адрес

А 1

а 2

 

 

 

 

 

 

 

1200

10

00

1301

1400

1)Ч 1)= > Я

 

I

 

45

00

1400

1300

2)

( a ) / { R ) z = $ См

 

2

 

27

00

1400

0000

3)

(См) — ( R ) г^См

3

 

36

00

1302

1401

4)

(См) X (0,5)=>ô.+1

4

 

55

00

1303

1401

5)

1(ôi+i) 1— 1<е)1 =5>См

5

32

00'

1206

1210

6)

ИЗН; 7), 9)

 

6

 

15

00

1400

1401

7)

(ô/ + l) +

См

7

30

00

1201

1400

3) БП; 2). R

 

10

00

00

0000

оооо

9)

СТОП

 

 

 

 

 

 

 

 

Т а б л и ц а

VIII.2

 

 

Распределение памяти ЭВМ «Минск-32» для задачи С-3

 

 

 

 

Распределение памяти

 

 

 

 

1200

1201

1202

1203

1204

1205

1206

1207

12Ï0

 

 

 

Программа

 

 

 

 

1300

1301

1302

1303.,

1304

1305

1306

 

 

а

1

0,5

е = 1Ü-»

 

 

 

 

 

1400

Mill-

1102

1403

1404

1405

 

 

 

R

6i+i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6. ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ АССЕМБЛЕР

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

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

Очевидно, что программа, записанная подобным языком, не может непосредст­ венно выполняться ЭВМ из-за необходимости предварительной операции ее перевода на машинный язык (двоичный код). Такую операцию можно механизировать, исполь­ зуя ту же ЭВМ.

Программа, осуществляющая перевод программ, записанных на символическом языке (в мнемонических обозначениях, в рабочую программу (в машинных кодах) называется АССЕМБЛЕР [68]. Система команд ЭВМ, представленных с помощью мнемонических символов, образует язык АССЕМБЛЕР. Одной команде, записанной на языке АССЕМБЛЕР, соответствует одна команда на машинном языке. Кроме за­ мены мнемокоманды его двоичным эквивалентом АССЕМБЛЕР присваивает абсо­ лютные адреса в памяти командам и данным программы. Это в значительной степени упрощает операции программирования, устраняет многочисленные источники оши­ бок и обеспечивает автоматическое распределение ячеек памяти для программы и данных.

Программы на языке АССЕМБЛЕР ЕС ЭВМ состоят из четырех типов предло­ жений.

1.Машинные команды с указанием мнемокода операций. Каждое предложение этого типа порождает в рабочей программе одну команду.

2.Предложения управления трансляцией. Эти предложения имеют в поле кода операции специальный мнемонический код и в объектной программе никаких команд не порождает. Их используют для определения точки памяти, начиная с которой помещаются команды для выделения пространства под рабочие области и области ввода-вывода, для занесения в рабочую программу необходимых констант и т. д.

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

4.Комментарии (отмечаются звездочкой в колонке 1 бланка программы). Пред­ ложения этого типа не обрабатываются, но печатаются в листинге (распечатке) про­ граммы.

Машинные команды

На рис. VIII.5 представлены форматы команд ЕС ЭВМ. Система машинных команд состоит из 143 команд.

Все команды формата RR (Регистр — Регистр) (за исключением команд SPM (установить маску программы) и 5УС (обращение к супервизору) имеют вид

Имя OP R lt Т?2,

Ые ОР — мнемокод операции; Rlf R2 — адреса регистров операндов (от 0 до 15 вклю­ чительно). «Имя» — это метка команды, которая не включается в ее формат. Метка может отсутствовать.

Команда SPM записывается так: Имя SPM Ri

команда S V C —* Имя SVC /,

где / — абсолютное выражение со значением от 0 до 155 включительно.

Все команды формата R X (Регистр — Индексируемая память) имеют вид:

Имя OP R\i D2 (X2t ^ 2

где Ri — адрес регистра, содержащего первый операнд; D2 (Х 2, В2) определяют вто­ рой операнд (X индексный регистр, В — базовый регистр, D — смещение).

Первое полуслово

 

Вайт 1 | Вайт 2

Второе полуслово

Третье полуслово

 

 

 

 

 

 

 

 

 

\

Регистр

1

Регистр операнда

 

 

 

 

|

операнда

 

2

[

 

 

 

 

 

 

 

 

OP

Pi

R2

 

 

 

 

 

 

Формат RR

 

0

78

1112

15

 

 

 

 

 

( Регистр-Регистр)

 

 

 

 

 

 

 

I

Регистр

1

 

 

I

 

Адрес

 

 

 

 

 

операнда

 

 

I

операнда 2

 

 

 

Формат RX

 

 

 

 

 

 

 

 

 

 

 

 

 

 

OP

Ri

x 2

В2

Пг

 

 

 

(Регистр - Индексируемая

 

 

78

1112 15 16

7920

J7

 

 

память)

 

 

 

 

 

 

 

Регистр

Регистр

Адрес

 

 

 

 

 

 

операнда операнда

операнда

 

 

 

 

 

 

 

7

J

!

 

2

 

 

 

 

 

OP

Pt

Рз

Вг

Ъ2

 

 

 

Формат R5

 

31

 

 

( Регистр - Память)

I0

7 8

1112 1516

1920

 

 

 

 

 

 

Непосредственный

 

Адрес.

 

 

 

 

 

 

 

 

 

 

---------*---------\

 

 

Формат S I

 

 

OP

h

 

 

èf

Di

 

 

 

СНепосредственный операнд-

 

 

 

 

 

 

 

Память)

0

7 8

 

 

15 te т а

л

 

 

 

 

 

 

 

I

Длина

1

 

Адрес

 

 

Адрес

 

 

 

операндаоперанда

 

операнда

 

 

операнда

 

 

 

 

1

2

 

 

1

 

 

2

 

 

OP

Lf

L2

BJ

h

 

в 2

в 2

Формат SS

 

 

78

1112 1516

1920

31

 

U7

(Память - Память)

 

 

 

 

 

 

 

 

 

 

 

Рис. VIII.5. Форматы команд ЕС ЭВМ:

О Р

— код операции;

R u

R 2 R 3 — адреса регистров, содержащих операнды; X — адрес ре­

гистра индекса; L и

L г — спецификаторы длины операндов;

/, — непосредственный операнд;

В и

& г

— адреса регистров базы; D lt

D 2 — абсолютные выражения, определяющие смещение

 

Формирование исполнительного адреса Е основной памяти:

 

E = D + (B) + (X).

 

 

 

 

 

Здесь

(X), (В) — содержимое соответствующих регистров.

 

Команды условных переходов: ВХН (переход по индексу больше), BXLE (переход

по индексу меньше или равно), LM (загрузка групповая) и STM (запись в память груп­

повая)

имеют вид:

 

 

 

 

 

 

 

 

Имя OP Rlt R3, Dn (В2)

 

 

 

 

или

 

 

 

 

 

 

 

 

 

 

 

 

Имя OP /?lf

R3, So.

 

 

 

 

В командах сдвига R3 не используется, поэтому они записываются следующим образом:

Имя ОР /?!, D, (£о);

Имя ОР /?lt S*.

Команды формата RS имеют вид:

Имя ОР Rit R3t Do {В2)

Команды формата SI пишутся так:

Имя OP D1 (В{), / 2; Имя OP Si, / 2,

где /2 — непосредственный операнд.

Команды формата SS, в которых указываются длины двух операндов, имеют вид:

Имя OP

D1 (Lit Вг),

D2(LO, В о ) ;

Имя

OP

 

Вх),

Во(В2);

Имя

OP

Sx {Lx),

Do (В2, B2j;

Имя

OP

Sx {Li),

So (В2),

где Blt Во — длины операндов.

Термы и выражения. Для идентификации команд и областей данных используются символические имена, состоящие из 1—8 символов, записываемые по обычным пра­ вилам алгоритмических языков (например, АЛГОЛ-60, ФОРТРАН).

Имя определено, если оно встречается в поле метки предложения. Рассматриваются термы, в качестве которых могут быть имя, литерял или само-

определенный терм. Литерал — это константа, непосредственно перед которой стоит знак = , например: = X 'F I'\ = С 9 Х =В '01Г .

Самоопределенный терм — это такой терм, величина которого заключена в нем самом. Длина самоопределенных термов нс более трех байтов. Примеры:

19

0

4096 — десятичные самоопределенные термы;

À"8'

X4E57DF' — шестнадцатеричные самоопределенные термы (каждые две

шестнадцатеричные цифры составляют один байт); £'00101110'— двоичный самоопределенный терм; С'9"6' — символьный самоопределенный терм.

Самоопределенные термы используются для указания адресов, номеров регистров и т. д.

Выражение— это комбинация термов, связанных знаками арифметических опе­ раций. Например, 7* (KS — РЕ).

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

Имя DC операнды Примеры констант:

С1EXAMPLE NO. 2';

DC 2CL5'ABCDEF' — определены две константы каждая длиной по 6 байтов, т. е. в памяти будет записано ABCDEFABCDEF\

DC 3XL2'А7' — определены три константы длиной по 2 байта каждая, в памяти будет записано 00Л700Л700А7.

Имеются еще константы типов В, P, Z, H, F, Е, D — зависящие от формы пред­ ставления чисел.

^Особую группу составляют адресные константы, которые могут быть одного из типов А, V, К, S.

Например, предложение DCA (* + 4 , * +20) определяет константы 0000 0404 и 0000 0424 при условии, что они располагаются, начиная с 0000 0400 и 0000 0404.

Определение данных. Предложение Имя DS операнды

определяет имя области для ввода-вывода, рабочей области и т. п., не заботясь о пер­ воначальном их содержимом.

Например:

ABC DS F — резервирование 4 байтов;

A CG DS 7Н — резервирование 14 байтов;

ARD DS CL250 — резервирование 250 байтов;

BRT DS С'86&&60' — резервирование 5 байтов.

Предложения управления трансляцией

1. Эквивалентность Имя EQU "выражение'

20S

Вычисляется выражение и полученное значение присваивается имени, заданному в поле метки, например: ADON EQU А В С + FRG.

Следующие четыре предложения управляют форматом печатного документа (ли­ стинга) АССЕМБЛЕРА.

2. Заголовок

Имя TITLE 'заголовок'

Содержимое поля операнда (до 100 символов) печатается в заголовке каждой страницы листинга.

3.Новая страница

.Имя EJECT пробел

— следующая строка печатается, начиная с новой страницы.

4.Пропуск строк

Пробел SPACE пробел или десятичное целое (количество пробелов) 5. Режим печати

Пробел PRINT от одного до трех операндов. Операнды выбираются из следующего списка:

ON (печатать листинг программы); OFF (листинг не печатается); GEN (печатаются все команды, порождаемые макрокомандами); NOGEN (печатаются сами макрокоманд ды, а порождаемые ими команды не печатаются); DATA (печать всех констант); NOD АТА (печать только первой константы).

Существует девять предложении управления программой: 1) перфорация на карту данных из поля операндов Пробел PUNCH 'данные';

2)воспроизведение очередной входной карты без изменения в рабочей программе Пробел REPRO пробел;

3)проверка порядка следования входных карт

Пробел ISEQ пробел или L, R; (L — номер левой колонки поля карты, R — правой); 4) управление форматом входных карт

Пробел ICTL 1, 71, 16

(1 — колонка, с которой начинается предложение исходной программы; 71 — колон­ ка конца предложения; 16 — колонка продолжения);

5)копирование данных из системной библиотеки в исходную программу, имя которых указано в поле операнда

Пробел СОРУ имя;

6)информация АССЕМБЛЕРУ о том, что больше нет команд, подлежащих тран­ слированию

Пробел END пробел или перемещаемое выражение;

7)задание нового значения счетчику адреса

Пробел ORG пробел или перемещаемое выражение;

8) размещение массива литералов, начиная с первой доступной границы двойного ■слова

Имя LTORG пробел;

9) «условное нет операции» Пробел CNOP bt w,

где b, w = 0,4; 0,8; 2,4; 2,8; 4,8; 6,8.

Пример: пусть содержимое счетчика адреса равно 8194, тогда предложение CNOP 4,8 вызовет запоминание числа 0700 в поле 8194—5, а содержимое счетчика адреса станет равным 8196.

Секционирование. Для минимизации времени трансляции больших и сложных программ последние делятся на секции, причем каждая секция транслируется от­ дельно. Загрузку в память отдельных секций программы и объединение их для выт полнеиия осуществляет редактор связей (LINKAGE EDITOR).

Для целей секционирования программ используются следующие предложения: 1) - Имя START пробел или самоопределенный терм

операнд определяет начальную точку программы или секции программы; если операнд опущен, АССЕМБЛЕР считает, что программа или программная секция начинается с адреса 0;

2) Имя CSECT пробел

определяет программную секцию; если в поле метки ничего нет, секция назы­ вается непоименованной;

Имя DSECT пробел

— определяет фиктивную секцию; 3) USINGX регистр

— обращение к предложению фиктивной секции; X — имя DSECT.

4)Пробел СОМ пробел

определение непоименованной общей секции.

5) Пробел E N TR Y

, vn;

пробел E X T R N

, vni

где V[ — перемещаемое имя.

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

 

Т а б л и ц а VII 1.3

Пример программы на языке АССЕМБЛЕРа

Ком’анды на языке АССЕМБЛЕРа

Пояснения

 

1 C T L

1,

71,

16

 

S T A R T

19330

50

B A L R

12.0

 

 

U S I N G * ,

12

 

5 1

D C

X'B209'

 

 

D C

S

( N M A

X )

 

В С

S, S2

 

 

 

D C

X'BFOO'

Ввод

Определяет регистр базы (№ 12) Управление трансляцией

Ввод к

5 2

P A C K

K N ,

N M A X

Упаковка

N

 

P A

C K

R , J

 

Упаковка

J

 

A P

 

R ,

O N E

 

*4->

 

 

M

V C

B, O N E

В

= 1

 

 

M V C N , O N N

N = 1

 

5 3

D C

 

X* В DO 10000'

Ввод константы

5 4

Z A P

M P Y ,

В

Сложение с очисткой

 

M P

M P Y ,

R

В

X R

цифр

 

M V N

M P Y

4-6 (1). А1РУ+ 9

Пересылка

 

AI V C

В, МРУ -f 2

| Пересылка сим

 

AI VC L I N E ,

E D T

 

E D

 

L I N E ,

N

Редактирование

 

A P

 

N ,

O N N

N

4~ 1

 

 

C P

 

N ,

K N

 

N

: K N — сравнение

 

B C

 

2. S I

 

Условный

переход к 51

 

D C

 

X ' B B W '

 

Ввод констант

 

D C

 

S

( L I N E )

 

B C

 

8,

54

 

Условный

переход 54

 

B C

 

15, 53

 

Безусловный переход к 53

E D T

D C

A" 4020202022402020214B X

 

 

 

 

 

202020202020'

 

 

 

O N N

D C P L 2 ' \ '

 

 

 

 

O N E

D C

P L b ' 1000000'

 

 

 

N M A X

D S

C L *

 

 

Управление трансляцией для отведения

I

D S

CL6

 

 

D S

CL3

 

 

памяти под рабочие области н кон­

L I N E

D S

CL16

 

 

станты

 

N

D S

P L 2

 

 

 

 

 

B

D S

P L b

 

 

 

 

 

K N

D S

P L 2

 

 

 

 

 

R

D S

P L b

 

 

 

 

 

M P Y

D S

C L 10

 

 

 

 

E N D S O Конец

Пример программирования на языке

АССЕМБЛЕРа.

 

Вычислить значение функ­

ции В для заданных значений /,

N; В =

(1 + I)N, где /,

N — целые числа; началь­

ные значения

/0 = 1, N0 = 1.

В для

N = 1,2,

N —1.

Считать и

печатать значение

Соседние файлы в папке книги