Лекции по теме: Форматы команд, способы адресации операндов. Теоретический материал: 2 Форматы команд



Скачать 189.2 Kb.
Дата28.01.2018
Размер189.2 Kb.
#11262
ТипЛекции

Группа: 13КСК-1

Дисциплина; МДК 02.01 Микропроцессорные системы

Дата: 05.02.2016

Задание: Самостоятельно в тетради составить конспект лекции по теме: Форматы команд, способы адресации операндов.

Теоретический материал:



4.4.2 Форматы команд

Типовая команда, в общем случае, должна указывать:



  • подлежащую выполнению операцию;

  • адреса исходных данных (операндов), над которыми выполняется операция;

  • адрес, по которому должен быть помещен результат операции.

В соответствии с этим команда состоит из двух частей: 1) операционной, где указывается кода операции (КОП) - комбинация двоичных знаков или ее мнемоническое обозначение, указывающее на определенную операцию, которую должен выполнить МП. (КОП сообщает МП, что делать); 2) адресной - код адреса операнда (КАД) - указывает местоположение данных, участвующих в операции. (Рисунок 19).

\\edis6\share\сутягина\дистанционка\микропроцессоры и микропроцессорные системы\2 лекции\1 архитектура микропроцессорного вычислителя\рисунок 1.6.1.jpg

Рисунок 19 - Структура команды

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

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

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

\\edis6\share\сутягина\дистанционка\микропроцессоры и микропроцессорные системы\2 лекции\1 архитектура микропроцессорного вычислителя\рисунок 1.6.2.jpg

Рисунок 20 - Обобщенный формат команды



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

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

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

\\edis6\share\сутягина\дистанционка\микропроцессоры и микропроцессорные системы\2 лекции\1 архитектура микропроцессорного вычислителя\рисунок 1.6.3.jpg
Рисунок 21 - Четырехадресный формат команды

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



\\edis6\share\сутягина\дистанционка\микропроцессоры и микропроцессорные системы\2 лекции\1 архитектура микропроцессорного вычислителя\рисунок 1.6.5.jpg
Рисунок 23 - Двухадресный формат команды

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



\\edis6\share\сутягина\дистанционка\микропроцессоры и микропроцессорные системы\2 лекции\1 архитектура микропроцессорного вычислителя\рисунок 1.6.6.jpg

Рисунок 24 - Одноадресный формат команды

Так как число регистров в ЦП невелико, для указания одного из них в команде достаточно иметь сравнительно короткое адресное поле. Соответствующий формат носит название полутораадресного или регистрового формата (Рисунок 25).

\\edis6\share\сутягина\дистанционка\микропроцессоры и микропроцессорные системы\2 лекции\1 архитектура микропроцессорного вычислителя\рисунок 1.6.7.jpg

Рисунок 25- Полутораадресный формат команды

Если для обоих операндов указать четко заданное местоположение, а также в случае команд, не требующих операнда, можно получить нулъадресный формат команды (Рисунок 26).

\\edis6\share\сутягина\дистанционка\микропроцессоры и микропроцессорные системы\2 лекции\1 архитектура микропроцессорного вычислителя\рисунок 1.6.8.jpg

Рисунок 26 - Нульадресный формат команды

В таком варианте адресная часть команды вообще отсутствует или не задействуется.

Выбор адресности команд. При выборе количества адресов в адресной части команды обычно руководствуются следующими критериями:

- емкостью запоминающего устройства, требуемой для хранения программы;

- временем выполнения программы;

- эффективностью использования ячеек памяти при хранении программы.



Адресность и время выполнения программы. Время выполнения одной команды складывается из времени выполнения операции и времени обращения к памяти.
4.4.3 Способы адресации операндов

Исполнительным адресом операнда (Аисп) называется двоичный код номера ячейки памяти, служащей источником или приемником операнда. Этот код подается на адресные входы запоминающего устройства (ЗУ), и по нему происходит фактическое обращение к указанной ячейке. Если операнд хранится не в основной памяти, а в регистре процессора, его исполнительным адресом будет номер регистра.

