Организация ЭВМ лабораторная работа №3 функциональная модель ЭВМ




Скачать 91.57 Kb.
НазваниеОрганизация ЭВМ лабораторная работа №3 функциональная модель ЭВМ
Дата23.12.2012
Размер91.57 Kb.
ТипЛабораторная работа
Министерство образования РФ


Алтайский государственный технический университет им. И. И. Ползунова


Кафедра прикладной математики


Организация ЭВМ

Лабораторная работа №3


ФУНКЦИОНАЛЬНАЯ МОДЕЛЬ ЭВМ


Вариант 9


Выполнил Гоменюк.Р.В.

Группа ПОВТ – 42

Проверил Боровцов Е.Г.


Барнаул, 2005 г


З А Д А Н И Е


Составить программу для вычисления значения выражения y = a*a/(b-c)+d. Реализовать тремя способами с использованием абсолютной и относительной адресации и также с использованием только регистров и стековой памяти.


Т Е К С Т Ы П Р О Г Р А М М


Абсолютная адресация


1 00 40 IN 0 ; ВВОД А

2 01 18 1d STOR A,A ; СОХРАНИТЬ A

3 03 41 IN 1 ; ВВОД В

4 04 18 1e STOR A,B ; СОХРАНИТЬ B

5 06 42 IN 2 ; ВВОД C

6 07 18 1f STOR A,C ; СОХРАНИТЬ C

7 09 43 IN 3 ; ВВОД D

8 0a 18 20 STOR A,D ; СОХРАНИТЬ D

9 0c 10 1e LOAD A,B ; ЗАГРУЗИТЬ B В rA (rA=B)

10 0e 70 1f SBM A,C ; ВЫЧЕСТЬ ИЗ rA C (rA=B-C)

11 10 18 1e STOR A,B ; СОХРАНИТЬ rA В B (B=B-C)

12 12 11 1d LOAD B,A ; ЗАГРУЗИТЬ А В rB

13 14 88 1d MUM A,A ; УМНОЖИТЬ rB НА А (rB=A*A)

14 16 98 1e DVM A,B ; РАЗДЕЛИТЬ rB НА В (rB=A*A/(B-C))

15 18 59 20 ADM B,D ; ПРИБАВИТЬ D К rB (rB=A*A/(B-C)+D)

16 1a 38 XCHG ; rA<=>rB

17 1b 4c OUT 4 ; ВЫВОД РЕЗУЛЬТАТА

18 1c f8 STOP

19 1d 00 A: .ds 1

20 1e 00 B: .ds 1

21 1f 00 C: .ds 1

22 20 00 D: .ds 1


***** Таблица перекрестных ссылок *****

имя определение ссылки


D 20 19 b

C 1f f 8

B 1e 17 11 d 5

A 1d 15 13 2


**** Не обнаружено ошибок. Успешное завершение ****


Относительная адресация:


1 00 00 .BASE B ; rB - БАЗОВЫЙ

2 00 31 00 START: MVI B,START ; ОТНОСИТЕЛЬНЫЙ АДРЕС В rB

3 02 40 IN 0 ; ВВОД А

4 03 1c 6f STOR A,A ; СОХРАНИТЬ А

5 05 41 IN 1 ; ВВОД В

6 06 1c 70 STOR A,B ; СОХРАНИТЬ В

7 08 42 IN 2 ; ВВОД С

8 09 1c 71 STOR A,C ; СОХРАНИТЬ С

9 0b 43 IN 3 ; ВВОД D

10 0c 1c 72 STOR A,D ; СОХРАНИТЬ D

11 0e 14 70 LOAD A,B ; ЗАГРУЗИТЬ В rА В (rA=B)

12 10 74 71 SBM A,C ; ВЫЧЕСТЬ ИЗ rA C (rA=B-C)

13 12 1c 70 STOR A,B ; СОХРАНИТЬ rA В В (В=В-С)

14 14 14 6f LOAD A,A ; ЗАГРУЗИТЬ В rA А (rA=A)

15 16 21 PUSH B ; СОХРАНИТЬ БАЗОВЫЙ АДРЕС В СТЕКЕ

16 17 15 6f LOAD B,A ; ЗАГРУЗИТЬ А В rB

17 19 80 MUR A,A ; ПЕРЕМНОЖИТЬ rA И rB (rB=A*A)

