как записать программу в машинных кодах в память модели эвм
Лабораторная работа № 2. Программирование разветвляющегося процесса
Контрольные вопросы
Содержание отчета
Задание 1
Пример 1
Общие положения
Лабораторная работа № 1. Архитектура ЭВМ и система команд
Для решения с помощью ЭВМ некоторой задачи должна быть разработана программа. Программа на языке ЭВМ представляет собой последовательность команд. Код каждой команды определяет выполняемую операцию, тип адресации и адрес. Выполнение программы, записанной в памяти ЭВМ, осуществляется последовательно по командам в порядке возрастания адресов команд или в порядке, определяемом командами передачи управления.
Для того чтобы получить результат выполнения программы, пользователь должен:
□ ввести программу в память ЭВМ;
□ определить, если это необходимо, содержимое ячеек ОЗУ и РОН, содержащих исходные данные, а также регистров IR и BR;
□ установить в PC стартовый адрес программы;
□ перевести модель в режим Работа.
Каждое из этих действий выполняется посредством интерфейса модели, описанного в главе 8. Ввод программы может осуществляться как в машинных кодах непосредственно в память модели, так и в мнемокодах в окно Текст программы с последующим ассемблированием.
Цель настоящей лабораторной работы — знакомство с интерфейсом модели ЭВМ, методами ввода и отладки программы, действиями основных классов команд и способов адресации. Для этого необходимо ввести в память ЭВМ и выполнить в режиме Шаг некоторую последовательность команд (определенную вариантом задания) и зафиксировать все изменения на уровне программно-доступных объектов ЭВМ, происходящие при выполнении этих команд.
Команды в память учебной ЭВМ вводятся в виде шестиразрядных десятичных чисел (см. форматы команд на рис. 8.3, коды команд и способов адресации в табл. 8.2 — 8.4).
В настоящей лабораторной работе будем программировать ЭВМ в машинных кодах.
Дана последовательность мнемокодов, которую необходимо преобразовать в машинные коды, занести в ОЗУ ЭВМ, выполнить в режиме Шаг и зафиксировать изменение состояний программно-доступных объектов ЭВМ (табл. 9.1).
Таблица 9.1. Команды и коды
Последовательность | Значения | ||||
Команды | RD#20 | WR30 | ADD #5 | WR03O | JNZ 002 |
Коды | 21 1 020 | 22 0 030 | 23 1005 |
Введем полученные коды последовательно в ячейки ОЗУ, начиная с адреса 000. Выполняя команды в режиме Шаг, будем фиксировать изменения программно-доступных объектов (в данном случае это Асе, PC и ячейки ОЗУ 020 и 030) в табл. 9.2.
Таблица 9.2. Содержимое регистров
PC | Acc | М(30)■.. | М(20) | PC | Acc | М(30) | N1(20) |
1. Ознакомиться с архитектурой ЭВМ (см. часть I).
2. Записать в ОЗУ «программу», состоящую из пяти команд — варианты задания выбрать из табл. 9.3. Команды разместить в последовательных ячейках памяти.
3. При необходимости установить начальное значение в устройство ввода IR.
4. Определить те программно-доступные объекты ЭВМ, которые будут изменяться при выполнении этих команд.
5. Выполнить в режиме Шаг введенную последовательность команд, фиксируя изменения значений объектов, определенных в п. 4, в таблице (см. форму табл. 9.2).
6. Если в программе образуется цикл, необходимо просмотреть не более двух повторений каждой команды, входящей в тело цикла.
Таблица 9.3. Варианты задания 1
№ | IR | Команда 1 | Команда 2 | Команда 3 | Команда 4 | Команда 5 |
IN | MUL #2 | WR10 | WR 010 | JNS 001 | ||
X | RD #17 | SUB #9 | WR16 | WR 016 | JNS 001 | |
IN | ADD #16 | WR8 | WR08 | JS 001 | ||
X | RD #2 | MUL #6 | WR 11 | WR 811 | JNZ 00 | |
IN | WR8 | DIV #4 | WR 08 | JMP 002 | ||
X | RD #4 | WR 11 | RD 811 | ADD #330 | JS 000 |
Таблица 9.3 (окончание)
№ | IR | Команда 1 | Команда 2 | Команда 3 | Команда 4 | Команда 5 1 |
IN | WR9 | RD 09 | SUB#1 | JS 001 | ||
X | RD 4 | SUB #8 | WR8 | WR 08 | JNZ 001 | |
IN | ADD #12 | WR 10 | WR 010 | JS 004 | ||
X | RD 4 | ADD #15 | WR 13 | WR 013 | JMP 001 | |
IN | SUB #308 | WR11 | WR @11 | JMP 001 | ||
X | RD #988 | ADD #19 | WR9 | WR 09 | JNZ 001 | |
IN | WR11 | ADD 11 | WR 011 | JMP 002 | ||
X | RD #5 | MUL #9 | WR10 | WR 010 | JNZ 001. |
1. Формулировка варианта задания.
2. Машинные коды команд, соответствующих варианту задания.
3. Результаты выполнения последовательности команд в форме табл. 9.2.
1. Из каких основных частей состоит ЭВМ и какие из них представлены в модели?
2. Что такое система команд ЭВМ?
3. Какие классы команд представлены в модели?
4. Какие действия выполняют команды передачи управления?
5. Какие способы адресации использованы в модели ЭВМ? В чем отличие между ними?
6. Какие ограничения накладываются на способ представления данных в модели ЭВМ?
7. Какие режимы работы предусмотрены в модели и в чем отличие между ними?
8. Как записать программу в машинных кодах в память модели ЭВМ?
9. Как просмотреть содержимое регистров процессора и изменить содержимое некоторых регистров?
10. Как просмотреть и, при необходимости, отредактировать содержимое ячейки памяти?
11. Как запустить выполнение программы в режиме приостановки работы после выполнения каждой команды?
12. Какие способы адресации операндов применяются в командах ЭВМ?
13. Какие команды относятся к классу передачи управления?
Для реализации алгоритмов, пути в которых зависят от исходных данных, используют команды условной передачи управления.
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
Как записать программу в машинных кодах в память модели эвм
Интерпретатор переводит Вашу программу с языка высокого уровня (например, БЕЙСИКа) в машинный код последовательно строку за строкой. Он работает примерно так: прочитал строку, проверил, нет ли в ней ошибок, перевел ее в машинный код, выполнил команды машинного кода, запомнил, где нужно результат и перешел к следующей строке. Чтобы сделать, например, операцию
интерпретатор обращается к процессору несколько сот раз. Вам этого не видно, все равно результат появится на экране через доли секунды, но это так.
Если же Вам позже придется вернуться к этой строке (например, с помощью GO TO 10), то все эти действия будут повторены.
А ведь многие операции выполняются в циклах.
Таким образом, интерпретатор работает крайне медленно. Зато имеется возможность работы в диалоговом режиме. Так, на Бейсике, когда Вы набираете программу, каждая строка сразу же и проверяется на правильность синтаксиса и, если Вы сделаете ошибку, то строка не будет введена в программу нажатием клавиши ENTER до тех пор, пока Вы эту ошибку не устраните. Вы всегда можете прервать работу программы, внести изменения и стартовать опять, причем с той строки, с какой хотите. Работать с интерпретатором БЕЙСИКа настолько удобно для начинающих, что на многих моделях персональных ЭВМ, в том числе и на «ZX-Spectrum`е», он уже «зашит» в постоянное запоминающее устройство (ПЗУ) и служит не только языком программирования, но и выполняет функции операционной системы компьютера. При включении компьютера в сеть он сразу готов к выполнению команд БЕЙСИКа.
В отличие от интерпретатора, компилятор переводит Вашу программу с языка высокого уровня (например, Паскаля или Фортрана) в машинные коды всю целиком. После того, как программа написана, она компилируется в машинный код. Программа, написанная Вами на языке, называется исходным текстом (исходным модулем, исходным блоком, исходным файлом). То, что Вы получаете в результате компиляции, называется объектным кодом (модулем). Вы можете выгрузить объектный код на ленту, а потом снова загрузить. Можете запустить его на исполнение, но здесь у Вас уже нет возможности во время работы программы ее остановить, внести изменения и снова запустить с произвольно взятого места. Если такая необходимость возникает, надо заново загрузить исходный текст программы, внести изменения, а потом опять откомпилировать его в машинный код.
Поскольку здесь компиляция выполняется для каждой строки только один раз, а потом полученный машинный код можно использовать хоть всю жизнь, то здесь скорость работы программы гораздо выше и лишь немного уступает скорости программ, сразу написанных на Ассемблере. Те все же быстрее, т.к. как бы хорош компилятор ни был, он все же не в состоянии сделать объектный код оптимальным по быстродействию и по объему занимаемой памяти.
Итак, программирование в машинном коде (на Ассемблере) позволяет повысить скорость работы программы по сравнению с работой через интерпретатор в 50…200 раз и в 1,5…3 раза по сравнению с кодом, прошедшим компиляцию. Это бывает чрезвычайно важно, если в программе есть многочисленные вложенные друг в друга циклы, если многократно выполняются поиск и выбор данных из обширных областей памяти. Много времени занимают операции, связанные с обработкой графических изображений на экране. Эффект плавного и быстрого перемещения (и изменения формы) объектов в компьютерных видеоиграх практически всегда создается программированием в машинном коде.
Сравним расход памяти при работе на БЕЙСИКе и в машинных кодах. Программа на БЕЙСИКе размером в 30 строк занимает примерно 1К памяти.
Аналогичная ей, выполняющая те же задачи, программа в машинных кодах будет иметь примерно 150 строк (команд), но занимают они всего 200…250 байтов оперативной памяти.
В нашей стране есть еще две объективные причины, вызывающие повышенный интерес к программированию в машинных кодах.
Дело в том, что наибольшее число пользователей этого класса компьютеров у нас составляют радиолюбители и специалисты по электронике, самостоятельно собравшие компьютер. Обычно они не останавливаются на достигнутом результате. А развивают свое хобби дальше, ищут пути усовершенствования машины, пути подключения дополнительных устройств: интерфейсов принтера, дисковода, джойстика, светового пера, программатора, контроллеров бытовой аппаратуры, бытовых систем, систем управления различными моделями и т.д. Вплоть до систем управления технологическими процессами промышленных предприятий. В конце 80-х годов в Душанбе на базе этого компьютера была сделана система голосования республиканского парламента. Работают под управлением «Спектрума» и очень интересные системы управления сельскохозяйственными предприятиями (фермами и птицефермами). Интересны автоматизированные системы диагностирования автомобиля, системы контроля состояния спортсменов и многое другое. Поскольку процедуры, управляющие работой всех этих устройств (их называют драйверами), обычно пишутся в машинных кодах, то их надо знать и уметь с ними работать.
Другая особенность состоит в том, что основная масса программ для Синклер-компьютеров написана в Англии на английском языке. Желание адаптировать эти программы на русский язык во многих случаях упирается в необходимость понимания структуры программы, а большинство лучших программ написано именно в машинных кодах.
«ИНФОРКОМ» получает множество писем с вопросами по поводу переделки системы загрузки фирменных программ. Мы так понимаем, что многие уже обзавелись дисководом с Бета-диск интерфейсом, и теперь перед ними стоит задача переписывания программ на диск. При этом пользоваться «магической кнопкой» они не хотят, т.к. при этом любая, даже самая короткая программа будет занимать на диске 48К, а хотят ее переписать на диск блок за блоком и сопроводить загрузчиком с диска. На все эти вопросы ответ может быть только один. Поскольку разные фирмы в своих программах применяют разные системы загрузки, универсального решения здесь не существует. К каждой программе нужен индивидуальный подход. Надо прочитать загрузчик программы, понять куда какой блок загружается и в каком порядке они стартуют, а затем, если надо, внести в него свои изменения. Поскольку лучшие программы имеют при себе загрузчик в машинных кодах (обычно он следует после БЕЙСИК-загрузчика или организован внутри него в строке после оператора REM), то умение работать с машинным кодом Вам пригодится и здесь. Вот в основном те причины, которые могут побудить Вас к освоению программирования в машинных кодах или хотя бы их пониманию (что достигается гораздо быстрее, чем способность активного программирования, но имеет не меньше значения), хотя хотелось бы отметить еще два важных, на наш взгляд, обстоятельства.
Во-первых, «Спектрум» имеет ПЗУ объемом 16К. Эта память буквально насыщена множеством очень полезных системных процедур. Все они записаны в машинных кодах. Их можно смело применять в собственных программах, обращаясь к ним по мере необходимости. Это дает колоссальный выигрыш в расходе памяти и вообще очень упрощает программирование. Поскольку все содержимое ПЗУ записано в машинном коде, умение разбираться в нем является необходимым. Для использования системных программ, содержащихся в ПЗУ, Вам необходимо ознакомиться с основами программирования в машинных кодах.
Что же касается особой трудоемкости работ по программированию в машинных кодах, то и здесь есть ряд возражений.
· Нет необходимости сразу программировать. На первом этапе Вы уже сможете многого достичь, если будете просто разбираться в программах, а дальше все придет с набором опыта.
· Существуют ассемблирующие программы, которые имеют достаточный набор средств, чтобы освободить Вас от самой рутинной работы и снизить трудоемкость программирования.
· Как правило, нет никакой необходимости всю программу писать в машинных кодах. Всегда в ней можно выделить блок, который решающим образом влияет на быстродействие. Он может быть очень маленьким по размеру. Вот его-то и надо записать в машинных кодах, а остальную часть программы оставить, например, на БЕЙСИКе. Если Вы создаете программу «русско-английский словарь», то она вполне может быть написана на БЕЙСИКе и только процедура поиска перевода слова, занимающая много времени, должна быть записана в машинных кодах. Если же Вы создаете русско-китайский словарь, то еще одним узким местом станет рисование на экране иероглифов. Вам придется записать несколько процедур, которые смогут делать это быстро. Диалог с пользователем программа может вести и из БЕЙСИКа.
· И, наконец, последнее. Ни один программист, работающий в машинных кодах, не пишет большую программу от начала и до конца с чистого листа. Программа представляет хитроумное сплетение больших и малых подпрограмм (процедур), из которых до 80% стали для этого программиста стандартными, т.е. он применяет их регулярно во всех своих программах без особых перемен, а Вы никогда об этом и не догадаетесь. Это могут быть арифметических и логических вычислений, обработки изображений, опроса внешних устройств (например, джойстика), вывода текста на экран, звуковых эффектов и т.д. и т.п.
Конечно, если Вы делаете только первые шаги в машинных кодах, то у Вас нет еще такой библиотеки, но прочитав эту книгу, Вы уже можете покопаться в машинном коде некрупных фирменных программ. Там Вы найдете множество открытий. В этом Вам очень поможет какая-либо дисассемблирующая программа, например MONITOR 16/48. Для Вас открыты и другие книги «ИНФОРКОМа» и, самое главное, наши выпуски «ZX-РЕВЮ».
Архитектура аппаратных средств
«Краснодарский информационно-технологический техникум»
Отчёт по лабораторной работе
Архитектура аппаратных средств
1. Процессор, оперативная память (ОЗУ), сверхоперативная память (регистры общего назначения и кэш-память), устройство ввода (Увв) и устройство вывода (Увыв).
В состав процессора входят центральное устройство управления (УУ) и арифметическое устройство (АУ).
При каждом обращении содержимое индексного регистра обычно модифицируется автоматически: увеличивается на 1 (индексная с постинкрементом) или уменьшается на 1 (индексная с прединкрементом).
6. Какие ограничения накладываются на способ представления данных в модели?
Команда Пуск запускает программу на выполнение. Программа представляет собой последовательность команд, записанных в ОЗУ. Программа выполняется в автоматическом режиме до команды HLT (Стоп) или точки останова. Программа выполняется по командам, начиная с ячейки ОЗУ, на которую указывает счетчик команд (PС), причем изменение состояний объектов модели отображается в окнах компонентов.
В состоянии Остановка модель учебной ЭВМ переходит в результате действия команды СТОП или автоматически в зависимости от выбранного режима работы.
Команда Шаг запускает выполнение одной команды либо одной микрокоманды (если установлен Режим микрокоманд) после чего модель переходит в состояние Останов.
В состоянии Остановка пользователь может просмотреть или изменить основные компоненты модели: регистры ЦП и РОН, ячейки ОЗУ, устройства ввода/вывода.
8. Как записать программу в машинных кодах в память модели ЭВМ?
Записать программу в машинных кодах в память модели ЭВМ можно на примере программной модели учебной ЭВМ реализованной стандартным Windows-совместимым интерфейсом, состоящий из нескольких окон: основного окна Модель учебной ЭВМ и окон компонентов Процессор, Память, Текст программы, Программа, Кэш-память, Микрокомандный уровень.
В окне Текст программы редактировать текст, загружать в него текстовые файлы и сохранять текст в виде файлов.
Окно компонента Программа состоит из трех составляющих: стандартного для эмулятора меню, панели управления и таблицы, которая имеет 300 строк и 4 столбца, каждая строка соответствует дизассемблированной ячейке памяти.
Технология выполнения работы:
Для преобразования заданных мнемокодов в машинные коды составим таблицу соответствия.
Например, Команда 1 имеет вид IN. Согласно табл. 1 приложения, которая содержит команды учебной ЭВМ переведем команду IN в машинный код, где старший разряд равен 0 и младший равен 1, IN: =01. Далее следует тип адресации, т.к. его нет, то он равен 0. Затем в команде следует номер ячейки памяти ОЗУ, которую согласно формату, данных учебной ЭВМ следует привести к трехзначному числу 000. Следовательно, Команда 1 в машинных кодах имеет вид: 01 0 000. Аналогично переводим в машинные коды остальные четыре команды.
Команда 2 имеет вид MUL #2. Согласно табл. 1 приложения, которая содержит команды учебной ЭВМ переведем команду MUL #2 в машинный код, где старший разряд равен 2 и младший равен 5, MUL #2: =25. Далее следует тип адресации, он равен 1. Затем в команде следует номер ячейки памяти ОЗУ, которую согласно формату, данных учебной ЭВМ следует привести к трехзначному числу 002. Следовательно, Команда 2 в машинных кодах имеет вид: 25 1 002.
Команда 3 имеет вид WR 10. Согласно табл. 1 приложения, которая содержит команды учебной ЭВМ переведем команду WR 10 в машинный код, где старший разряд равен 2 и младший равен 2, WR 10: =22. Далее следует тип адресации, он равен 0. Затем в команде следует номер ячейки памяти ОЗУ, которую согласно формату, данных учебной ЭВМ следует привести к трехзначному числу 010. Следовательно, Команда 2 в машинных кодах имеет вид: 22 0 010.
Команда 4 имеет вид WR @10. Согласно табл. 1 приложения, которая содержит команды учебной ЭВМ переведем команду WR @10 в машинный код, где старший разряд равен 2 и младший равен 2, WR @10: =22. Далее следует тип адресации, он равен 0. Затем в команде следует номер ячейки памяти ОЗУ, которую согласно формату, данных учебной ЭВМ следует привести к трехзначному числу 010. Следовательно, Команда 2 в машинных кодах имеет вид: 22 0 010.
Команда 5 имеет вид JNS 001. Согласно табл. 1 приложения, которая содержит команды учебной ЭВМ переведем команду JNS 001 в машинный код, где старший разряд равен 1 и младший равен 4, JNS 001: =14. Далее следует тип адресации, он равен 0. Затем в команде следует номер ячейки памяти ОЗУ, которую согласно формату, данных учебной ЭВМ следует привести к трехзначному числу 001. Следовательно, Команда 2 в машинных кодах имеет вид: 14 0 001.
Практическая работа на тему «Построение последовательности машинных команд»
Практическая работа №1.
Тема : Построение последовательности машинных команд.
Цель : знакомство с циклом работы процессора.
Используемое ПО : программа-тренажер CompModel, инструкция к программе
Для решения с помощью ЭВМ некоторой задачи должна быть разработана программа. Программа на языке ЭВМ представляет собой последовательность команд. Код каждой команды определяет выполняемую операцию, тип адресации и адрес. Выполнение программы, записанной в памяти ЭВМ, осуществляется последовательно по командам в порядке возрастания адресов команд или в порядке, определяемом командами передачи управления.
Для того чтобы получить результат выполнения программы, пользователь должен:
ввести программу в память ЭВМ;
определить, если это необходимо, содержимое ячеек ОЗУ и РОН, содержащих исходные данные, а также регистров IR и BR;
установить в PC стартовый адрес программы;
перевести модель в режим Работа.
Каждое из этих действий выполняется посредством интерфейса модели. Ввод программы может осуществляться как в машинных кодах непосредственно в память модели, так и в мнемокодах в окно Текст программы с последующим ассемблированием.
Цель настоящей лабораторной работы — знакомство с интерфейсом модели ЭВМ, методами ввода и отладки программы, действиями основных классов команд и способов адресации. Для этого необходимо ввести в память ЭВМ и выполнить в режиме Шаг некоторую последовательность команд (определенную вариантом задания) и зафиксировать все изменения на уровне программно-доступных объектов ЭВМ, происходящие при выполнении этих команд.
Команды в память учебной ЭВМ вводятся в виде шестиразрядных десятичных.
В настоящей лабораторной работе будем программировать ЭВМ в машинных кодах.
Дана последовательность мнемокодов, которую необходимо преобразовать в машинные коды, занести в ОЗУ ЭВМ, выполнить в режиме Шаг. и зафиксировать изменение состояний программно-доступных объектов ЭВМ (табл. 1)-
Таблица 1. Команды и коды
Введем полученные коды последовательно в ячейки ОЗУ, начиная с адреса 000. Выполняя команды в режиме Шаг, будем фиксировать изменения программно-доступных объектов (в данном случае это Асе, PC и ячейки ОЗУ 020 и 030) в табл. 2.
Таблица 2. Содержимое регистров
В 1. Ознакомиться с архитектурой ЭВМ (см. часть I).
2. Записать в ОЗУ «программу», состоящую из пяти команд— варианты задания выбрать из табл. 9.3. Команды разместить в последовательных ячейках памяти.
3. При необходимости установить начальное значение в устройство ввода IR.
4. Определить те программно-доступные объекты ЭВМ, которые будут изменяться при выполнении этих команд.
5. Выполнить в режиме Шаг введенную последовательность команд, фиксируя изменения значений объектов, определенных в п. 4, в таблице (см. форму табл. 9.2).
6. Если в программе образуется цикл, необходимо просмотреть не более двух повторений каждой команды, входящей в тело цикла.
Таблица 9.3. Варианты задания 1
1. Формулировка варианта задания.
2. Машинные коды команд, соответствующих варианту задания.
3. Результаты выполнения последовательности команд в форме табл. 2.
1. Из каких основных частей состоит ЭВМ и какие из них представлены в модели?
2. Что такое система команд ЭВМ?
3. Какие классы команд представлены в модели?
4. Какие действия выполняют команды передачи управления?
5. Какие способы адресации использованы в модели ЭВМ? В чем отличие между ними?
6. Какие ограничения накладываются на способ представления данных в модели ЭВМ?
7. Какие режимы работы предусмотрены в модели и в чем отличие между ними?
8. Как записать программу в машинных кодах в память модели ЭВМ?
9. Как просмотреть содержимое регистров процессора и изменить содержимое некоторых регистров?
10. Как просмотреть и, при необходимости, отредактировать содержимое ячейки памяти?
11. Как запустить выполнение программы в режиме приостановки работы после выполнения каждой команды?
12. Какие способы адресации операндов применяются в командах ЭВМ?
13. Какие команды относятся к классу передачи управления?
Курс повышения квалификации
Дистанционное обучение как современный формат преподавания
Курс профессиональной переподготовки
Информатика: теория и методика преподавания в образовательной организации
Курс профессиональной переподготовки
Математика и информатика: теория и методика преподавания в образовательной организации
Онлайн-конференция для учителей, репетиторов и родителей
Формирование математических способностей у детей с разными образовательными потребностями с помощью ментальной арифметики и других современных методик
Номер материала: ДБ-1712988
Международная дистанционная олимпиада Осень 2021
Не нашли то что искали?
Вам будут интересны эти курсы:
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.
Кравцов призвал создать федеральную систему учета успеваемости
Время чтения: 1 минута
В Москве подписан Меморандум о развитии и поддержке классного руководства
Время чтения: 1 минута
В России разработают план по развитию футбола для девочек в школах
Время чтения: 2 минуты
В России пройдет эксперимент с электронными аттестатами
Время чтения: 1 минута
Путин поручил провести экспертизы учебников для бакалавриата
Время чтения: 1 минута
В пяти регионах России протестируют новую систему оплаты труда педагогов
Время чтения: 2 минуты
Подарочные сертификаты
Ответственность за разрешение любых спорных моментов, касающихся самих материалов и их содержания, берут на себя пользователи, разместившие материал на сайте. Однако администрация сайта готова оказать всяческую поддержку в решении любых вопросов, связанных с работой и содержанием сайта. Если Вы заметили, что на данном сайте незаконно используются материалы, сообщите об этом администрации сайта через форму обратной связи.
Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение администрации может не совпадать с точкой зрения авторов.