Адресный код команды (Ак) - это двоичный код в адресном поле команды, из которого необходимо сформировать исполнительный адрес операнда.

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

Выбор способов адресации является одним из важнейших вопросов разработки системы команд и всей ВМ в целом.

Непосредственная адресация (НА). При непосредственной адресации в адресном поле команды вместо адреса содержится непосредственно сам операнд (Рисунок 27). Этот способ может применяться при выполнении арифметических операций, операций сравнения, а также для загрузки констант в регистры.

\\edis6\share\сутягина\дистанционка\микропроцессоры и микропроцессорные системы\2 лекции\1 архитектура микропроцессорного вычислителя\рисунок 1.6.9.jpg

Рисунок 27 - Непосредственная адресация



Прямая адресация (ПА). При прямой или абсолютной адресации адресный код прямо указывает номер ячейки памяти, к которой производится обращение (Рисунок 28), то есть адресный код совпадает с исполнительным адресом.\\edis6\share\сутягина\дистанционка\микропроцессоры и микропроцессорные системы\2 лекции\1 архитектура микропроцессорного вычислителя\рисунок 1.6.10.jpg

Рисунок 28 - Прямая адресация


Недостатки: а) ограниченный размер адресного пространства, так как для адресации к памяти большой емкости нужно «длинное» адресное поле; б) адрес, указанный в команде, не может быть изменен в процессе вычислений.

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

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



\\edis6\share\сутягина\дистанционка\микропроцессоры и микропроцессорные системы\2 лекции\1 архитектура микропроцессорного вычислителя\рисунок 1.6.11.jpg

Рисунок 29 - Косвенная адресация


Недостатком косвенной адресации является необходимость в двухкратном обращении к памяти: сначала для извлечения адреса операнда, а затем для обращения к операнду (ТКА = 2t3y). Сверх того задействуется лишняя ячейка памяти для хранения исполнительного адреса операнда.

Регистровая адресация (РА). Регистровая адресация напоминает прямую адресацию. Различие состоит в том, что адресное поле инструкции указывает не на ячейку памяти, а на регистр процессора (Рисунок 30). (Идентификатор регистра в дальнейшем будем обозначать буквой R.) Преимуществами регистровой адресации являются: короткое адресное поле в команде и исключение обращений к памяти.

\\edis6\share\сутягина\дистанционка\микропроцессоры и микропроцессорные системы\2 лекции\1 архитектура микропроцессорного вычислителя\рисунок 1.6.12.jpg

Рисунок 30 - Регистровая адресация

Возможности по использованию регистровой адресации ограничены малым числом РОН в составе процессора.

Косвенная регистровая адресация (КРА). Представляет собой косвенную адресацию, где исполнительный адрес операнда хранится не в ячейке основной памяти, а в регистре процессора. Соответственно, адресное поле команды указывает не на ячейку памяти, а на регистр (Рисунок 31).

\\edis6\share\сутягина\дистанционка\микропроцессоры и микропроцессорные системы\2 лекции\1 архитектура микропроцессорного вычислителя\рисунок 1.6.13.jpg
Рисунок 31 - Косвенная регистровая адресация

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



Адресация со смещением. При адресации со смещением исполнительный адрес формируется в результате суммирования содержимого адресного поля команды с содержимым одного или нескольких регистров процессора (Рисунок 32).

\\edis6\share\сутягина\дистанционка\микропроцессоры и микропроцессорные системы\2 лекции\1 архитектура микропроцессорного вычислителя\рисунок 1.6.14.jpg

Рисунок 32 - Адресация со смещением


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

В наиболее общем случае адресация со смещением подразумевает наличие двух адресных полей: Ак и R.

Основные способы адресации со смещением, каждый из которых, впрочем, имеет собственное название:

