Сергей Алексеевич лебедев



страница12/34
Дата01.08.2016
Размер8.48 Mb.
1   ...   8   9   10   11   12   13   14   15   ...   34
§ 1. Кодирование чисел.

БЭСМ оперирует с числами, представленными не в общепринятой десятичной системе, а в двоичной системе счисления.

В десятичной системе для написания чисел используются 10 цифр; в каждом разряде числа цифра может принимать десять значений: от 0 до 9. Число, пред-ставляемое цифрой некоторого разряда, в десять раз больше числа, представляемого аналогичной цифрой предыдущего (младшего) разряда.

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

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

Двоичная система

О, 1, 10, 11, 100, 101, 110, 111, 1000, 1001 и т. д. Десятичная система

О, 1, 2, 3, 4, 5, 6, 7, 8, 9 и т. д.

В общем виде целое число в двоичной системе может быть записано так:

х = k0 • 20 + k1 • 21 + k2 • 22 + . .. + kn • 2n,

где k0, k1, ...,kn — цифры разрядов, принимающие значения 0 или 1. Такое изобра-жение чисел называется двоичным кодом числа. Расположение разрядов в двоичном



Электронная цифровая вычислительная машина БЭСМ 155

изображении такое же, как и в десятичном: старшие разряды пишутся слева от младших.

Например, число 13, изображенное

двоичным кодом: 1 1 О 1.

Двоичные цифры как множители

при степени двойки: 1 х 23 + 1 х 22 + 0 х 21 + 1 х 2°.

Сумма степеней: 8 + 4 + 0+1 =13.

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

1010

+ 111


10001

Умножение и деление в двоичной системе проще, чем в десятичной системе, так как таблица умножения ограничивается лишь умножением на 0 или 1. Например,

1010 Х 101

1010 0000 1010 110010

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

Отметим здесь же, что исходные данные для расчетов, а также результаты вычислений должны быть представлены, в машине в десятичной системе. Десятич-ные числа кодируются для представления в машине поразрядно — каждая цифра изображается в двоичной системе (так называемая двоично-десятичная система); для каждой десятичной цифры необходимо иметь четыре двоичных разряда. Например, число 978 изобразится так: 1001 0111 1000. Перевод чисел из двоично-десятичной системы счисления в двоичную и наоборот производится на машине по специальным программам.



§ 2. Представление чисел с учетом порядков.

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

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

156

Раздел 2. Научные труды и статьи С. А. Лебедева


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

х = 2РА; А = 0,a1,a2,a3...... .аn,

где целое число р, указывающее положение запятой, — порядок, а правильная дробь А — цифровая часть числа. Если первая цифра величины А равна 1 (1/2 < А < 1), то представление числа х в том случае называется нормализованным.

В результате арифметических действий с нормализованными числами может появиться число в ненормализованной форме, т.е. в виде 2pА1, причем А1 = 0, а1.. .аkаk+1... аn, где а1 = ... = аk = 0 и аk+1 = 1. Тогда машина производит нормализацию числа, т. е. сдвигает разряды А1 на k единиц влево и уменьшает порядок р на k, х = 2р-kА, где А = 0, аk+1ak+2.....an..

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

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

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



Рис. 3. Распределение разрядов кода числа

Числовой код БЭСМ имеет 39 двоичных разрядов. Для цифровой части числа отведено 32 двоичные разряда и для порядков — 5 двоичных разрядов. По одному разряду выделяется для знака числа и для знака порядка (рис. 3). Запятая выбрана перед старшим разрядом цифровой части числа.

Таким образом, диапазон чисел, с которыми может оперировать БЭСМ, лежит в пределах от 2-32 до 2+32 — примерно от 10-9 до 10+9. Каждое число может иметь 32 двоичные цифры — примерно 9 десятичных цифр. (При желании на машине можно производить вычисления с удвоенной значностью чисел за счет снижения скорости вычислений.)



§ 3. Представление отрицательных чисел и отрицательных порядков.

Для учета знака чисел, представляемых в машине, необходимо иметь еще один дополнительный разряд в каждом числе. Пусть цифры 0 и 1 знакового разряда означают соответственно знаки «+» и «—». Тогда изображение положительного числа состоит из цифры 0 (изображение знака «+») и из абсолютной величины этого числа.

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


Электронная цифровая вычислительная машина БЭСМ 157

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


разряде, за которой следуют цифры, отражающие абсолютную величину числа.

Прямой код отрицательного числа

—О,а1 a2 .......an

имеет вид

1,а1 a2 .......an

2. Дополнительный код отрицательного числа состоит из цифры 1 в разряде


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

—О,а1 a2 .......an

имеет вид

1, b1 b2 .......bn

