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

книги из ГПНТБ / Сафонов, С. Ф. Вычислительная техника в инженерных и экономических расчетах (конспект лекций)

.pdf
Скачиваний:
12
Добавлен:
19.10.2023
Размер:
5.26 Mб
Скачать

 

 

 

 

ИСПОЛЬЗОВАНИЕ РАБОЧИХ ЯЧЕЕК

Т а б л и ц а III

 

 

 

 

 

 

 

 

ОЗУ В ПРОГРАММАХ, ЗАПИСАННЫХ В ДЗУ

 

 

 

Виды программ

|

 

Рабочие ячейки

1.

In х;

lg х; у ' х

; arcsinx;

arc cos х:

 

 

3-:-7

 

 

arc tg x

 

 

 

 

 

 

 

 

 

2.

ex; crt; bn;

gn;

уп, вм;

ob; од;

 

 

3-:-8

 

 

nm; eg; bg; нд; от; пи

 

 

 

 

 

 

3.

sin x;

cos x;

tg xl дн

 

 

 

 

3-:-9

 

4.

ym; nz

 

 

 

 

 

 

3-;-9, 16, 17;

5.

ng

 

 

 

 

 

 

 

3-:-9, 16, 17,

20, 21

6.

* nn

 

 

 

 

 

 

 

3-:-9, 16, 17,

20-:-26

7.

yg

 

 

 

 

 

 

 

3--.-9, 16, 17, 20-:-23, 25

8.

nc

 

 

 

 

 

 

 

 

3, 4

 

9.

cc,

bk

 

 

 

 

 

 

3, 4, 16, 17. 20-:-23

10.

yk;

gk

 

 

 

 

 

 

3, 4, 16, 17, 20-:-23; 25; 26

11.

nk

 

 

 

 

 

 

 

 

3, 4, 8,

9

12.

gm

 

 

 

 

 

 

 

3-:-5, 8, 9, 10

13.

gg

 

 

 

 

 

 

 

3-:-6, 8, 9, 16, 17, 20-':-23

14. вв (выдача памяти)

 

 

 

2, 3, 18, 1018-:-.1020

15.

ДИИ (дешифрация исходной ин­

 

1, 6,

7, 16-:-28, 1000

 

формации)

 

 

 

 

14, 32-:-60,

61-;-61+5п3+Зп; 980

16.

Обращение матрицы и вычисление

 

определителя

 

 

 

 

 

32-:-63: 64-:-64+п2+Зп; 980;

17.

СУ (система

линейных

алгебраи­

 

 

ческих уравнений)

 

 

 

 

993, 1022

18.

Система

обыкновенных

дифферен­

 

■ 15, 20;

33-:-54;

65-:-980;

 

циальных уравнений

 

 

15,

20, 41, 60, 61, 65, 980, 67-:-370

19.

Интеграл

 

 

 

 

 

20.

СС (счетный режим)

 

 

2,

9, 16-:-18; 23; 25; 32; 981--.-990

 

 

 

 

 

 

 

 

 

998-;-1003; 1005; 1007-1-1016

102

И 106 Пф 13 — передача управления в 106 ячейку, если в 13

 

 

 

 

 

ячейке находится

число,

которое не равно

103 Sri

29

 

 

нулю;

 

 

 

 

 

Н 14 — вычисление функции sin л:, результат отпра­

104 пп

14

Н

 

вится в 14 ячейку;

 

 

 

5 — вывод на печать;

 

 

 

105

О

2274

Я — возврат каретки телетайпа, перевод строки

106 К

 

 

 

(бумажной ленты на строку);

 

 

 

— останов машины.

 

 

 

 

Седьмая форма—модификация «левый параметр с условием».

Для этой модификации в ЭВМ «Наири» использован формат

■внутреннего кода

(рис.

12).

 

 

 

 

Вмодификации Лу команды выполняются так;

Я1 Л Д 1 >

зо

Число в форме целого выделится й сдвинется из 12 разряда, где оно во внутренней двоичной форме записано на семь разря дов влево н после этого пошлется в 11 ячейку при условии, если

мод

А, '

т

А?

Операции

Рис. 12. Разбиение разрядной сетки ЭВМ «Наири» для записи команд з модификации Лу

только в'ячейке а2 в момент исполнения этой команды находится число больше нуля.

Рели в модификациях К и П можно командами образовывать сравнительно небольшие числа, например, командой в модифика­ ции Л