1) Относительная адресация (ОА). При относительной адресации для получения исполнительного адреса операнда содержимое подполя Лк команды складывается с содержимым счетчика команд (Рисунок 33). Обычно подполе Ак трактуется как двоичное число в дополнительном коде.

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



\\edis6\share\сутягина\дистанционка\микропроцессоры и микропроцессорные системы\2 лекции\1 архитектура микропроцессорного вычислителя\рисунок 1.6.15.jpg

Рисунок 33 - Относительная адресация


Независимо от текущего расположения программы в адресном пространстве взаимное положение команды и операнда остается неизменным, поэтому адресация операнда остается корректной.

2) Базовая регистровая адресация (БРА). Регистр, называемый базовым, содержит полноразрядный адрес, а подполе Ас - смещение относительно этого адреса. Ссылка на базовый регистр может быть явной или неявной. В некоторых ЭВМ имеется специальный базовый регистр и его использование является неявным, то есть подполе R в команде отсутствует (рисунок 34).

\\edis6\share\сутягина\дистанционка\микропроцессоры и микропроцессорные системы\2 лекции\1 архитектура микропроцессорного вычислителя\рисунок 1.6.16.jpg
Рисунок 34 - Базовая регистровая адресация с базовым регистром

Более типичен случай, когда в роли базового регистра выступает один из регистров общего назначения (РОН), тогда его номер явно указывается в подполе R команды (Рисунок 35).

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

\\edis6\share\сутягина\дистанционка\микропроцессоры и микропроцессорные системы\2 лекции\1 архитектура микропроцессорного вычислителя\рисунок 1.6.17.jpg

Рисунок 35 - Базовая регистровая адресация с использованием одного из РОН



3) Индексная адресация (ИА). При индексной адресации подполе Ас содержит адрес ячейки памяти, а регистр (указанный явно или неявно) - смещение относительно этого адреса. Этот способ адресации похож на базовую регистровую адресацию. Поскольку при индексной адресации в поле Ас находится полноразрядный адрес ячейки памяти, играющий роль базы, длина этого поля больше, чем при базовой регистровой адресации (Рисунок 36, 37).

Рисунок 36 - Индексная адресация с индексным регистром

Рисунок 37 - Индексная адресация с использованием одного из РОН

Индексная адресация предоставляет удобный механизм для организации итеративных вычислений (увеличение на единицу всех элементов массива).

Система команд многих ВМ предоставляет возможность различным образом сочетать базовую и индексную адресации в качестве дополнительных способов адресации.

Страничная адресация (СТА). Страничная адресация предполагает разбиение адресного пространства на страницы. Страница определяется своим начальным адресом, выступающим в качестве базы. Старшая часть этого адреса хранится в специальном регистре - регистре адреса страницы (РАС). В адресном коде команды указывается смещение внутри страницы, рассматриваемое как младшая часть исполнительного адреса. Исполнительный адрес образуется конкатенацией (присоединением) Ас к содержимому РАС, как показано на рисунке 38. На рисунке символ || обозначает операцию конкатенации.

\\edis6\share\сутягина\дистанционка\микропроцессоры и микропроцессорные системы\2 лекции\1 архитектура микропроцессорного вычислителя\рисунок 1.6.20.jpg

Рисунок 38 - Страничная адресация



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

Стековая адресация. Данный вид адресации был рассмотрен при описании общей схемы микропроцессора.

Группа 13КСК1

Дисциплина МДК 02.02 Установка и конфигурирование периферийного оборудования»

Дата 05.02.2016

Задание.

1. Выполнить лабораторную работу на домашнем компьютере.

2. Выполнить отчет в электронном виде с использованием текстового процессора по лабораторной работе №4. В отчете использовать скрины, создаваемые в процессе выполнения.

Тема: Создание образа и быстрое восстановление системы

Цель: научиться создавать образ диска

Если в Windows накопилось большое количество «глюков», простая переустановка системы "поверх" глючной Windows никогда не избавит её от имеющихся проблем. Необходимо и обязательно отформатировать раздел диска, на котором она установлена и переустановить "с нуля".

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