где 0, b1 b2 .......bn = 1 — 0,а1 a2 .......an .

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

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

- О,а1 a2 .......an

в обратном коде будет

1, а'1 a'2 .......a'n

где а'i = 1, если ai = 0, и а'i = 0, если ai = 1.

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

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

Удобно представлять отрицательные числа дополнительным кодом для операций сложения и вычитания. Это обусловлено тем обстоятельством, что сумматор ариф-метического устройства производит лишь операцию сложения. Операция вычитания поэтому производится посредством прибавления дополнительного кода числа. Кроме того, если при операции сложения или вычитания результат получается отрица-тельным, то он будет представлен на сумматоре в виде дополнительного кода. При представлении отрицательных чисел дополнительным кодом отрицательный резуль-тат сложения или вычитания может быть непосредственно передан в запоминающее устройство.

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

Однако более сложные операции — операции умножения и деления — удобнее производить тогда, когда отрицательные числа заданы их прямыми кодами. В этом

158 Раздел 2. Научные труды и статьи С. А. Лебедева

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

Преобразования прямых кодов в дополнительные и обратно при операциях сло-жения и вычитания производить проще, чем аналогичные преобразования при умно-жении и делении. Поэтому для БЭСМ принято представлять цифровые части чисел прямыми кодами.

С порядками чисел производятся лишь операции сложения или вычитания. Поэто-му для БЭСМ отрицательные порядки представляются дополнительными кодами.



§ 4. Условно бесконечно большие числа и нуль.

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

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

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

Возможны два способа восприятия нуля машиной.


  1. Число принимается равным нулю, если его порядок имеет минимальное значе-
    ние, возможное на машине вне зависимости от кода самого числа, т. е. код порядка
    1.00000 (равный —32) показывает, что число равно нулю.

  2. Число принимается равным нулю, если его порядок имеет минимальное значе-
    ние, возможное на машине, и код самого числа равен нулю, т. е. число равно нулю,
    когда код порядка будет 1.00000 и код числа будет 0.000.. .0.

Второй способ расширяет диапазон в сторону низших порядков на 32 разряда. С другой стороны, при наличии наинизшего порядка у числа (код порядка 1.00000) код самого числа в общем случае уже не будет нормализованным. Это усложняет производство арифметических операций, в первую очередь деления, а также схему блокировки. По существу, выигрыш в отношении увеличения диапазона порядков может быть получен и при первом способе индикации нуля путем добавления одного разряда в коде порядка; при этом расширение диапазона происходит на 32 разряда как в сторону низших, так и высших порядков.

Дополнение одного разряда в коде порядка, если это необходимо, лучше, чем производство операций с ненормализованными числами, имеющими наинизший по-рядок, по следующим причинам:



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

  1. операции с малыми числами производятся с полным объемом значащих цифр;

  2. упрощается производство операций и блокировка.

Электронная цифровая вычислительная машина БЭСМ 159

В соответствии с этим выбран первый способ восприятия нуля, т. е. число прини-мается равным нулю, если вне зависимости от кода самого числа его порядок имеет минимальное значение, возможное на машине, т. е. значение 1.00000. В дальнейшем это значение порядка именуется как «код нуля» (или код «0»). Не следует смешивать термин «код нуля», например, с термином «нуль порядка», когда порядок равен нулю (0.00000).

§ 5. Сводка данных по представлению чисел на машине БЭСМ.

1. Числа на машине изображаются:

а) кодом, представляющим цифровую часть числа — 32 разряда;

б) кодом, характеризующим знак числа — один разряд;

в) кодом, представляющим порядок числа — 5 разрядов;

г) кодом, характеризующим знак порядка — один разряд.



  1. Цифровая часть числа представляется прямым кодом, а знак числа характери-
    зуется кодом знака (код знака 0 соответствует «+», код знака 1 соответствует «—»).

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

  3. Положение запятой в цифровой части числа принимается перед высшим раз-
    рядом, т. е. все цифровые части чисел меньше единицы.

  4. Коды чисел, как правило, представляются в нормализованном виде, т. е. первая
    значащая цифра занимает высший разряд (цифровая часть больше или равна 1/2).
    При производстве арифметических действий результат нормализуется.

  5. Предусматривается возможность производства операций с ненормализованны-
    ми числами и исключения нормализации результата.

  6. При получении в результате арифметических действий числа, большего мак-
    симально представимого на машине (231), машина автоматически останавливается
    («аварийный останов»).

  7. При получении числа, меньшего минимально представимого числа на машине
    (2 ), это число принимается за нуль, выражаемый как код порядка 1.00000.

Глава 2. Система команд

§ 1. Операции БЭСМ.