Л 262143 П 11

(послать в 11 ячейку число 262143 в форме целого), то в моди­ фикации Л можно той же операцией получить в 11 ячейке намно­

го большее число

Я 262143 Л 11

(в 11 ячейке образуется число, изображаемое в двоичном внут­ реннем коде в виде 11 10...О или в виде внешнего кода (деся­ тичного) отрицательное число 262144). Таким образом, команда­ ми в модификациях Л и Л у можно образовывать даже операции

н модификации. ~ Характерной особенностью электронных вычислительных'ма-

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

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

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

31

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

вформе с плавающей запятой.

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

Я131089 Я зо;

получим в 30 ячейке ОЗУ единицу в'форме с плавающей запя­ той.

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

Формирование команд в программах. Для команд ЭВМ «На-

ири» существует признак, по которому команда с этим признаком может переформироваться или заново формироваться. Пусть, на­ пример, требуется изменить на единицу второй адрес такой команды

Я 100 Я 200

Так как команда во внутреннем коде представляет какое-то чи­ сло, то для изменения младшего разряда такого числа (см. внут­ ренний код модификации «Н») естественно прибавить к нему кон­ станту изменения — в нашем случае единицу. Это можно сделать в программе следующим образом:

120 Я 1 Я 1

121 Я 100 Я 200 +

Записанная программа сработает так:

команда из 120 ячейки зашлет единицу в форме целого числа

впервую ячейку;

вкоманде из 121 ячейки имеется признак формирования команд «+», который ставится всегда в конце команды.

Признак формирования, поставленный в конце команды, озна­ чает, что прежде чем такой команде исполниться, она должна сложиться с первой ячейкой ОЗУ. Причем такое сложение произ­ водится не в оперативной, памяти машины, а в специальном уст­ ройстве без посылки после этого измененной команды из этого устройства в ячейку памяти. Результат, полученный на специаль­ ном устройстве (на регистре команд), и будет новой (сфор­ мированной) командой, которая вслед за этим и исполняется.

32

В нашем примере после формирования на регистре команд получается'новая команда

Я 100 Я 201,

которая сразу же и исполняется.

Такой процесс изменения адресной части команд называется переадресацией команд.

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

Теперь изменим первый адрес той же команды на единицу

29 Я 2048 Я 1

30 Я 100 Я 200 + .

Команда из 29 ячейки посылает целое число 2048 в первую ячейку. Когда команда из 30 ячейки выберется на регистр команд, машина «увидит», что в команде есть признак формирования, и прежде чем исполнить такую команду, машина сложит с этой ко­ мандой содержимое первой ячейки.

Вспомним теперь двоичную систему счисления. В младшем разряде двоичного набора всегда имеются единица или ноль. Во втором разряде обозначаемые соответственно единицей или ну­ лем —двойка или ноль. В третьем разряде в двоичной системе счисления единицей обозначают четверку, в четвертом разряде — восьмерку, в пятом — шестнадцать, шестом..., двенадцатом раз­ ряде— 2048. Итак, число 2048 изображается единицей в 12 раз­ ряде двоичной системы. Теперь взгляните на внутренний код ко­ манды Я 100 Я 200 + (рис. 13).

Рис. 13. Запись команды я Л00 я 200 во внутренней форме

В этой модификации младший разряд первого адреса коман­ ды как раз и начинается с 12 разряда. Складывая в исполнитель­ ном устройстве содержимое первой ячейки с командой, машина получит перед выполнением этой команды ее переформирован­ ный вид Я 101 Я 200.

А если требуется изменить первый адрес команды сразу на Два? Тогда следует сложить команду с константой формирова­ ния — 4096 и так далее.

Если же нужно изменить первый и второй адреса одновремен­ но, например, на два, то следует с помощью первой ячейки и при-

3—3657

33

знака формирования команд сложить команду перед ее вы полне­ нием с константой 4096+2=4098.

Поскольку внутренние коды одной и той же команды в моди­ фикациях Я и Я различны, то различны будут и константы фор­ мирования команд в этих модификациях. В модификации Я кон­ станта формирования первого адреса на единицу будет равна чи­ слу 128. Этот вывод подтвердится, если взглянуть на внутренний код модификации Я.

Система команд ЭВМ «Наири». Совокупность команд, соот­ ветствующих системе операций данной машины, называется си­ стемой команд машины.

