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

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

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

Достоинство формы — быстрота выполнения операций. Ско­ рость выполнения операций (кроме операций умножения и де­ ления) такая же, как и при обработке чисел в форме с фиксиро­ ванной запятой.

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

Число в форме длинного изобразится

as?- ■235 + а 34 • 234

+ а0 • 2n-j-a3i ■2- 34 +

-•+ оза • г - 33'.-!-... + «1 • 2 -‘,

где аз5 — знаковый разряд, O34 — разряд переполнения, а; — раз­ ряды дробной части (в ячейке с дробной частью 36 и 35 разря­ ды не используются). Отрицательные числа записываются с по­ мощью модифицированного дополнительного кода. Например, отрицательное число 10,5 запишется в виде длинного числа во внутреннем коде

целая часть/числа

дробная часть числа

111

10110

001000

0

Максимальное число в форме длинного,

которое еще прини­

мает машина, равно величине 10й—1.

-

 

1

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

В ЭВМ «Наири» числа из одной формы в другую можно пере­ водить с помощью специальных операций.

Система операций. Цифровая электронная машина может вы­ полнять конечное число различных операций. Совокупность опе­ раций, выполняемых машиной, называется системой операций данной машины.

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

В системе ЭВМ «Наири» операции подразделяются на ма­ шинные и псевдооперации.

Машинная операция выполняется электронными схемами ма­ шины и обозначается при написании программ одной начальной

20

.

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

ния — буква У и т. п.

1

Псевдооперация — состоит из набора

машинных операций и

является стандартным набором этих операций, используемых мно­ гократно для вычисления таких, например, часто встречающихся выражений, как ]/, sin, cos, tg, exp, Ig , In .

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

Такие наборы псевдоопераций хранятся в ДЗУ, и если ЭВМ находит в программах код псевдооперации, то она всегда по этому коду обращается к своей долговременной памяти и выполняет по соответствующей СП ту или иную псевдооперацшо.

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

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

С 100 Н 30

Это команда сложения двух чисел из 100 и 300 ячеек ОЗУ. Здесь буква С обозначает операцию, буква Н — модификацию, числа 100 и 30 — адреса обрабатываемой информации.

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

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

б) условия, при которых команда выполняется или пропуска' ется;

в) признак изменения адреса (адресов) или других кодов команды;

г) модификация команды — вариации исполнения команды. Программа вместе с исходным числовым материалом через считывающее устройство (в «Наири» с помощью телетайпа) вво­ дится в ОЗУ. Каждой команде, из которых состоит программа,

присваивается номер ячейки ОЗУ.

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

21

Вобобщенном виде команду «Наири» можно обозначить так:

аАх %А2гтФ,

где а — код машинной операции или псевдооперации; А\ — первый адрес обрабатываемой информации; 0 — модификация; Л2— второй адрес обрабатываемой информации;

z —условие, при выполнении которого выполняется команда; при невыполнении условия команда с этим условием про­ пускается;

т — адрес ячейки ОЗУ, с содержимым которой условие све­ ряется;

ф— признак формирования команды.

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

Рассмотрим в качестве примера конкретную команду «Наи­ ри», записанную во внешнем коде,

С23 Я 30

Первая буква, с которой начинается команда, обозначает машин­ ную операцию сложения. Цифра 23, стоящая в команде вслед за обозначением операции, — это первый адрес обрабатываемой ин­ формации, цифра 30 — второй адрес. Буква Я — обозначает мо­ дификацию команды — в данном случае модификацию ^накопи­ тель» (см. ниже).

Команда выполняет такое действие: она производит сложение двух чисел, взятых машиной из 23 и 30 ячеек ОЗУ, а результат от­ сылает после выполнения действия в ячейку 30. После выполне­ ния действия результат всегда посылается машиной во второй ад­ рес команды. 1

ЭВМ «Наири»—двухадресная машина, так как в ее командах наибольшее количество адресов обрабатываемой информации равно двум.

Кроме одноадресных и двухадресных машин, существуют еще трех-четырехадресные машиньц

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

Например, в команде Я 32 Я 15 ее элементы будут числа в форме целых, расположенные в разных частях разрядной сетки.

В машине «Наири» широко используются команды с условия­ ми—команды, срабатывающие при наличии каких-то числовых условий. Покажем, как записываются и выполняются команды с условиями, например, Я 20 Я 11 — 15.

