
книги из ГПНТБ / Михельсон В.С. Элементы вычислительной математики учебное пособие для электроприборостроительных техникумов
.pdfперфоленту. Пробитые отверстия соответствуют 1, иепробнтые — 0. Пробивка цифр десятичного числа производится на перфораторе при помощи цифровой клавиатуры. Чтобы, например, задать на перфо карту (перфоленту) цифру 6, в соответствующем разряде клавиату ры нажимаем клавишу с цифрой 6 — на перфокарте пробивается тет-
|
j» |
|
|
|
Тетрады |
|
|
|
|
Знак порядна мантиссы |
|
|
|
|
|
||||
1 |
1 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
|
|||||||||
1 0 0 1 1 1 0 0 |
|
/ / 0 |
0 / 0 1 ; 0 0 0 0 0 0 0 0 0 / 0 1 0 0 0 0 1 / / |
||||||
|
|
|
|
1 |
|
|
|
|
|
Порядок |
расПререлепие |
разрядов |
ячейки |
п и |
записи |
десятичного числа |
|||
операции |
|
I |
адрес |
|
Sадеср |
Шадрес■ |
|
||
вод |
|
|
|
|
|
|
|
|
|
*)
Распределение разрядод ячейки при записи команд Знак порядка Знак мантиссы
б)\
Порядок |
Мантисса |
Распределение разрядов |
ячейки при записи двоичного числа |
Рис. 26
рада ОНО. После перенесения всех цифр числа на перфокарту (пер фоленту) это число оказывается пробитым в двоично-десятичной форме.
Рассмотрим на примере машины БЭСМ структуру чисел при их записи в двоично-десятичной форме и после их перевода в двоичную систему счисления. Эта машина трехадресная, выполняет до 10 000 операций в секунду. Коды чисел, с которыми она оперирует, содер жат 39 двоичных разрядов, которые используются для задания и хранения в машине как чисел, так и команд. Первый справа разряд назовем 1-м, следующий — 2-м и т.-д. Крайний слева разряд назо вем 39-м. В машину БЭСМ числа и команды задаются при помощи перфокарт. На каждой перфокарте могут быть пробиты двенадцать
200 —
чисел или команд. Мантисса десятичного числа пробивается тетра дами, которые занимают 32 разряда (с 1-го по 32-й) (см. рис. 26). 33-й разряд является знаковым разрядом мантисс. Нуль в этом раз ряде означает, что число положительное, минус — что число отрица тельное Для знака порядка числа используется 39-й разряд, а поря док набивается с 34-го до 37-го. В 38-м разряде всегда задается нуль.
Таким образом, числа, вводимые в БЭСМ, содержат восемь десятичных цифр, а порядок по абсолютной величине не больше девяти.
На рис. 26, а показано распределение разрядов при записи числа
0,39580287-10"7.
После того как перфокарта с пробитыми на ней двенадцатью числами (в двоично-десятичной форме) поступает в считывающее устройство машины, эти числа передаются в запоминающее устройст во. В нем они находятся в той же двоично-десятичной форме, как они были пробиты на перфокарте. Если программа, по которой рабо тает машина, предусматривает перевод определенных чисел из двоич но-десятичной формы записи в двоичную систему счисления, то после такого перевода для порядка используют уже другое количество раз рядов. Для мантиссы отводятся 32 двоичных разряда. 33-й разряд, как и прежде, является знаковым разрядом мантиссы. Следующие пять разрядов отводятся для цифр порядка числа, который записы вается двоичным числом (рис. 26, е).
Порядок числа, записанного в десятичной системе, не равняется порядку этого числа после его перевода в двоичную систему. На
пример, число (13406, 625) ю в нормализованной |
форме запишется |
так: 0,13406625 • 105. При записи этого числа в |
двоично-десятичной |
форме его мантисса записывается так |
|
0001 ООП 0100 0000 ОНО ОНО 0010 0101 |
а порядок |
5 — двоичным числом 0101. В двоичной системе счисления |
|||
это число |
записывается |
как (0,11010001010100101 )гХ (10)э |
^ Ю)г- |
|
Его двоичный порядок станет равным 01110. Так как для |
двоичных |
|||
цифр мантиссы двоичного |
числа отводится 32 разряда, |
то |
самое |
|
большое значение мантиссы может быть |
|
|
Порядок двоичного числа, находящегося в машине, не больше, чем 31, так как он выражается пятизначным двоичным числом. Итак, электронная вычислительная машина БЭСМ может производить вы
201
|
|
|
|
|
|
|
числения |
с |
восьмизнач |
||||||
|
|
|
|
|
|
|
ными |
десятичными |
чис |
||||||
|
|
|
|
|
|
|
лами, имеющими деся |
||||||||
|
|
|
|
|
|
|
тичный |
|
порядок |
|
от |
—9 |
|||
|
|
|
|
|
|
|
до +9. |
|
|
|
чем |
наби |
|||
|
+ 01 |
|
5350 0000 |
|
! |
Прежде |
|||||||||
|
|
|
вать эти числа на перфо |
||||||||||||
1 |
102 |
+ И)80 |
0000 |
|
2 |
||||||||||
|
картах, |
они записывают |
|||||||||||||
2 |
+ 02 |
+ 1520 0000 |
|
3 |
|||||||||||
|
ся на специальных блан |
||||||||||||||
3 |
+ 02 |
+ 1178 0000 |
|
4 |
|||||||||||
|
ках. Эти бланки для раз |
||||||||||||||
|
+ 0? |
+ 1180 0000 |
|
б |
|||||||||||
4 |
Числа |
личных |
|
машин |
|
имеют |
|||||||||
5 |
+ 0? |
+ 1 Ш |
0000 |
6 |
различную форму. |
Бланк |
|||||||||
6 |
+ 0? |
+ 1058 оооо |
|
7 |
|||||||||||
|
программы для |
машины |
|||||||||||||
7 |
+ 02 |
+ 1261 0000 |
|
6 |
|||||||||||
|
БЭСМ |
|
(рис. |
27) |
состоит |
||||||||||
|
4- 02 |
+ т о оооо |
|
9 |
|
||||||||||
|
|
из двух |
|
частей, |
каждая |
||||||||||
1 |
+ 02 |
+ т о оооо |
|
10 |
|
||||||||||
|
из которых разделена на |
||||||||||||||
2 |
+ 02 |
+ 2102 6000 |
|
11 |
|||||||||||
|
12 строк |
и соответствует |
|||||||||||||
3 |
4- 02 |
+ 1620 ооос |
|
12 |
|||||||||||
|
1 |
одной |
|
перфокарте. |
Та |
||||||||||
4 |
75 |
ООП 0625 0075 |
|
|
|||||||||||
|
ким образом, числа, запи |
||||||||||||||
5 |
00 |
0000 0000 оооо |
|
2 |
|||||||||||
|
3 |
санные на одном бланке, |
|||||||||||||
6 |
31 |
0000 0055 0001 |
Команды |
||||||||||||
пробиваются |
на |
двух |
|||||||||||||
7 |
27 0Ю1 0623 010г |
|
4 |
||||||||||||
|
5 |
перфокартах. Бланк |
раз |
||||||||||||
|
22 |
ООП 0623 0072 |
|
||||||||||||
1 |
|
|
делен на восемь столб |
||||||||||||
0 / |
0013 |
0616 0013 |
|
6 |
|||||||||||
2 |
01 |
00/4 |
04/6 |
0016 |
|
7 |
цов. В первом записыва |
||||||||
|
|
ется адрес ячейки запо |
|||||||||||||
3 |
00 010/ |
0000 0075 |
|
Э |
|||||||||||
4 |
75 00/4 |
0424 0072 |
|
9 |
минающего устройства, в |
||||||||||
5 |
00 0101 0000 0262 |
|
10 |
которой |
|
нужно |
|
задать |
|||||||
6 |
36 0000 0000 0025 |
|
U |
число или команду, за |
|||||||||||
7 |
00 0000 оооо 0036 |
|
|
писанную |
в |
этой |
же |
||||||||
|
|
|
|
|
|
|
строке. Этот адрес на |
||||||||
|
|
|
|
|
|
|
перфокарту |
не |
пробива |
||||||
|
|
|
|
|
|
|
ется, потому что числа |
||||||||
|
|
|
|
Рис. |
27 |
|
после |
ввода |
в |
машину |
|||||
|
|
|
|
|
размещаются по ячейкам |
||||||||||
|
|
|
|
|
|
|
в зависимости от специ |
||||||||
|
Следующий столбец используется |
альных |
|
команд. |
порядка. |
||||||||||
|
для записи |
|
знака |
Порядок записывается двузначным числом в третьем столбце. Во семь цифр мантиссы записываются в пятом и шестом столбцах. В седьмом столбце записываются некоторые словесные пояснения, которые в машину не вводятся. В последнем столбце указаны номе ра строк.
202
Машина БЭСМ является трехадресной машиной, поэтому в ко мандах указываются адреса трех ячеек памяти. Каждый адрес но меруется четырехзначным восьмеричным числом. Внутреннее запо минающее устройство машины состоит из 2048 ячеек, имеющих ад реса от (ОООО)в до (3777)s- На бланках эти адреса записываются в четвертом, пятом и шестом столбцах. Код операции записывается двузначным восьмеричным числом в третьем столбце. Когда команда пробивается на перфокарте, то вместо каждой восьмеричной цифры перфоратор пробивает соответствующую тройку двоичных цифр: вме сто 0—000, 1—001, 2—010, 3—011, 4—100, 5—101, 6—110 и 7—111.
Так как первая цифра любого адреса не больше 3, то для эко номии для нее отводятся на перфокарте и в памяти машины только два разряда: 0 задается как 00, 1— как 01,2 — как 10 и 3 — как 11. (рис. 26, б).
Пр и м е р . Команда означает:
|
|
|
02 |
0146 |
0465 |
2056 |
|
|
|
||
|
«Из числа, |
находящегося |
в |
ячейке |
с адресом |
0146, |
вычесть |
||||
(02 — код операции |
вычитания) |
число, |
находящееся |
в ячейке с а д |
|||||||
ресом 0465, и разность задать в ячейку с адресом 2056. |
Эта коман |
||||||||||
да будет пробита на перфокарте в виде |
|
|
|
|
|
||||||
|
0 |
2 |
|
0 |
|
| |
1 |
4 |
|
| |
6 |
0 |
0 0 0 |
1 |
0 0 |
|
0 0 0 |
1 1- 0 0 |
1 1 0 |
||||
|
код операций |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
адрес |
|
2 адрес |
3 адрес |
203
ah
n 11 22222222222222222*2j:
ЗЭЭЗЗЗЗЗЗЭЗЗЗЭЗЭ313;
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 I 4
BBBBBBBBBB&BBBBB&aBI eeeeeeeeeeeeeeeeeaep
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 * 7
88888886686868868§8
t J |
4 e • 10 1Э 14 14 18 |
9 9 0 9 9 9 9 9 9 9 9 9 9 9 9 9 8 BO
0 ,
j i w 1111111111111 a 111
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9 2 2 2 833333-3 33 3 3 3 3 3 3 3 38 333
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 8 4 4
8 5 в 8 В 6 6 В 6 В б 6 в вВ В В а В 6 6 0 8 8 8 8 6 6 8 8 6 8 8 8 9 6 6 8 6 6 6
77 77 7777777 777777*77717
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 * 8 8 9 i l « « о Ю 19 14 10 18 Ж
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 3 * 9 9 9
1I i 11l l i
22-22<22j222222222
Э 3 3 3 3 3 3 1 3 3 3 3 3 3 3 3 3
4 4 4 4 4 4 И 4 4 4 4 4 4 4 4
S&J6B66|&666666(>6
seeeeejeeeeeeeee
777777777777777
iiiiliiiiiiiu
2 2 * 2 2 2 2 2 2 2 2 22
зззайзззззэззз
4444Ц44444444
IBBBHB566B8B5B
66lBp88668868
77 71717 77 7 7777 7
Г§Ьа380888в _ J n MИ 1» Ю
19*990 999 9 9 3 9 9
Рис. 28
В таком виде команда поступает в запоминающее устройство ма шины и хранится в нем пока не наступит очередь для ее выполнения. На рис. 28 приведены перфокарты с пробитыми на них числами и командами, записанными на бланке рис. 27.
На первой перфокарте пробиты 12 чисел: 5,95; 14,8; 15,2; 11,78; 11,8; 14,88; 14,58; 12,61; 12,8; 12,6; 21,026; 14,2 в двоично-десятичной форме (рис. 28, а). На второй перфокарте пробиты 12 команд адреса ячеек и коды операций пробиваются двоичными числами (рис. 28,6). При чтении чисел и команд, пробитых па перфокарте, следует учесть,
что 23, 28, 33, 38, 43, 48, 53, 58, 63, 68 и 69-й столбцы для пробивки отверстий не используются.
Итак, в запоминающем устройстве машины числа могут хра ниться как в двоично-десятичной форме, так и в двоичной системе счисления. Адреса и коды операции хранятся в виде двоичных чисел.
§5. Принцип работы электронной вычислительной машины
Спомощью вводного устройства и специальной программы числа, введенные в машину, размещаются по ячейкам внутреннего запоми нающего устройства. В устройстве управления машины имеется спе циальный электронный счетчик, в котором ведется счет выполненных
команд. Перед началом работы в нем находится адрес ячейки с командой, которая должна сработать первой. Это устройство назо вем условно САК (счетчик адреса команды). Если рассматриваемая машина является машиной с естественным порядком выполнения ко манд, то все команды должны быть расположены в том же порядке, в котором машина должна их выполнять.
Условно можно представить себе, что любая арифметическая операция выполняется за пять этапов. В машине имеется тактовый ге нератор. Он включает в работу различные устройства машин в зави
симости от того, какой выполняется этап. |
|
находится команда |
||
Предположим, что в ячейке с адресом 1252 |
||||
01 |
2145 |
1011 |
3031 |
|
сложения чисел из ячеек с адресами 2145 |
и 1011 |
и передачи суммы |
в ячейку с адресом 3031. Предположим также, что машина уже вы
полнила команду, |
находящуюся в предыдущей ячейке с адресом 1251. |
|||
Рассмотоим, как выполняется очередная |
команда. |
во |
внутреннее |
|
Пеовый этап. |
Из САК устройства |
управления |
||
запоминающее устройство передается |
адрес ячейки |
с |
очередной |
|
|
— 2 0 5 — |
|
|
|
Числа и команды
Рис. 29. Блок-схема электронной вычислительной машины
командой, т. е. с адресом 1252. На блок-схеме (рис. 29) это изобра жено стрелкой со словами «адрес команды» от устройства управле ния к внутреннему запоминающему устройству.
Блок выборки внутреннего запоминающего устройства находит соответствующую ячейку в этом запоминающем устройстве. Команда,
01 2145 1011 3031
находящаяся в найденной ячейке, передается в специальную ячейку устройства управления. На блок-схеме это изображено стрелкой со словами «команда» от внутреннего запоминающего устройства до устройства управления.
Второй этап. В зависимости от кода операции выбранной команды (01) устройство управления посылает определенные элект рические импульсы в арифметическое устройство, благодаря чему арифметическое устройство настраивается на выполнение определен ной операции, в рассматриваемом примере — на сложение. На блоксхеме это изображено стрелкой со словами «код операции» от «уст ройства управления» до «арифметического устройства».
Третий этап. Первый адрес выбранной команды (2145) переда ется из устройства управления в блок выборки внутреннего запоми нающего устройства. Блок выборки находит в этом запоминающем устройстве соответствующую ячейку, т. е. ячейку с адресом 2145. Число, находящееся в этой ячейке, передается в арифметическое уст ройство. Второй адрес выбранной команды (1011) передается из устройства управления в блок выборки внутреннего запоминающего устройс1ва. Блок выборки находит в этом запоминающем устройстве ячейку с соответствующим, адресом, т. е. с адресом 1011. Число из этой ячейки передается в арифметическое устройство. Переход чисел из внутреннего запоминающего устройства в арифметическое изобра жен на блок-схеме стрелкой со словами «числа и команды».
Следует помнить, что когда число передается на ячейки запоми нающего устройства в другие устройства машины, то оно в ячейке не гасится, поэтому им можно многократно пользоваться.
Четвертый этап. Арифметическое устройство выполняет над по ступившими в него числами ту операцию, на которую оно было на строено во втором этапе. Тактовый генератор посылает в САК управ ляющий импульс, и адрес в этом счетчике увеличивается на единицу, в рассматриваемом примере он станет равным 1253—1252+1.
Пятый этап. Третий адрес выбранной команды (3031) переда ется в блок выборки внутреннего запоминающего устройства. Блок
207 —
выборки находит соответствующую ячейку в этом запоминающем устройстве. Результат, полученный в арифметическом устройстве, за писывается в найденной ячейке — в ячейке с адресом 3031.
После этого первый этап начинается снова, но в САК находится уже адрес ячейки следующей команды. Так последовательно выпол няются все команды.
На блок-схеме видно, что внешнее запоминающее устройство не связано непосредственно с арифметическим устройством. Чтобы вы полнить арифметические операции над числами, хранящимися во внешнем запоминающем устройстве, нужно сначала при помощи спе циальной команды передать эти числа во внутреннее запоминающее устройство.
Чтобы вывести из машины полученные результаты, имеется спе циальная команда. При выполнении этой команды включается печа тающее устройство и требуемые числа отпечатываются на бланках.
Г л а в а II
ПРОГРАММИРОВАНИЕ НА ЭЛЕКТРОННЫХ ВЫЧИСЛИТЕЛЬНЫХ МАШИНАХ
§ 1. Некоторые команды БЭСМ-2
Изучение методов программирования начнем с рассмотрения не которых основных команд, выполняемых ЭВМ БЭСМ-2.
ЭВМ БЭСМ-2 выполняет следующие команды: арифметические, изменения кодов, логические и управления.
Арифметические команды. При выполнении сложения, вычита ния н умножения можно сделать так, чтобы результат был нормали зован или не нормализован. Для этого имеются по две команды сло жения, вычитания и умножения. При нормализации результата циф ры мантиссы сдвигаются влево, а порядок соответственно уменьшает ся, если полученная мантисса меньше (0,1)2- Если мантисса результа та больше (1,0)г, го при нормализации ее цифры сдвигаются вправо, а порядок соответственно увеличивается. Сдвиг производится до тех пор, пока результат не станет либо нормализованным числом, либо его порядок не станет равным — 32.
2 0 в
Пр и м е р .
(0,11010. ..0)г.10ио — (0,1000...0)2-1011О= (0,01010...0)2 ■Ю110.
При нормализации мантисса сдвигается плево на один разряд, а порядок уменьшается на единицу; поэтому эта разность будет за писана в ячейку памяти в виде кода
0 |
00101 |
0 |
1010...0. |
знак |
порядок |
4 |
4 |
знак |
мантисса |
||
порядка |
|
мантиссы |
|
(0,110Ю ...0) •Ю1010 + (0,1000. . ,0).10IWO = (1,01010..
при нормализации мантисса сдвигается впраг.о на один разряд, и порядок увеличивается на единицу, поэтому результат получается в виде кода
0 |
01011 |
0 |
1010100.... |
0. |
С л о ж е н и е . Код операции сложения с нормализацией резуль тата 01. Команда имеет вид
01 |
А |
В |
С |
Выполнение этой команды состоит в алгебраическом сложении чисел, хранящихся в ячейках с адресами А н В, нормализации по лученной суммы и ее записи в ячейку с адресом С.
Код операции сложения без нормализации 41. Команда
41 |
А |
В |
С |
выполняется так же, как 01, но сумма не нормализуется. |
|||
В ы ч и т а н и е. Код |
операции |
вычитания с нормализацией ре |
|
зультата 02. |
|
|
|
02 |
А |
В |
С |
производится алгебраическое вычитание числа, хранящегося в ячей ке В из числа, хранящегося в ячейке А. Результат нормализуется и записывается в ячейку С.
14—440 |
209 |