Лучшим вариантом было бы иметь специальный загрузочный диск WindowsXP, на котором имеется программа для создания образов дисков или разделов и их восстановления (например Acronis True Image, на русском языке). Но зачастую на загрузочном диске имеется только OC Windows, поэтому самостоятельно разбить диск на разделы будет невозможно.

Но в этом случае выход из положения всё же есть - использование системного загрузочного диска на основе usb флэш карты памяти. (Подробно её создание описано на странице "Создание системной usb флэшки").

Изготовив загрузочную флэшку, загрузите с неё компьютер, в программе PIE Commander зайдите в папку NGHOST и запустите файл ghost.exe (это программа Norton Ghost, на английском языке, для резервного копирования и создания образов разделов жестких дисков). С помощью этой программы вы за несколько минут создадите образ диска С и в любой момент из этого образа, также за несколько минут восстановите полностью работоспособную систему, какой она была на момент создания образа.

1. Подготовка к созданию образа диска С

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

На одном из дисков создаём новую папку, которую называем "Мои документы". Затем на значке рабочей папки "Мои документы" (он находится на "Рабочем столе" или в "Мой компьютер") щёлкаем правой кнопкой мыши и выбираем пункт "Свойства". На закладке "Папка назначения" нажать кнопку "Переместить" и там указываем вновь созданную папку на другом диске. Компьютер её назначит рабочей системной папкой "Мои документы" и переместит в неё файлы из старой папки.

Файл подкачки можно переместить так: кнопка Пуск/ Панель управления/ Система/ закладка Дополнительно/ в разделе "Быстродействие" нажать кнопку "Параметры". Далее перейти на вкладку "Дополнительно" и в разделе "Виртуальная память" нажать кнопку "Изменить". И уже в этом окне в настройке переместить файл подкачки с диска С на любой другой. После этого необходимо перезагрузить компьютер, чтобы изменения вступили в силу.

2. Создание образа диска С