22

Переслать содержимое 20 ячейки в 11 при условии, если б 15 ячейке содержится ноль. Команда с таким условием выполняется при выполнении условия (всегда на ноль), поставленного после второго адреса — в данном примере условия «= 15». Команда вы­ полняется так: если в момент исполнения команды в ячейке, по

^

Признак ф<:рмирс£ониЯ./igMyw//

л.'£>1ц 5икац и а a nepai/uu /

п е р в ы й а ф е с А ,

&>трои а д р ес /|?

Вв Qв г?в / 0 0 00 0 0 п 00 в

--- V--'4-----v------ 'Ч-L

—!

Г-

1

/ о в 0 №<7* О,) /}а о

/ / /

>V

т

 

це л о е целое число 5,

чи с л о у>е71Г>илолсе+*/<ос

лн о л £ с 53 по27разря'д_

ц е л о е <stjesw ж ,

г/'•.осе vc/c./fo я ,

p ty c/ю л о ^ с е н я е е

р ‘-у<"•

с 2 5 по /2 р а з р я д

с / // > о / р а з р я д

Рис. 5. Запись команды П 32 Н 15 во внутренней форме.

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

Б 5ВМ «Напри» имеется восемь условий,

используемых в

командах. Перечислим их: |„=0. 2 Ф 0. 3.>0.

4 .^ 0 . э.<0. 6

< 0 . 7.! 8.оо

 

Условия «!» и «.ос» выполняются особо. Если в конце команды поставлено условие «!», то это всегда означает, что команда с та­ ким условием выполняется только в том случае, если па пульте сигнализации нажата клавиша «Вариант». С помощью условия «!» передачами'управления, например, можно управлять с пульта сигнализации машины, что часто необходимо при откладках про­ грамм — процессов, когда составленная на бумаге программа впервые выполняется машиной. При первых, таких прохождениях программ почти всегда в них находятся ошибки. Дополнительные команды печати, поставленные специально для отладки програм­ мы,— команды с условиями «!» — могут выдавать по желанию оператора в нужный момент работы отлаживаемой программы требуемые величины, по которым морю судить о характере ра­ боты программы в тот или иной момент времени. Условие «!» можно использовать и для управления прохождением программ по заранее предусмотренному варианту.

Условие «оо» используется для анализа переполнения разряд­ ной сетки машины, т. е. для контроля правильности вычислений при вероятности появления в вычислении величин, превышающих диапазон представления чисел в машине. Команда с условием «оо» выполняется только в том случае, если содержимое 35-го и Зб-го разрядов ячейки одинаково. Последнее, как говорилось,

23

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

Команды с условиями для ЭВМ «Наири» могут выполняться по анализу содержимого любой ячейки ОЗУ, если только ее но­ мер меньше или равен 15 (на размещение большого номера во внутреннем коде команды не хватает разрядов).

Для всех команд с условиями:

второй адрес в командах с условиями не может превышать числа 15 (как и адрес, по которому проверяется условие);

не существует команд с условиями в модификации К (о мбдификации К см. ниже).

Если после знака условия в команде не поставлен номер ячей­ ки, то это всегда означает проверку условия по фиксированной ячейке ОЗУ а2.

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

Итак, если в команде с условием после знака условия не про­ ставлен номер ячейки, то условие выполнится (или не выполнит­ ся) по анализу содержимого ячейки а2. Пример:

П 20 Н 11 =

Переслать содержимое 20 ячейки в 11 ячейку при условии, ес­ ли в а2 находится (в момент выполнения команды с условием) число, равное нулю.

Команды с условиями позволяют реализовать в программах различного рода разветвления. Именно это и делает программы «творческими».

Скоро мы приступим к непосредственному изучению способов составления программ, но перед этим требуется еще рассмотреть внутренние коды команд — ведь это, пожалуй, одно из главных понятий языка ручного составления программ — языка РП.

Записаны ли внутри машины число или какая-то команда— они обязательно размещаются в 36-разрядной ячейке устройства

24

\

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

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

Первая форма называется модификация «накопитель» (нако­ питель информации). Накопители информации — это различные внутренние н внешние устройства памяти. «Наири» не имеет внеш­ них устройств, памяти, это, конечно, снижает ее возможности. Запишем во внешнем коде в этой модификации какую-либо команду. Например,