18 1a 09 MOV A,B ; ПЕРЕСЛАТЬ ИЗ rB D rA (rA=A*A)

19 1b 29 POP B ; ВЫТОЛКНУТЬ ИЗ СТЕКА БАЗОВЫЙ АДРЕС

20 1c 1c 6f STOR A,A ; СОХРАНИТЬ rA В А (А=А*А)

21 1e 21 PUSH B ; СОХРАНИТЬ БАЗОВЫЙ АДРЕС В СТЕКЕ

22 1f 14 70 LOAD A,B ; ЗАГРУЗИТЬ В rA B (rA=B-C)

23 21 20 PUSH A ; СОХРАНИТЬ rA В СТЕКЕ

24 22 15 6f LOAD B,A ; ЗАГРУЗИТЬ В rB A (rB=A*A)

25 24 90 01 MUI A,1 ; РАСПРОСТРАНИТЬ ЗНАК

26 26 9c 81 DVM A,1(sp) ;РАЗДЕЛИТЬ (A*A) на содержимое веpхушки стека (B-C)

27 28 09 MOV A,B ; ПЕРЕСЛАТЬ ЧАСТНОЕ В rA (rA=A*A/(B-C))

28 29 29 POP B ; ВЫТОЛКНУТЬ ИЗ СТЕКА В rB A

29 2a 29 POP B ; ВОССТАНОВИТЬ ИЗ СТЕКА БАЗОВЫЙ АДРЕС

30 2b 5c 72 ADM A,D ; ПРИБАВИТЬ К rA D (rA=A*A/(B-C)+D)

31 2d 4c OUT 4 ; ВЫВОД РЕЗУЛЬТАТА

32 2e f8 STOP

33 2f 00 A: .ds 1

34 30 00 B: .ds 1

35 31 00 C: .ds 1

36 32 00 D: .ds 1


***** Таблица перекрестных ссылок *****

имя определение ссылки


START 0 1

D 32 2c d

C 31 11 a

B 30 20 13 f 7

A 2f 23 1d 18 15 4


**** Не обнаружено ошибок. Успешное завершение ****


Использование только регистров и стековой памяти


1 00 40 IN 0 ; ВВОД A

2 01 0a MOV B,A ; ПЕРЕСЛАТЬ ИЗ rA В rB (rB=rA)

3 02 80 MUR A,A ; ПЕРЕМНОЖИТЬ rB НА rA (rB=A*A)

4 03 21 PUSH B ; СОХРАНИТЬ rB D СТЕКЕ

5 04 41 IN 1 ; ВВОД В

6 05 0a MOV B,A ; ПЕРЕСЛАТЬ ИЗ rA в rB (rB=B)

7 06 42 IN 2 ; ВВОД С

8 07 6a SBR B,A ; ВЫЧЕСТЬ ИЗ rB rA (rB=B-C)

9 08 28 POP A ; ВЫТОЛКНУТЬ ИЗ СТЕКА В rA (rA=A*A)

10 09 21 PUSH B ; СОХРАНИТЬ В СТЕКЕ rB(B-C)

11 0a 0a MOV B,A ; ПЕРЕСЛАТЬ ИЗ rA D rB (rB=A*A)

12 0b 90 01 MUI A,1 ; РАСПРОСТРАНЕНИЕ ЗНАКА

13 0d 9c 81 DVM A,1(sp) ; (rA,rB)/((sp)+1),ЧАСТНОЕ В rB,остаток в rA : (rB=A*A/(B-C))

14 0f 43 IN 3 ; ВВОД D

15 10 51 ADR a,b ; ПРИБАВИТЬ К rA rB

16 11 4c OUT 4 ; ВЫВОД РЕЗУЛЬТАТА

17 12 f8 STOP ;


***** Таблица перекрестных ссылок *****

имя определение ссылки


**** Не обнаружено ошибок. Успешное завершение ****


Т Е С Т Ы


А = 2, В = 3, С = 1, D = 6 Вывод: 8

А = 1, В = 1, С = 2, D = 1 Вывод: 0

А = 2, В = 1, С = 2, D = 1 Вывод: -3


З А Д А Н И Е


Написать программу в мнемокодах для вычисления значения выражения

/ (A*B)/(C*D), если C<>0 и D<>0

