logo search
Полный текст учебника

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

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

Номер команды

Код операции (КОП)

Адрес 1

Адрес 2

Адрес 3

К + 1

СЛ

10

11

11

К + 2

УМ

11

11

101

К + 3

СЛ

К +2

12

К + 2

К + 4

УПУ<

К + 2

13

К + 1

К + 5

Стоп

-

-

-

Номер команды соответствует адресу ячейки памяти, где эта команда хранится.

Назначение команд:

Исходные данные к программе (операнды) хранятся в ячейках:

Ячейка

КОП

Адрес 1

Адрес 2

Адрес 3

12

0

0

0

1

13

УМ

11

11

201

Что же считает программа? Рассмотрим последовательно выполнение команд. В программе выполняется много циклов вычислений.

Первый цикл:

К + 1 СЛ 10, 11, 11

1 + 0 = 1 записывается в ячейку с адресом 11,

К + 2 УМ 11, 11, 101

1 х 1 = 12 записывается в ячейку с адресом 101,

К + 3 СЛ К + 2, 12, К + 2

УМ 11 11 101 + 0 0 0 1

= УМ 11 11 102

(записывается в ячейку с адресом К + 2)

К + 4 УПУ< К + 2, 13, К + 1

– поскольку код УМ 11 11 102 в ячейке К + 2 меньше кода УМ 11 11 201 в ячейке 13, выполняется переход к команде К + 1 и начинается второй цикл.

Второй цикл:

К + 1 СЛ 10, 11, 11

1 + 1 = 2 записывается в ячейку с адресом 11

К + 2 УМ 11, 11, 102

2 х 2 = 22 записывается в ячейку с адресом 102,

К + 3 СЛ К + 2, 12, К + 2

УМ 11 11 102 + 0 0 0 1

= УМ 11 11 103

(записывается в ячейку с адресом К + 2)

К + 4 УПУ< К + 2, 13, К + 1

поскольку код УМ 11 11 103 в ячейке К + 2 меньше кода УМ 11 11 201 в ячейке 13, выполняется переход к команде К + 1 и начинается третий цикл.

Третий цикл:

К + 1 СЛ 10, 11, 11

2 + 1 = 3 записывается в ячейку с адресом 11

К + 2 УМ 11, 11, 102

3 х 3 = 32 записывается в ячейку с адресом 103,

К + 3 СЛ К + 2, 12, К + 2

УМ 11 11 103 + 0 0 0 1

= УМ 11 11 104

(записывается в ячейку с адресом К + 2)

К + 4 УПУ< К + 2, 13, К + 1

поскольку код УМ 11 11 104 в ячейке К + 2 меньше кода УМ 11 11 201 в ячейке 13 выполняется переход к команде К + 1 и начинается четвертый цикл.

И так далее…

Сотый цикл:

К + 1 СЛ 10, 11, 11

1 + 99 = 100 записывается в ячейку с адресом 11

К + 2 УМ 11, 11, 102

100 х 100 = 1002 записывается в ячейку с адресом 200,

К + 3 СЛ К + 2, 12, К + 2

УМ 11 11 200 + 0 0 0 1

= УМ 11 11 201

(записывается в ячейку с адресом К + 2)

К + 4 УПУ< К + 2, 13, К + 1

поскольку код УМ 11 11 201 в ячейке К + 2 не меньше кода УМ 11 11 201 в ячейке 13, выполняется следующая команда К + 5 («Стоп»).

Расчет окончен. В результате работы программы последовательно рассчитаны квадраты чисел от 1 до 100, которые записаны в последовательные ячейки памяти — 101–200.

Рассмотренная программа иллюстрирует несколько важных особенностей компьютерных программ:

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