При рассмотрении системы команд будем записывать коман­ ды в виде

сА®А2,

где С — конкретная операция (в данном случае машинная опера­ ция сложения);

Ах— первый адрес команды;

А2— второй адрес;

0 — обобщенное представление модификации.

Обобщенное обозначение действия, выполняемого командой, например, для команды С Aj 0 А2 обозначим символами

(4г)+ [^ 1)9 Ai, «2>

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

Горизонтальной стрелкой’будем обозначать отсылку результа­ та действия в адрес А2 и ячейку а2.

Операции ЭВМ «Наири» можно подразделить на несколько

групп:

1

арифметические операции;

логические операции; операции над кодами; операции управления;

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

псевдооперации.

Машинные операции представлены в таблице IV. Покажем на примерах использование некоторых из них. Сложить два числа в форме целых из 100 и 101 ячеек

С 100 Я 101,

Результат окажется в 101 ячейке.

Сложить два числа в форме с фиксированной запятой, одно из которых находится в 100 ячейке, а другое — в а2; результат разместить в 200 ячейке.

34

1

000000

0 0

хое

Холостая

 

 

 

 

операция

2 1 0 0 0 0 0

40

 

Безуслов­

u 2A x0

ный пере­

 

 

 

 

ход

.3

000001

01

cA 1 0 A 2

Сложение

 

Т а б л и ц а IV

(СгК) - СгК

ct2—сохра­

няется

 

 

В програм­

[ A j l e - СгК

мах не

 

,применять

(А2) + [Aj]0 -»■А2;

а2

4

100001

41

CjAiQAa

 

(а») + [Ai]g -*■А2; а2

 

 

 

 

 

 

 

 

 

 

Ответ не

5 0 0 0 0 1 0

0 2

ЬАгвА»

Вычитание

(А2) — [Ai]e -»■А2; а2

анализи­

руется.

 

 

 

 

 

 

 

 

 

Машина

6

 

42

biA10A2

 

(а2) — [Ai]e А2; а2

выдает пра­

100010

 

вильные

 

 

 

 

 

 

 

 

 

результа-

7

 

 

 

 

 

 

 

 

ты, если

000011

03

у А х в А г

Умножение

(А]) X [Ах]0 -> А2; а2

[х]< 2.

8

100011

43

yiAj0 A2

 

(а2) X [AiJg -*■А2; а2

 

9 0 0 0 1 0 0

04

gAjL0A2

Деление

(А2) : [Axjg -*■А2; а2

 

10

100100

44

giAjOAs

 

(а2) : [Ajjg -»■А2; а2

 

11

000101

05

a A ^ A z

Ариф, сдвиг

(А2)

на

[Aj]g ->■А2; а2

0 ф л

 

 

 

 

вправо

 

12

100101

45

aiAx@A2

»

(а2)

на

[А4]в

А2; а2

е ф л у

i3

0 0 0 1 1 0

06

5A10A 2

Лог. сдвиг

(А2)

на

{Aj]q

А2; а2

0 ф л

 

 

 

 

влево

 

 

 

 

 

14

0 0 0 1 1 0

46

S|Ai @A2

 

(а2)

на

[Aj]q -* А2: а2

0 = л

15

000111

07

hAj0A2

Нормали­

[Ах]0

норм. -*■ Ао

 

зация

Колич. сдвиг.

а2

 

 

 

 

 

 

16

 

 

 

 

(а2) норм.

А2

Рекомен­

100111

47

HxO0A2

»

дуется

Колич. сдвиг.

а2

 

 

 

 

 

 

 

 

 

брать 0 = К

17

001000

10

nA20A2

Передача

 

[Ai]e -*■А2; а2

 

числа

 

 

 

 

 

 

 

 

 

 

 

18

 

 

 

 

 

 

 

 

Рекомен­

101000

50

П)ОвА2

 

 

(а2) -»• А2;

а2

дуется

 

 

 

 

 

 

 

 

 

брать 0 = К

3*

35

19

001001

11

C2Ai0A2

20

101001

51

С3Аг0А ,

21

1

1

b.,Ai0A4

001010

12

 

1

|

 

22

10.1010

52

bsA,0A 2

23

001011

13

ysA i0A2

24

101011

53

y3AiOA3

25

0011001 14

g2A10A 2

 

f

 

 

26

101100

54

g3A]0 A2

27

001101

15

iA^OAa

28

101101

55

KA-, 0 a 2

29

joOlllO

16

JIAi 0A 2

 

1

 

 

30

101110

56

HiAiQAa

 

]■