Запускаем файл ghost.exe, идём по пути Local > Partition > To image. Далее указываем нужный диск - Drive 1, раздел Primary, указываем каталог для сохранения (я выбираю корневой каталог любого из дополнительных разделов (диск D или диск E), пишем имя файла (можно писать имя в формате ггммдд) например 090517.gho после чего нажимаем кнопку Save, указываем степень компрессии - High, и Norton Ghost приступит к созданию образа диска С в указанный вами файл, что займет от 5 до 20 минут, в зависимости от объёма информации на диске.

Рекомендуется создавать такие образы с периодичностью от 1 месяца до 10 дней, а также непосредственно перед тем, как захотите установить новую программу (если она вам не понравится или из-за её установки начнёт глючит компьютер, можно будет за несколько минут "откатить" систему в предыдущее, рабочее состояние).

Внимание: при создании образа нужно быть уверенным, что в системе нет глюков или вирусов. Также нужно позаботиться о том, чтобы различные логины и пароли были скопированы в какой-либо из файлов на других разделах, а не только в рабочих программах на диске С. По мере накопления файлов образов дисков, их можно "скидывать" на компакт-диски (или стирать более старые).

3. Быстрое восстановление системы из образа диска

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

Загрузите компьютер с системной флэшки, запустите Norton Ghost и пройдите по пути Local > Partition > From image. Далее указываем путь к файлу образа и его имя, указываем раздел, который необходимо восстановить (Drive 1, раздел Primary) и Norton Ghost восстановит систему со всеми настройками и программами, которые были в ней на день создания образа диска (если за прошедшее время вы устанавливали какие-либо программы, то они исчезнут). Вам останется только обновить те пароли, которые были изменены за прошедшее время.

Примечание: на этой флешке имеется ещё одна программа для работы с образами дисков - Acronis True Image Home (запускаемый файл ATIS.EXE в папке ACR_TIH). Она на русском языке и имеет более привычный для пользователей Windows интерфейс. Файлы, создаваемые ею, могут иметь меньший объём, чем созданные с помощью Norton Ghost, но на их создание затрачивается в 2-2,5 раза больше времени, в зависимости от производительности системного блока.

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

В этом случае можно использовать системную флэшку. Для этого она должна иметь объём 10Мб., не меньше (а с Dr.web - 32Мб.), но не более 2Гб.

Для создания загрузочной флэшки можно использовать не только флэш диски, но и флэшкарты любых типов, которые подключаются к компьютеру посредством картридера - CF, MMC, SD и т.д., но некоторые флэшки не удаётся сделать загрузочными. Так, в эксперименте с пятью различными флэшкартами:

* MMC, ёмкостью 16 Mb. от фотоаппарата Canon, подключается через картридер

* CF, ёмкостью 16 Mb. от фотоаппарата Canon, подключается через картридер

* Pretec, ёмкостью 124 Mb.

* Prestigio, ёмкостью 256 Mb.

* Prestigio, ёмкостью 512 Mb.

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

Ход работы:

Первый этап создания системной usb флэшки

Системную флэшку создать стандартными средствами Windows нельзя, поэтому понадобится архив usb_and_dos.zip (объём файла 0,52Мб.). Распакуйте его и запустите файл HPUSBFW.EXE (при этом флэшка уже должна быть вставлена в usb разъём).

Вначале в окошке Device указать местоположение флэшкарты (например, "Н"), Файловая система FAT, ставим галочку напротив "Создание загрузочного диска DOS". Указываем путь к распакованным файлам MS-DOS (находится в той же папке где и файл HPUSBFW.EXE) и нажимаем "Старт".

Рисунок 1 – диалоговое окно программы HPUSBFW.EXE

По окончании работы, на флэшке появятся три DOS файла (COMMAND.COM, IO.SYS, MSDOS.SYS)

Теперь вам нужно будет войти в BIOS компьютера и в его настройках внести необходимые изменения, чтобы компьютер начинал загружаться вначале с флэшки, вставленной в разъём USB, потом с CD и уже после этого с жесткого диска. Это делается примерно так:

Перезагрузите компьютер и в BIOS (куда можно войти по нажатии клавиши "Delete" или "F2" в начальный момент включения компьютера) в качестве "First Boot Device" выберите USB-карту. Обычно BIOS не отображает имя флеш-карты USB напрямую, в некоторых случаях помогает выбор опции вроде "USB-HDD" (в AMI BIOS). Или на одной из вкладок в качестве сменного носителя (Removable disk) нужно указать не FDD, а USB. Деактивируйте стартовые опции наподобие "Quick Boot" или "Show Full

Screen Logo", чтобы при загрузке компьютера видеть все сообщения BIOS. "USB Legacy Support" необходимо активировать, кроме того, проверьте, включены ли такие важные функции, как "USB 2.0 Controller". Если возникают другие проблемы, поищите в BIOS функцию, которая продлевает время отклика флеш-карты, например "USB Mass Storage Reset Delay" (в AMI BIOS). Сохраните внесённые изменения.

После произведённых действий вставляем подготовленную ранее флэшку в разъём USB, включаем питание системного блока и ждём результата... В современных компьютерах может оказаться достаточным вызвать "БУТ меню" при включении компьютера и указать в нём нужный привод для загрузки с него. (вызывается нажатием кнопки F8, или F12).

При загрузке компьютера с данной флэшки вы увидите на экране примерно следующее:



Starting... Microsoft(R) Windows Millenium (c) Copyright Microsoft Corp 1981-1999 A:\>_ >

Обратите внимание на букву диска в последней строчке. Если написано A:\> то после выполнения второго этапа системная флэшка сразу заработает как положено. Если написано С:\> то нужно будет внести изменения в двух файлах из скачиваемого в дальнейшем архива.

Скачать 189.2 Kb.

Поделитесь с Вашими друзьями:




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

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