С 37 Н 29

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

Команда, С 37 Я 29 складывает числа из 37 и 29 ячеек ОЗУ, а результат отсылается в 29 ячейку (вспомните, для арифметиче­ ских операций — всегда во второй адрес команды). Заметим, что результат отошлется и в фиксированную ячейку аг. В .модифика­ ции «накопитель» оба числа для обработки их операцией берутся из указанных в команде адресов. Решим такую задачу. Сложить два числа, размещенные в форме с плавающей запятой в 100 и 101 ячейках ОЗУ,'результат отправить в !1 ячейку, а исходное число из 101 ячейки сохранить.

29 /7 101 Я 11 — передача одного из слагаемых в 11 ячейку, 30 СП 100 И 11 — сложение чисел, представленных'в форме с

31 Я

 

плавающей запятой.

 

 

 

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

 

 

форме (в каком

Рассмотрим, в какой двоичной внутренней

 

внутреннем коде)

записываются команды в устройствах машины

 

.

 

фЭесб размещается?призис?* <рормаро/с?*?а&

 

 

Н о л *< у ы д б /_____ / - п р и з н а к е е с - m b ,

О - H e m / с г н .н и о Н е )

ХОд

хо д

/

А -первы й адрес

А,

ои afdpec

модификации

операции /

' ,

/

 

/

0 0 о

L

/ / п р и з н а н п с е б д о о п е р а ц и и J

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

25

вмодификации «накопитель». Эта форма, определенная конструк­ торами машины, представлена на рис. 6.

Вмодификации «накопитель» машина не может прочесть пер­ вый адрес команды сразу, потому что машина распознает числа

вформе целых (команды как раз и содержат коды в виде чисел в форме целых), начиная всегда с первого (самого младшего) раз­ ряда. А первый адрес указанной модификации расположен с 25-

го по 12-й разряды включительно. Читая сразу же первый адрес из команды в модификации Н, машина восприняла бы его как двоичное число, размещенное с 25 по первый разряд, т. е. воспри­ няла бы его как какое-то большое число, ни в коем случае не рап­ ное первому адресу. Для верного чтения первого адреса машина сначала выделяет код первого адреса. Потом первый адрес сме­ щается машиной туда, откуда машина может прочесть его неис­ каженным, т. е. сдвигается вправо на 11 разрядов.

Вторая форма модификация короткий параметр». Напи­ шем во внешнем коде команду в этой модификации : С1К1011.

Сложить число 1 в форме целого с содержимым 1011 ячейки. Результат автоматически запишется в 1011 ячейке, а также в ячейке а2.

Следует всегда иметь в виду, что в модификации К (также как и в модификациях Я, Л, Пу, Лу, см. ниже) первый адрес есть собственно не адрес, а уже само обрабатываемое операцией число, и притом в форме целого. Для модификации Н и Н„ .(см. ниже) первый адрес есть адрес памяти, откуда берется для обра­ ботки одно из чисел.

Для модификации К разрядная сетка разбивается так, как по­ казано на рис. 7.

ко^

-

w

/

МОиитрс/АСУЦиС.-

 

/ призмсг/с tjbopAfupo6atfuJ?

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

Так же, к^к и в модификации Н, для второго адреса модифика­ ции К отведены 1—11 разряды, а для первого адреса — 12—25 разряды. Код модификации — 001. Он расположен — как и в ос­ тальных модификациях — в трех старших разрядах ячейки.

По выполнению модификации К напоминает выполнение мо­ дификации П (см. ниже).

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

26

У команды в модификации К второй адрес может быть любым адресом ОЗУ.

Итак, модификация К предназначена для команд с небольши­ ми первы.ми адресами и с большими вторыми адресами.

Третья форма модификация «правый параметр». Пример команды в этой модификации:

С 32 Я 15

Число 32 в форме целого сложится с содержимым 15 ячейки. Ре­ зультат автоматически запишется в ячейку 15, а также в ячейку

й2-

Если командой складываются числа в форме целых,-тб число

в15 ячейке должно быть числом в форме целого.

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

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

Вот как разбивается разрядная сетка для модификации Я

(рис. 8).

 

'

мсдафалаааа дюрации