j

 

31

1

 

OOiillj

17j

MAx0A 2

 

i

1

 

32

10111 ij

57j

MiAiBAa

зз

joioooo

20j

uAx0

34

110000

6o|

UjA^Aa

35

*010001

21

OA,0

36

110001

61

OxO©

 

 

П р о д о л ж е н и е

табл. IV

Сложение

(Аг) +

[Aj]0 -> А2; а2

 

 

 

 

 

 

(аг)

[Aijg; -v А2; а2

В случае

 

 

 

 

 

 

 

переполне­

Вычитание

(Аг) — [Ах]0

А2; а2

ния раз­

 

рядной сет-

 

 

 

 

 

 

ки j х j >

1

 

 

 

 

 

 

делается

 

 

 

(а2) — [Аг]в

А2; а2

следующее:

 

 

 

 

 

>

1. Сг.

 

 

 

 

 

 

 

К-Ю 22

 

Умножение

(А2) X

[Ai]0 -*■Аг; а2

2.

1023—

 

-9-Сг. К

 

 

 

 

 

 

 

 

 

 

(а2) X

[Ajjg

Аа; а2

 

 

 

 

Деление

(А2) : (А!]@-> А2;

а2

Если

1де­

 

лимое j :

 

 

 

 

 

 

 

--

1Дели­

 

 

»

(а2) : 1А±"Jq -*■ Аа;

а2

теля [

, то

 

 

Сг. К ->Ю2-2

 

 

 

 

 

 

1023-*Сг. К

Логическое

(А2) V [Ai]g

-»• а2

 

 

 

 

сложение

 

 

 

 

 

 

 

 

 

 

 

 

 

»

(а2) V lAj]0 — А2; а2

 

 

 

 

Логическое

(Аг) A [Aj Iq -*■а2

 

 

 

 

умножение

 

 

 

 

 

 

 

 

 

 

 

 

 

»

(а2) д [A1J0 ->■ А2; а.2

 

 

 

 

Сложение

(Аг) © [Ах]в .-»■а2

 

 

 

 

по

mod.2

 

 

 

 

 

 

 

 

 

 

 

 

 

»

(а2) @ (Ai]0 — А2< а2

 

 

 

 

Переход

(Ai]04 -

СгК

 

(а2)—

 

 

без

воз­

 

сохра­

,

врата

 

 

 

 

няется

 

Переход с

(Aj]04-> СгК и ком. и. (СгК)+1

-»• Аг

возвратом

 

 

 

 

 

 

 

 

Обращение

[Aj]02 -9- печать

 

(а2)—со-

!

 

храняется

 

 

 

 

 

 

 

 

 

»

((а2) — 2u '-f 27)-*печать

 

 

ч

 

 

 

 

 

36

37

0Ю010

22

6А^0 Ag

Изм..

с за­

вом.

СгК-

 

 

 

 

38

110010

62

е А 0 А г

Относи­

тельный

 

 

 

 

БП

 

39

010011

23

гА^До

Прав.

ариф.

сд. дл. чи­

 

 

 

 

сла

 

40

110011.

 

гtAx0A,

Лев.

ног.

63

сдвиг дл.

 

 

 

 

числа

41

010100

24

rO0A,

Чтение

42 Ml 1 111

37

кАх0 или К

Останов.

П р о д о л ж qн и е т g б л. IV

(CrK) + [A JHА2;.а2

(СгК) + [А,]* - СгК

• (А > на [А,]' - A2a

(А*)» на [Л ,]' -.-А./.

< Р,ВУ — А.,; а.,

[Aj]0 СМ и останов.

1

'0 -Л. Л

\

(3 7^ ill

Рекоменду­ ется брать

0:--П

'

43

11.1111

77

к,О0

»

(а-) ■+СМ' и останов.

 

 

 

 

 

 

 

Клавиша

 

 

 

 

 

 

«ключ» на­

44

010101

25

и3А30

Переход

' tАг]у4 -* СгК

жата—опе-

по ключу

рац. вьцг.

 

 

 

 

 

 

Не нажа­

та—про­ пускается

Су 100 Н 200.

В последнем примере'команда использует три адреса: а2, 100 и

200.

Вычесть из содержимого а2 целое число 5 с размещением ре­ зультата в 100 ячейке и в ячейке а2:

By 5 Г1 100.

Сложить два целых числа из 11 и 12 ячеек. В случае переполнеш+я разрядной сетки перейти к программе, начинающейся с 300 ячейки

С2 11 Н 12,

но необходимо предварительно в 1023 ячейке образовать коман­ ду И 300 П (табл. IV).

При работе в операциях с индексами 2 и 3 «Наири» анализи­ рует переполнение разрядной сетки (но состоянию 35 и 36 разря­ дов) и в случае переполнения ЭВМ выполняет следующее:

а) Число, равное номеру команды, при которой выявлено пе­ реполнение плюс единица, передается в 1022 ячейку ОЗУ. Это

37

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

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

Псевдооперации представлены в таблице V.

Приведем примеры использования некоторых арифметических псевдоопераций.

Переслать содержимое 100 и 101 ячеек в 200 и 201 соответ­ ственно

ОГ 100 Я 200.

С помощью операции передачи длинных чисел произведена пере­ дача чисел из 100 и 101 ячеек в 200 и 201 соответственно.

Внимание! В псевдооперациях сложения, вычитания, деления, нормализации, переписи и печати длинных чисел; сложения, вы­ читания, умножения и деления комплексных чисел модификации К и Я срабатывают как модификация Я, например

СД 150 П 170

означает сложение двух чисел, целые части которых находятся соответственно в ячейках 150 и 170, а дробные части — в ячейках 151 и 171. Результат образуется в ячейках 170 и 171 в виде длин­ ного числа. Пример:

СД 250 И 170.

Вэтом случае в ячейке 250 записан номер ячейки, в которую, в свою очередь, заранее послана целая часть первого слагаемого.

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

Применение модификаций П, К, Л дает возможность эконо­ мить ячейки памяти. При этом в зависимости от выполняемой псевдооперации число, записанное в разрядах первого адреса, может быть рассмотрено как число с плавающей или фиксиро­ ванной запятой, так и в форме целого. Примеры:'

СП 13189 Я 100.

Здесь единица в форме с плавающей запятой представлена с помощью правого параметра — числа—131089 в форме целого

УП 32768 Л 100

Левый параметр 32768 совпадает с числом 0,5, представленным в форме с плавающей запятой

Ут 5 Я 100,

38

означает умножение числа 5 в форме целого на целое число, за­

писанное по адресу 100.

Все псевдооперации могут носить также характер условных команд и подвергаться переадресациям (в случае модификации

Кпсевдооперация не может быть условной).

Втех случаях, когда псевдооперация дает недействительный

результат, машина печатает соответствующий признак и делает останов, например,

в псевдбоперациях log и In — при неположительном аргумен­ те печатается х<0.

|/х — при отрицательном аргументе в псевдооперации извле­ чения корня печатается х<0;

sin, cos, tgx — при большом порядке аргумента печатается

Р~Рх

a r c sin, a r c cos — при[х]>1 печатается [х]>1.

В случае переполнения (порядка или самого числа) машина печатает символ оо и останавливается-

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

Псевдооперации с условием «оо » выполняются, если в 36-м и 35-м разрядах проверяемой ячейки одинаковые цифры (т. е. нет переполнения разрядной сетки), в противном случае команда с условием «оо » пропускается.

Логические операции. Рассмотрим вначале некоторые эле­ ментарные понятия теории множеств и алгебры логики.

Логическое умножение, или операции пересечения множеств (рис. 14), где А — множество одного класса элементов, В — мно­ жество другого класса элементов, Р — универсальное множество, в которое входят множества Л и В.

Слово «люди», например, определяет некоторое множество объектов, состоящее из мужчин, женщин и детей.

Множество, содержащее все элементы, принадлежащие неко­ торым произвольным множествам Л и В (и только эти элементы), называются пересечением множеств Л и В и обозначается через Л П В, что шэжно читать так: Л и В. Если множества Л и В вы­ делены из универсального множества с помощью каких-то свойств, то пересечение Л и В — это множество, состоящее из элементов, обладающих обоими свойствами. (Например, если Л — прямо­ угольные треугольники, В — равнобедренные треугольники, то Л

и В — множество равнобедренных

прямоугольных треугольни­

ков). Заштрихованная на рис. 14

общая площадь двух кругов

представляет собой А й В.

 

39

Соседние файлы в папке книги из ГПНТБ