Y = {

\ А*B, если C = 0 или D = 0

Результат вывести в канал вывода.


Т Е К С Т П Р О Г Р А М М Ы


1 00 40 IN 0 ; ВВОД А

2 01 0a MOV B,A ; ПЕРЕСЛАТЬ ИЗ rA B rB (rB=A)

3 02 41 IN 1 ; ВВОД В

4 03 80 MUR A,A ; ПЕРЕМНОЖИТЬ rB И rA (rB=A*B)

5 04 19 1a STOR B,AB ; СОХРАНИТЬ rB В АВ (АВ=А*В)

6 06 42 IN 2 ; ВВОД С

7 07 0a MOV B,A ; ПЕРЕСЛАТЬ ИЗ rA B rB (rB=С)

8 08 43 IN 3 ; ВВОД D

9 09 80 MUR a,a ; ПЕРЕМНОЖИТЬ rB И rA (rB=C*D)

10 0a 19 1b STOR b,CD ; СОХРАНИТЬ rB В CD (CD=C*D)

11 0c 10 1a LOAD a,AB ; ЗАГРУЗИТЬ В rA AB (rA=A*B)

12 0e b1 00 CMI b,0 ; СРАВНИТЬ rB C 0 (C*D=0 ?)

13 10 ba 18 JZ OUTPUT ; ЕСЛИ rB=0, ТО ПЕРЕХОДИМ К OUTPUT (C*D=0)

14 12 0a MOV B,A ; (С*D<>0), ПЕРЕСЛАТЬ ИЗ rA B rB (rB=A*B)

15 13 90 01 MUI A,1 ; РАСПРОСТРАНИТЬ ЗНАК

16 15 98 1b DVM A,CD ; ПОДЕЛИТЬ (rA,rB) НА CD (rB=(A*B)/(C*D))

17 17 09 MOV A,B ; ПЕРЕСЛАТЬ ИЗ rB в rA

18 18 4c OUTPUT: OUT 4 ; ВЫВОД РЕЗУЛЬТАТА

19 19 f8 STOP

20 1a 00 AB: .ds 1

21 1b 00 CD: .ds 1


***** Таблица перекрестных ссылок *****

имя определение ссылки


OUTPUT 18 11

CD 1b 16 b

AB 1a d 5


**** Не обнаружено ошибок. Успешное завершение ****


Т Е С Т Ы


А = 0 В = 1 С = 0 D=1 Вывод: 0

А = 3 В = 4 С = 2 D=2 Вывод: 3

А = -3 В =6 С = 2 D=3 Вывод: -3


З А Д А Н И Е


Написать программу в мнемокодах для вычисления суммы (B + i)I, где i изменяется от 1 до N. Результат вывести в канал вывода. Использовать любые две схемы цикла: цикл с предусловием, цикл с постусловием, цикл со счетчиком.


Т Е К С Т П Р О Г Р А М М Ы


1 00 40 IN 0 ; ВВОД В

2 01 18 2e STOR A,B ; СОХРАНИТЬ B

3 03 41 IN 1 ; ВВОД N

4 04 18 2f STOR A,N ; СОХРАНИТЬ N

5 06 30 01 MVI A,1 ; ЗАГРУЗИТЬ 1 В rA

6 08 11 2f CYCL1: LOAD B,N ; ЗАГРУЗИТЬ В rB N (rB=N)

7 0a a9 CMR A,B ; СРАВНИТЬ rA И rB (I<=N ?)

8 0b bb 2a JP EXIT ; ПЕРЕХОД К EXIT ПРИ I>N

9 0d 11 2e LOAD B,B ; ЗАГРУЗИТЬ В rB В (rB=B)

10 0f 52 ADR B,A ; ПРИБАВИТЬ К rB rA (rB=B + I)

11 10 21 PUSH B ; СОХРАНЕНИТЬ rB (B+I) В СТЕКЕ

12 11 20 PUSH A ; СОХРАНЕНИЯ ЗНАЧЕНИЯ rA(I) В СТЕКЕ

13 12 31 01 MVI B,1 ; ЗАГРУЗИТЬ 1 -> rB

14 14 60 01 ADI A,1 ; ПРИБАВИТЬ К rA 1

15 16 78 01 SBI A,1 ; ОТНЯТЬ 1 ОТ rA ДЛЯ УСТАНОВЛЕНИЯ РЕГ.ПРИЗНАКОВ

16 18 ba 20 CYCL2: JZ NEG ; ПЕРЕХОД К NEG ПРИ I = 0

17 1a 20 PUSH A ; СОХРАНЕНИЕ ТЕКУЩЕГО ЗНАЧЕНИЯ СЧЕТЧИКА

18 1b 8c 83 MUM A,3(SP) ; УМНОЖИТЬ rB НА (B+I)

19 1d 28 POP A ; ВОССТАНОВЛЕНИЕ ЗНАЧЕНИЯ СЧЕТЧИКА

20 1e e0 18 LOOP A,CYCL2; ЦИКЛ СО СЧЕТЧИКОМ В РЕГИСТРЕ А

21 20 59 30 NEG: ADM B,Y ;ДОБАВЛЕНИЕ ОЧЕРЕДНОГО СЛАГАЕМОГО К ОБЩУЙ СУММЕ

22 22 19 30 STOR B,Y ; СОХРАНИТЬ Y

23 24 28 POP A ; ВОССТАНОВЛЕНИЕ ЗНАЧЕНИЯ I

24 25 60 01 ADI A,1 ; rA + 1 (I = I + 1)

25 27 29 POP B ; ВЫТАЛКИВАНИЕ B+I

26 28 b8 08 JMP CYCL1 ; ПЕРЕХОД К CYCL1

27 2a 10 30 EXIT: LOAD A,Y ; ЗАГРУЗИТЬ Y В rA

28 2c 4a OUT 2 ; ВЫВОД РЕЗУЛЬТАТА

29 2d f8 STOP

30 2e 00 B: .DS 1

31 2f 00 N: .DS 1

32 30 00 Y: .DB 0 ; ОБЩАЯ СУММА


***** Таблица перекрестных ссылок *****

имя определение ссылки


Y 30 2b 23 21

NEG 20 19

N 2f 9 5

EXIT 2a c

CYCL2 18 1f

CYCL1 8 29

B 2e e 2


**** Не обнаружено ошибок. Успешное завершение ****


Т Е С Т Ы


В = 1 N = 2 Вывод: 11

В = 3 N = 2 Вывод: 29

В = 5 N = 0 Вывод: 0


Т Е К С Т Ы П Р О Г Р А М М


1 00 40 IN 0 ; ВВОД В

2 01 18 32 STOR A,B ; СОХРАНИТЬ В

3 03 41 IN 1 ; ВВОД N

4 04 b0 00 CMI A,0 ; СРАВНИТЬ N C 0

5 06 ba 2e JZ EXIT ; ПЕРЕХОД К EXIT ПРИ N=0

6 08 18 33 STOR A,N ; СОХРАНИТЬ N

7 0a 30 01 MVI A,1 ; ЗАГРУЗИТЬ 1 В rА (rA=1=I)

8 0c 11 32 CYCL1: LOAD B,B ; ЗАГРУЗИТЬ B В rB (rB=B)

9 0e 52 ADR B,A ; ПРИБАВИТЬ К rB rA (rB=B + I)

10 0f 21 PUSH B ; СОХРАНЕНИЯ ЗНАЧЕНИЯ B+I В СТЕКЕ

11 10 20 PUSH A ; СОХРАНЕНИЯ ЗНАЧЕНИЯ I В СТЕКЕ

12 11 31 01 MVI B,1 ; ЗАГРУЗИТЬ 1 В rB (rB=1)

13 13 60 01 ADI A,1 ; ПРИБАВИТЬ К rA 1

14 15 78 01 SBI A,1 ; ОТНЯТЬ 1 ОТ rA ДЛЯ УСТАНОВЛЕНИЯ РЕГ.ПРИЗНАКОВ

15 17 ba 1f CYCL2: JZ NEG ; ПЕРЕХОД К NEG ПРИ I = 0

16 19 20 PUSH A ; СОХРАНЕНИЕ ТЕКУЩЕГО ЗНАЧЕНИЯ СЧЕТЧИКА

17 1a 8c 83 MUM A,3(SP) ; УМНОЖИТЬ rB НА (B+I) (rB=rB*(B+I))

18 1c 28 POP A ; ВОССТАНОВЛЕНИЕ ЗНАЧЕНИЯ СЧЕТЧИКА

19 1d e0 17 LOOP A,CYCL2; ЦИКЛ СО СЧЕТЧИКОМ В РЕГИСТРЕ А

20 1f 59 34 NEG: ADM B,Y ; ДОБАВЛЕНИЕ ОЧЕРЕДНОГО СЛАГАЕМОГО К ОБЩЕЙ СУММЕ

21 21 19 34 STOR B,Y ; СОХРАНИТЬ Y

22 23 28 POP A ; ВОССТАНОВЛЕНИЕ ЗНАЧЕНИЯ I

23 24 60 01 ADI A,1 ; ПРИБАВИТЬ К rA 1 (I = I + 1)

24 26 29 POP B ; ВЫТАЛКИВАНИЕ B+I

25 27 11 33 LOAD B,N ; ЗАГРУЗИТЬ N В rB

26 29 a9 CMR A,B ; СРАВНИТЬ rA И rB (I<=N?)

27 2a bb 2e JP EXIT ; ПЕРЕХОД К EXIT ПРИ I>N

28 2c b8 0c JMP CYCL1 ; ЗАМЫКАНИЕ ЦИКЛА

29 2e 10 34 EXIT: LOAD A,Y ; ЗАГРУЗИТЬ Y В rA

30 30 4a OUT 2 ; ВЫВОД РЕЗУЛЬТАТА

31 31 f8 STOP ;

32 32 00 B: .DS 1

33 33 00 N: .DS 1

34 34 00 Y: .DB 0 ; ОБЩАЯ СУММА


***** Таблица перекрестных ссылок *****

имя определение ссылки


Y 34 2f 22 20

NEG 1f 18

N 33 28 9

EXIT 2e 2b 7

CYCL2 17 1e

CYCL1 c 2d

B 32 d 2


**** Не обнаружено ошибок. Успешное завершение ****


1 00 40 IN 0 ; ВВОД В

2 01 18 29 STOR A,B ; СОХРАНИТЬ B

3 03 41 IN 1 ; ВВОД N

4 04 b0 00 CMI A,0 ; СРАВНИТЬ N С 0

5 06 ba 25 JZ EXIT ; ПЕРЕХОД К EXIT ПРИ N=0

6 08 18 2a STOR A,N ; СОХРАНИТЬ N

7 0a 11 29 CYCL1: LOAD B,B ; ЗАГРУЗИТЬ B В rB (rB=B)

8 0c 52 ADR B,A ; ПРИБАВИТЬ К rB rA (rB=B + I)

9 0d 21 PUSH B ; СОХРАНЕНИЯ ЗНАЧЕНИЯ (B+I) В СТЕКЕ

10 0e 20 PUSH A ; СОХРАНЕНИЯ ЗНАЧЕНИЯ I В СТЕКЕ

11 0f 31 01 MVI B,1 ; ЗАГРУЗИТЬ 1 В rB (rB=1)

12 11 60 01 ADI A,1 ; ПРИБАВИТЬ К rA 1

13 13 78 01 SBI A,1 ; ОТНЯТЬ 1 ОТ rA ДЛЯ УСТАНОВЛЕНИЯ РЕГ.ПРИЗНАКОВ

14 15 ba 1d CYCL2: JZ NEG ; ПЕРЕХОД К NEG ПРИ I = 0

15 17 20 PUSH A ; СОХРАНЕНИЕ ТЕКУЩЕГО ЗНАЧЕНИЯ СЧЕТЧИКА

16 18 8c 83 MUM A,3(SP) ; УМНОЖИТЬ rB НА (B+I) (rB=rB*(B+I))

17 1a 28 POP A ; ВОССТАНОВЛЕНИЕ ЗНАЧЕНИЯ СЧЕТЧИКА

18 1b e0 15 LOOP A,CYCL2; ЦИКЛ СО СЧЕТЧИКОМ B РЕГИСТРЕ А

19 1d 59 2b NEG: ADM B,Y ;ДОБАВЛЕНИЕ ОЧЕРЕДНОГО СЛАГАЕМОГО К ОБЩЕЙ СУММЕ

20 1f 19 2b STOR B,Y ; СОХРАНИТЬ Y

21 21 28 POP A ; ВОССТАНОВЛЕНИЕ ЗНАЧЕНИЯ I

22 22 29 POP B ; ВЫТАЛКИВАНИЕ (B+I)

23 23 e0 0a LOOP A,CYCL1 ; ЗАМЫКАНИЕ ЦИКЛА

24 25 10 2b EXIT: LOAD A,Y ; ЗАГРУЗИТЬ Y В rA

25 27 4a OUT 2 ; ВЫВОД РЕЗУЛЬТАТ

26 28 f8 STOP ;

27 29 00 B: .DS 1

28 2a 00 N: .DS 1

29 2b 00 Y: .DB 0 ; ОБЩАЯ СУММА


***** Таблица перекрестных ссылок *****

имя определение ссылки


Y 2b 26 20 1e

NEG 1d 16

N 2a 9

EXIT 25 7

CYCL2 15 1c

CYCL1 a 24

B 29 b 2


**** Не обнаружено ошибок. Успешное завершение ****

Похожие:

Организация ЭВМ лабораторная работа №3 функциональная модель ЭВМ iconОрганизация ЭВМ лабораторная работа №7 Вариант 9 одель ЭВМ
Написать программу в среде отладчика debug для вычисления значения выражения a*а/(b c) + d
Организация ЭВМ лабораторная работа №3 функциональная модель ЭВМ icon«Сети ЭВМ и средства коммуникаций»
На тему: 3 Основные виды архитектур эвм, микро-эвм и пк. Эвм и мультимедиа. 4 Состав устройств, структура и порядок функционирования...
Организация ЭВМ лабораторная работа №3 функциональная модель ЭВМ iconКонтрольная работа №2 Задание Для выданного задания (пример системы массового обслуживания): определить целевую функцию модели системы, построить концептуальную модель системы
Эвм оно с вероятностью P12 = 0,3 поступает в очередь ко второй ЭВМ и с вероятностью P13 = 0,7 – в очередь к третьей ЭВМ. После обработки...
Организация ЭВМ лабораторная работа №3 функциональная модель ЭВМ iconРабочая программа по курсу: "Структурная и функциональная организация эвм"
Основная цель курса изучение принципов построения узлов и блоков эвм, принципов проектирования вычислительных устройств и мик­ропроцессорных...
Организация ЭВМ лабораторная работа №3 функциональная модель ЭВМ iconОтчет по дисциплине “Организация эвм” Лабораторная работа “Принципы Фон Неймана и логическая схема функционирования эвм”
Заданное арифметическое выражение разложить на уровень элементарных операций; каждой элементарной операции поставить в соответствие...
Организация ЭВМ лабораторная работа №3 функциональная модель ЭВМ iconКонтрольная работа №1 Задание Для выданного задания (пример системы массового обслуживания): сформулировать цель и постановку задачи машинного моделирования системы
Эвм оно с вероятностью P12 = 0,3 поступает в очередь ко второй ЭВМ и с вероятностью P13 = 0,7 – в очередь к третьей ЭВМ. После обработки...
Организация ЭВМ лабораторная работа №3 функциональная модель ЭВМ iconКонтрольная работа №3 Задание Для выданного задания (пример системы массового обслуживания): построить логическую схему модели, написать математические соотношения модели
Эвм оно с вероятностью P12 = 0,3 поступает в очередь ко второй ЭВМ и с вероятностью P13 = 0,7 – в очередь к третьей ЭВМ. После обработки...
Организация ЭВМ лабораторная работа №3 функциональная модель ЭВМ icon1. Структура ЭВМ. Основные характеристики устройств ЭВМ
Функциональная и структурная организция вм базируется на определенных принципах,состовляющих методоогическую основу цифровой вычислительной...
Организация ЭВМ лабораторная работа №3 функциональная модель ЭВМ iconРабочая программа дисциплины «Архитектура ЭВМ и систем» (наименование дисциплины) для специальности
Целью изучения дисциплины является приобретение студентами знаний о принципах построения современных эвм, комплексов и систем; основ...
Организация ЭВМ лабораторная работа №3 функциональная модель ЭВМ iconА. Д. Чередов организация ЭВМ и систем
Организация ЭВМ и систем: учебное пособие / А. Д. Чередов; Томский политехнический университет. – 3-е изд., перераб и доп. – Томск:...
Разместите кнопку на своём сайте:
Библиотека


База данных защищена авторским правом ©lib.znate.ru 2014
обратиться к администрации
Библиотека
Главная страница