В БЭСМ принята трехадресная система команд (рис.4). Каждый адрес (А1, А2, АЗ) имеет 11 двоичных разрядов, что соответствует емкости оперативного запоминающего устройства в 2047 ячеек (нулевой адрес не используется и при наличии его в адресе команды из оперативного запоминающего устройства поступает машинный нуль).

Для кода операции выделено 6 двоичных разрядов (АОп), что дает возможность иметь до 63 типов команд.



Код AOп Код A1 Код A2 Код A3

Рис. 4. Распределение разрядов кода команды

Из этих 6 разрядов, как правило, непосредственно для кодов команд используется 5 разрядов. Шестой разряд кода операций служит для блокировки нормализации результата в операциях с № 1 по № 16 (см. ниже). В других операциях он используется для получения дополнительных операций или вообще не используется.

160

Раздел 2. Научные труды и статьи С. А. Лебедева


Код операции определяет, какое действие следует произвести. В первом и втором адресах в большинстве команд указываются номера ячеек оперативного запоминаю-щего устройства, в которых хранятся два числа, с которыми производится заданное действие. В третьем адресе задается номер ячейки запоминающего устройства, в ко-торую посылается полученный результат.

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

Операции, предусмотренные в машине, можно разбить на следующие группы.

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

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

Логические операции — сдвиг с блокировкой порядков, сдвиг по всем разрядам, сложение кодов команд, циклическое сложение, выделение целой части, логическое умножение.

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


Операции, принятые на машине БЭСМ

Таблица 1










Электронная цифровая вычислительная машина БЭСМ

161



Продолжение таблицы 1

1

2

3

4

5

6

7

3

0

00011

X

Умножение

Число, номер ячейки которого указан в

240




1






Умножение с

первом адресе команды, умножается на чи-
















блокировкой

сло, номер ячейки которого указан во вто-
















нормализации

ром адресе команды. Результат направляется



















в ячейку запоминающего устройства, номер



















которой указан в третьем адресе команды.



















При умножении порядки чисел складыва-



















ются, а коды чисел умножаются.



















После умножения производится нормали-



















зация результата и его округление. В запо-



















минающее устройство выводятся старшие 32



















разряда произведения.




4

0

00100




Деление

Число, номер ячейки которого указан в

250
















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



















номер ячейки которого указан во втором ад-



















ресе команды.



















Результат направляется в ячейку запоми-



















нающего устройства, номер которой указан в



















третьем адресе команды.



















При делении порядки чисел вычитаются,



















а коды чисел делятся. Результат всегда по-



















лучается нормализованным вне зависимости



















от блокировки нормализации. После деления



















производится округление результата.




5

0

00101



Сложение по-

К порядку числа, номер ячейки которого

65




1







рядков

указан в первом адресе команды, прибавля-













,+п

Сложение по-

ется порядок числа, номер ячейки которого
















рядков с бло-

указан во втором адресе команды. Первое
















кировкой нор-

число с измененным порядком нормализует-
















мализации

ся и направляется в ячейку запоминающего



















устройства, номер которой указан в третьем



















адресе команды.




6

0

00110

-п

Вычитание по-

Из порядка числа, номер ячейки которого

65




1







рядка

указан в первом адресе команды, вычитается













,-п

Вычитание по-

порядок числа, номер ячейки которого ука-
















рядка с блоки-

зан во втором адресе команды. Первое число
















ровкой норма-

с измененным порядком нормализуется и на-
















лизации

правляется в ячейку запоминающего устрой-



















ства, номер которой указан в третьем адресе



















команды.




7

0

00111

ИПА

Изменение по-

К порядку числа, номер ячейки которого

65




1







рядка по адре-

указан в первом адресе команды, прибавля-
















су

ется код второго адреса команды. Первое чи-













,ИПА

Изменение по-

сло с измененным порядком нормализуется и
















рядка по адре-

передается в ячейку запоминающего устрой-
















су с блокиров-

ства, номер которой указан в третьем адресе
















кой нормали-

команды.
















зации



















Умножение

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
















с выводом



















удвоенного ко-



















личества раз-



















рядов







6 С. А. Лебедев

162

Раздел 2. Научные труды и статьи С. А. Лебедева


Продолжение таблицы 1

1

2

3

4

5

6

7

8

0

01000

х(a)

Команда умно-

Первая команда: число, номер ячейки ко-

240




1







жения — а

торого указан в первом адресе команды,













,х(a)

Команда умно-

умножается на число, номер ячейки которого
















жения — б с

указан во втором адресе команды. Произво-
















блокировкой

дится нормализация результата и первые 32
















нормализации

разряда произведения с их порядком направ-



















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



















номер которой указан в третьем адресе ко-



















манды.



