Ариер&ый адрес

А .'баорсд адрес

0 / 0

 

/jopc/jsscrsc

■{/JpUJHC/X

лсеЁдоолёрацииу

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

Сравните, так же как и для модификации К только для второ­ го адреса отведены разряды с 1-го по 7-й, а для первого — с 8-го по 25-й. Обозначение модификации во внутреннем коде — 010.

В модификации Я второй адрес не может быть большим чис­ ла 127 — ведь в отведенных семи разрядах для его изображения и не запишешь двоичным кодом большего числа. Действительно

127 = 11111112

Зато первый адрес может в этой модификации быть большим в отличие от модификации Я или К. Достоинство по первому ад­ ресу в модификации Я порождено недостатком по второму ад­

ресу.

Начинающие программисты часто забывают об этом и пыта­ ются иногда вводить^-в машину с телетайпа информацию такого, например, вида: С 11 Я 404. В таких случаях машина помогает программисту, тут же печатая признак ошибки — символ «*», и ожидает правильного ввода команды.,

Четвертая форма — модификация «левый параметр». Пока-

27

жем ее использование на одном из примеров. Образуем число в форме целого в 11 ячейке командой в модификации Л, причем число (двоичное) 2’8, содержащее единственную единицу в 19 раз­ ряде. Посмотрите на внутреннюю форму данной команды (рис. 9): Во внешнем же коде команда запишется П \ Л \ \.

9

КМ

А

loll

1ФМо1Ф М Ф1Ф М Ф1Ф 1Ф !оП Ф № |оН N

Рис. 9.

Запись

команды Я 1 Л 11 во внутренней

 

 

форме

Вмодификации Л перед операцией первый адрес выделяется

исдвигается влево на одиннадцать разрядов, и лишь после этого

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

берется из второго адреса.

Пятая форма—«накопитель с условием», с которой начина­ ется представление команд с условиями.

Вот команда в этой модификации:

КП 12 //ИуИО.

Извлечь квадратней корень из числа в форме с плавающей запятой из 12 ячейки при условии, если только содержимое 10 ячейки не равно нулю. В противном случае команда пропускает­ ся, и управление передается следующей за ней (КП —псевдо­ операция).

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

Вот как разбивается разрядная сетка машиньцдля модифика­ ции Н (рис. 10):

Для различия машиной в трех старших разрядах внутреннего кода модификации Ну указывается двоичный набор 100.

В модификации Ну оба обрабатываемых операцией числа бе­

рутся из адресов

(первого и второго).

Команда в модификации

О

КОП.

th

m

Z « Яг

г-'—у.—---- *----—

-----...........--у—'—

v*-^—•

f 00

 

 

!

 

m -номерячейки,покото­ рой проберяется ус/юдие

г-уй1о8ие{?г)>,<р£11т.у

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

28

Ну выполняется, если выполнено условие; в противном случае команда пропускается.

Шестая форма модификация «правый параметр с усло­ вием»- В этой модификации команда может иметь такой вид:

/7 1/7 11^=

Послать целое число 1 в ячейку 11 при условии; если только в ячейке а2 не содержится ноль. Напомним, что в ячейке а2 нахо­ дится результат предыдущего действия. Вспомните, если после знака условия не указан номер ячейки, по которой проверяется условие, то это означает проверку условия по содержимому ячей­ ки а2.

Для модификации П у в машине отведен формат внутреннего кода (рис. 11).

/кодОперации

/код

/

Л ризиок

модификации

/

формирования

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

В модификации Пу одно из обрабатываемых чисел берется равным первому адресу, второе число берется из второго адреса. Команда в модификации /7У выполняется, если выполнено усло­ вие, в противном случае команда пропускается.

Пример. Вычислить функцию y = s \ n x гари условии, если в 11 ячейке в момент вычисления должно находиться число меньше нуля, в 12 ячейке число больше нуля, а в 13 ячейке число равно нулю. Результат записать в 14 ячейку и выдать на печать с пятью

знаками после запятой.

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

чисел.

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

100 И 106 11— передача управления в 106 ячейку, если в 11 ячейке число не меньше нуля или равно нулю; 101 Я 106 775» 12 —• передача управления в 106 ячейку, если в 12 ячейке число не больше нуля или равно нулю;

29.

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