Округление блокируется.




9

0

01001

х(б)

Команда умно-

Вторая команда: последние 32 разряда

65




1







жения — б

произведения с порядком, оставшимся от ко-













,х(б)

Команда умно-

манды х (а), нормализуются и направляют-
















жения — б с

ся в ячейку запоминающего устройства, но-
















блокировкой

мер которой указан в третьем адресе.
















нормализации

Адреса первый и второй в данной коман-
















Деление с вы-

де не используются. Фактический порядок
















водом остатка

результата будет на 32 меньше имеющегося



















порядка. Округление блокируется.



















Операция производится в две команды




10

0

01010

:(а)

Команда деле-

Первая команда: число, номер ячейки ко-

250













ния — а

торого указан в первом адресе команды, де-



















лится на число, номер ячейки которого ука-



















зан во втором адресе команды. Частное на-



















правляется в ячейку запоминающего устрой-



















ства, номер которой указан в третьем адресе



















команды.



















После деления округление частного не



















производится. Результат всегда получается



















нормализованным.




11

0

01011

:(б)

Команда деле-

Вторая команда: остаток, имеющий по-

65













ния — б

рядок и знак делимого, направить в ячейку













,:(б)

Команда деле-

запоминающего устройства, номер которой
















ния — б с бло-

указан в третьем адресе второй команды.
















кировкой нор-

Во втором адресе этой команды указывается
















мализации

номер ячейки запоминающего устройства, в



















которой хранится делимое.



















Если необходимо, то может быть произве-



















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



















используется.




12

0

01100

ПЧ

Передача чис-

Число, номер ячейки которого указан в

65




1







ла нормальная

первом адресе команды, нормализуется и пе-













,пч

Передача чис-

редается в ячейку запоминающего устрой-
















ла нормальная

ства, номер которой указан в третьем адресе
















с блокировкой

команды.
















нормализации

Второй адрес не используется.




12а

1

01100

,пчт

Передача чис-

Число, номер ячейки которого указан в

Время













ла на печать

первом адресе команды, передается на печа-

зависит
















тающее устройство и печатается. Настоящая

от
















команда отличается от предыдущей наличи-

быстро-
















ем кода 1 в 10-м разряде второго адреса и

действия
















обязательной блокировкой нормализации.

печатаю-



















щего



















устрой-



















ства

Электронная цифровая вычислительная машина БЭСМ

163



Продолжение таблицы 1



164

Раздел 2. Научные труды и статьи С. А. Лебедева


Продолжение таблицы 1





















166

Раздел 2. Научные труды и статьи С. А. Лебедева


Продолжение таблицы 1

1

2

3

4

5

6

7

24

0

11000

ПМУК

Передача на местное управ-ление команда-ми без гашения

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

65

25

0

11001

ПЦУК

Передача на центральное управление ко-мандами без гашения

Передается управление командами с мест-ного на центральное. Центральное управле-ние при этом не гасится, и выполняются ко-манды, начиная с номера ячейки, стоящего на центральном управлении.

65

26

0




И МУК

Изменение но-мера коман-ды на местном управлении ко-мандами

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

65

27

0

11011

ИЦУК

Изменение но-мера команды на централь-ном управле-нии команда-ми

Если работа производилась на местном управлении, то она переходит на центральное управление и выполняются команды, начи­ная с номера ячейки, который указан в тре­тьем адресе. Если работа производилась на централь­ном управлении, то она продолжается, но начиная с команды, номер которой указан в третьем адресе. По второму адресу в запоминающее устройство засылается команда, имеющая код операции ИЦУК, а в третьем адресе — увеличенный на единицу номер ячейки теку-щей команды.

65

28

0

11100

Ост Усл

Останов услов-ный

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

65

29

0

11101

Л

Логическое умножение

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

65

30

0

11110







Данный код операции в машине не исполь-зуется

65

31

0

11111

Ост

Останов

Производится останов машины с соответ-ствующей сигнализацией

65

32

0

00000







Данный код операции используется для передачи числа с блокировкой нормализации

65

* ) В случае блокировки нормализации результата перед условным обозначением операции ставит-ся запятая. Характеристика операции дается для случая отсутствия блокировки.

**) В операциях 19 и 21—31 наличие кода 1 в 6-м разряде кода операции на выполнение команды не влияет

* * * ) Обращение к вводному устройству на перфоленте осуществляется таким же образом, как и к магнитной ленте при считывании.


Электронная цифровая вычислительная машина БЭСМ 167




Поделитесь с Вашими друзьями:
1   ...   8   9   10   11   12   13   14   15   ...   34


База данных защищена авторским правом ©uverenniy.ru 2019
обратиться к администрации

    Главная страница