Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

ВАЖНО!!! Все пиццы подаются на горячих тарелках (приблизительно 80 оС) !!! Это делается для того, чтобы на столе у гостей пицца как можно дольше сохраняла температуру. 6 страница





Доверь свою работу кандидату наук!
1500+ квалифицированных специалистов готовы вам помочь

 

Таблица 4.2. Структура слова состояния МП Intel 8080

 

Бит шины данных Информация о состоянии Выборка команды Чтении из памяти Запись в память Чтение из стека Запись в стек Ввод Вывод Подтвержде-ние прерывания Подтвержде-ние останова Подтвержде-ние прерывания во время останова
D0
D1
D2
D3
D4
D5
D6
D7

 

Диаграмма переходов при выполнении машинного цикла представлена на рис.4.1, на котором используются следующие обозначения : - состояние ожидания МП; - состояние ожидания МП при выполнении команды останова HLT; - состояние МП, i=1…5.

Командный цикл – время, необходимое для выборки, дешифрирования и выполнения команды.

Машинный цикл – время, необходимое для передачи данных в память или в порты ввода/вывода или обратно.

Такт (состояние) – промежуток времени между двумя соседними переходами тактового сигнала Ф1 из отрицательного состояния в положительное. Такт совпадает с одним периодом тактового генератора.

Машинный цикл длится от трех до пяти тактов. Три такта используются для осуществления доступа к модулю памяти или ввода/вывода. Остальные два такта используются для декодирования и выполнения команды.

1. Во время такта Т1 цикла М1 ЦП помещает содержимое СК на адресную шину, а информацию о состоянии (нужную в цикле выборки команды) на шину данных. Эти операции выполняются непосредственно за фронтом тактового сигнала Ф2. Первая часть цикла используется для завершения предыдущего цикла с целью предотвращения возможного наложения. Максимальное время задержки адреса составляет 200 нс, а максимальное время задержки данных 0 220 нс.



2. Во время такта Т2 цикла М1 информация о состоянии фиксируется внутри процессора и информационная шина используется либо для вывода данных, либо переводится в состояние ожидания ввода данных (DBIN=1). Все эти действия выполняются непосредственно за фронтом тактового сигнала Ф2, за исключением фиксации состояния, которая происходит по срезу сигнала Ф1.

3. Во время такта Т3 цикла М1 осуществляется либо передача данных в процессор (цикл чтения), либо формирование сигнала записи . Чтобы данные были приняты корректно, этот сигнал должен удовлетворять временам установки как во время сигнала Ф1, так и во время сигнала Ф2. Минимальные времена установки составляют 30 нс до среза Ф1 и 130 нс до среза Ф2. Сигнал записи прекращается примерно через 130 нс после смены данных и адреса относительно фронта Ф2 в следующем цикле.

4. Такты Т4 и Т5 используются для того, чтобы дешифрировать и выполнить команды. Эти такты обычно присутствуют во время цикла выборки команды. Различие между командами, требующими четыре или пять тактов, определяется при внутреннем дешифрировании.

 

 

Рис.4.1.Диаграмма переходов.

 

Формирование системных управляющих сигналов.

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

 

 

= ;
= ;

= ;
= ;

= .

 

Слово состояния загружается во внешний 8-битный регистр, например К589ИР12, посредством сигнала синхронизации SYNC т тактирующего сигнала Ф2 уровня ТТЛ, формируемого генератором тактовых сигналов.

На рис. 4.2 показано формирование системных управляющих сигналов в соответствии с вышеприведенными выражениями. Другие признаки слова состояния могут использоваться при тестировании МП.

 

 

Рис.4.2. Формирование системных управляющих сигналов.

 

 

5.СИСТЕМА КОМАНД МИКРОПРОЦЕССОРА 8080

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

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

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

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



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

Одним из языков программирования является язык ассемблера. Специальные мнемокоды языка ассемблера соответствуют каждой команде ЭВМ. Программист может писать программу (называемую исходной программой) с помощью этих мнемокодов и некоторых операндов. Исходная программа затем переводится в машинные команды (называемые объектными кодами). Каждая команда на языке ассемблера преобразуется в одну машинную команду (один или несколько байт) с помощью ассемблирующей программы. Язык ассемблера является обычно машиннозависимым языком, т. е. языком, который применим только к одному типу ЭВМ.

Типы команд микропроцессора 8080

Система команд МП 8080 состоит из пяти различных типов (групп) команд.

Группа команд пересылки выполняет операции обмена данными между регистрами или между регистрами и памятью.

Группа команд арифметических опер а ц и й выполняет операции сложения, вычитания, инкрементирования или декрементирования данных в регистрах или ячейках памяти.

Группа команд логических операций выполняет операции И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ, сравнения, сдвига или дополнения данных в регистрах или ячейках памяти.

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

Группа команд управления и операций со стеком и УВВ выполняет операции ввода-вывода, операции со стеком и операции управления признаками состояний.

 

Форматы команд и данных

Память МП 8080 представляет собой массив 8-битных слов, называемых байтами. Каждый байт имеет свой 16-битный адрес, определяющий его положение в последовательности ячеек памяти. Микропроцессор 8080 может прямо адресовать 65 636 байт памяти, которая может содержать как ПЗУ, так и ОЗУ.

Данные в МП8080 хранятся в памяти в виде 8-битных слов:

 

 

 

Если содержимое регистра или слово в памяти представляет собой двоичное число, то необходимо индексировать каждый бит этого слова. В МП 8080 младшим значащим битом (МЗБ) является бит 0, а бит 7 (с порядковым номером 8) является старшим значащим битом (СЗБ).

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

 

 

Способы адресации

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

Прямая адресация. Второй и третий байты команды содержат точный адрес байта данных в памяти (младший полуадрес представлен вторым байтом команды, старший полуадрес — третьим).

Регистровая адресация. В коде команды адресуется регистр или пара регистров, в которых хранятся данные.

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

Непосредственная адресация. Данные представлены в теле команды. Данные могут быть 8- или 16-битными (первым следует младший значащий байт, вторым — старший).

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

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

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

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

Признаки состояния

Команды МП 8080 оперируют с пятью признаками состояния: НУЛЬ (Zero), ЗНАК (Sign), ПАРИТЕТ (Parity), ПЕРЕНОС (Carry), ВСПОМОГАТЕЛЬНЫЙ ПЕРЕНОС (Auxiliary Carry), каждый из которых занимает 1 бит регистра признаков в ЦП. Признак имеет место, если данный бит установлен в состояние 1; признак отсутствует, если данный бит установлен в состояние 0.

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

НУЛЬ: если результат выполнения команды нулевой, то признак устанавливается в 1, в противном
случае в 0.

ЗНАК: если старший значащий бит результата операции имеет значение 1, то признак устанавливается в 1, в противном случае в 0.

ПАРИТЁТ: если сумма по модулю 2 всех разрядов результата операции равна нулю (если число единиц в результате четное), то признак устанавливается в 1, в противном случае (если число единиц в результате нечетное) — в 0.

ПЕРЕНОС: если в результате выполнения команды из старшего разряда возникает перенос (при суммировании) или займ (при вычитании или сравнении), то признак устанавливается в 1, в противном случае — в 0.

ВСПОМОГАТЕЛЬНЫЙ ПЕРЕНОС: если в результате выполнения операции возникает перенос из разряда 3 в разряд 4, то признак устанавливается в 1, в противном случае — в 0. Этот признак возникает при выполнении операций сложения, вычитания, инкрементирования, декрементирования, сравнения и логических операций, но используется только по команде ОАА (десятичная коррекция) при выполнении операций сложения и инкрементирования десятичных двоично-кодированных чисел.

Ниже приводятся символы и аббревиатуры, которые используются при описании команд МП 8080.

СИМВОЛ ЗНАЧЕНИЕ

Accumulator Регистр А
addr 16-битный адрес
data 8-битные данные
data 16 16-битные данные
byte 2 Второй байт команды

Byte 3 Третий байт команды

Port 8-битный адрес УВВ

r, r1, r2 Один из регистров A, B, C, D, E, H, L

 

DDD, SSS Биты, адресующие один из регистров A, B, C, D, E, H, L (DDD - принимающий
регистр, SSS – передающий регистр):
DDD или SSS ИМЯ РЕГИСТРА
111 A
000 B
001 C
010 D
011 E
100 H
101 L

rp Одна из регистровых пар: символ B задает пару регистров B, C. При этом регистр B
является старшим, а С – младшим
Символ D задает пару регистров D, E. Регистр D является старшим, а E – младшим.
Символ H задает пару регистров H, L. Регистр H является старшим, а L – младшим.

Символы SP задают 16-битный регистр-указатель стека.

RP Биты, адресующие одну из регистровых пар B, D, H, S, P:

RP РЕГИСТРОВАЯ ПАРА

00 B,C
01 D,E

10 H,L

11 S,P

rh Первый (старший) регистр выбранной регистровой пары

rl Второй (младший) регистр выбранной регистровой пары

PC 16-битный счетчик команд (PCH и PCL используются для обозначения
старшего и младшего байт адреса соответственно)

SP 16-битный регистр-указатель стека (SPH и SPL используются для обозначения
старшего и младшего байт адреса соответственно)

rm Бит m регистра r (нумерация бит регистров – от 0 до 7 справа налево)

Z, S, P, CY, AC Признаки состояния: НУЛЬ, ЗНАК, ПАРИТЕТ, ПЕРЕНОС и
ВСПОМОГАТЕЛЬНЫЙ ПЕРЕНОС соответственно

( ) Содержимое ячейки памяти или регистра, символическое имя которых заключено в
скобках

Оператор пересылки

Ù Логическое И

" Исключающее ИЛИ

Ú Логическое ИЛИ

+ Сложение

- Вычитание в дополнительном коде

* Умножение

« Оператор обмена

¯ Обратный код [например, ( )]

n Вектор прерывания (число от 0 до 7)

NNN Двоичный код вектора прерывания (от 000 до 111)

 

Формат описания

Последующий материал представляет собой детальное описание системы команд МП 8080. Каждая команда описывается следующим образом:

1. В начале первой строки полужирным шрифтом приводятся мнемокод операции и операнд команды по правилам языка ассемблера МАС 80.

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

3. Следующая строка (строки) представляет собой символическое описание операции, выполняемой по данной команде.

4. В следующей строке (строках) содержится словесное описание операции, выполняемой по данной команде.

5. Следующая строка (строки) содержат двоичные коды и формат команды.

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

 

Группа команд пересылки

Группа команд пересылки реализует операции обмена данными между регистрами и памятью. Ни одна из команд данной группы не изменяет содержимое регистра признаков состояния.

Содержимое регистра r2 передать в регистр r1

Циклы : 1
Состояния:5
Адресация: регистровая
Признаки : отсутствуют

 

 

MOV r, M (Move from memory)
(r)←((H)(L))

Содержимое ячейки памяти, адрес которой содержится в регистрах H и L, передать в регистр r.

 

 

Команды пересылок

 

Команды пересылок предписывают МП передачу данных из одного блока в другой. Команды пересылок должны всегда определять источник и приемник данных. Для этого используются следующие правила:
1. в команде сначала определяют приемник, а затем источник данных.

2. если источник или приемник данных в команде есть ячейка памяти М, то ее адрес всегда содержится в регистрах H и L блока РОН. Старший байт адреса всегда находится в регистре H, а младший – в регистре L.

 

Команда MOV

В командах MOV (move) в качестве источника и приемника данных могут быть использованы: регистр и ячейка памяти; ячейка памяти и регистр; регистр и другой регистр.

Пример 1. MOV A,B. Символ А обозначает аккумулятор, В – регистр блока РОН в МП. Это означает, что содержимое регистра В должно быть помещено в А. Прежнее содержимое А пропадает, после выполнения команды содержимое регистра В не изменяется и представляет собой просто копию содержимого А.

Пример 2. MOV M,D. M – это слово в памяти, а D – один из регистров МП. Эта команда означает, что содержимое регистра D должно быть передано в ячейку памяти, адрес которой указан в регистрах H и L.

Команды MOV однобайтные. Первые 2 бита – код операции (01), остальные 6 бит – адрес источника и приемника данных. В команде MOV M,D, биты 3-5 определяют, что приемником данных является ячейка памяти, адрес которой указан в регистрах H и L. Биты 6-8 задают в качестве источника данных регистр D.

 

Команда MVI

Команда MVI (MoVe Immediate) отличается от команды MOV тем, что в качестве источника данных используется 8-битная константа, которая следует непосредственно за кодом операции. Приемником данных может быть регистр или ячейка памяти.

Пример 3. MVI M,10111011В. по этой команде число 10111011 должно быть передано в ячейку памяти, адрес которой содержится в регистровой паре H,L. Буква В после кода 10111011 означает, что речь идет о двоичном числе. Константа может быть представлена в десятичной или шестнадцатеричной системе счисления. В этом случае буквы D или H нужно поместить непосредственно за числом, записанным в команде. Ассемблер преобразует это число в двоичный код.

Пример 4. MVI A,D. По этой команде буква D в коде ASCII будет помещена в А. Ассемблер переведет символ в двоичный код. Буква D в кавычках означает, что D – символ. Кавычки не следует забывать при написании программы, чтобы не перепутать с шестнадцатеричным числом.

 

Команда LDA

По команде LDA (Load Accumulator) в А загружается содержимое ячейки памяти, адрес которой следует за кодом операции.

Пример 5. LDA 2FFFH. Это означает, что содержимое ячейки памяти с адресом 2FFF16 должно быть передано в А. Команда LDA 3-байтная: 1 байт содержит код операции (LDA), а два других – адрес (2FFF16).

 

Команда LXI

Команда LXI (Load register pair Immediate) может быть использована для загрузки регистровых пар BC, DE или HL 16-битным числом ( за один цикл команды). Это число непосредственно следует за кодом операции. Команда LXI представляет собой разновидность команды MVI, которая оперирует с 8-битным числом.

Пример6. Загрузить в регистровую пару H,L число 3FF416.

Решение 1. MVI H,3FH

MVI L,F4H.

 

Решение 2 LXI H,3FF4H.

 

Команды OUT, IN

Данные команды обеспечивают обмен информацией с устройствами ввода-вывода (УВВ).

В команде OUT источником всегда является А.

В команде IN приемником всегда является А.

Пи этом необходимо, чтобы номер порта следовал непосредственно за кодом операции IN или OUT то есть в команде должен быт указан адрес УВВ, с которого должна приниматься или на который должна передаваться информация.

Пример 7. OUT 03H. Это означает, что содержимое А должно быть передано в выходной порт с номером 0316 .

Пример 8. IN 06H

MOV M,A.

 

В результате выполнения первой команды данные передаются из порта ввода 0616 в А. По второй команде они засылаются в память. Адрес ячейки памяти содержится в регистровой паре HL.

 

Команды арифметических операций

МП 8080 может выполнять только две арифметические операции: сложение, вычитание.

 

Команда ADD

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

Пример 9. ADD H. Данная команда означает, что содержимое регистра H должно быть просуммировано с содержимым А. Сумма помещается в А.

Пример 10. ADD M. Содержимое ячейки памяти, адрес которой находится в регистровой паре HL, должно быть просуммировано с содержимым А. Результат помещается в А.

Пример 11. Сложить два числа 1210 и 8410 и поместить результат в ячейку памяти с адресом 2AA316.

Решение. MVI A, 12

MVI B, 84

ADD B

LXI H, 2AA3H

MOV M, A

 

Команда ADC

Команда ADC (Add with Carry) является разновидностью команды ADD. По команде ADC происходит не только сложение двух операндов, но и сложение с признаком переноса, оставшимся от предыдущей операции; результат сохраняется в А.

Пример 12. ADC M. Содержимое ячейка памяти, адрес которой записан в регистровой паре HL, и содержимое признака переноса должно быть просуммировано с содержимым А.

Пример 13. ADI 16D. Десятичное число 16 складывается с содержимым А. Сумма помещается в А.

Пример ACI по этой команде складывается непосредственный операнд с содержимым А и с признаком переноса.

 

 

Команда INR.

Команда INR (INcRement) является разновидностью команды ADD. По этой команде МП увеличивает на 1 содержимое одного из регистров блока РОН, аккумулятора или ячейки памяти.

Пример 14. INR C. Содержимое регистра С должно быть увеличено на 1.

 

Команда SUB

Команда SUB позволяет МП непосредственно содержимое одного из регистров блока РОН или содержимое ячейки памяти из содержимого А. Производится суммирование уменьшаемого с вычитаемым в дополнительном коде. Результат операции помещается В А.

 

Команды SBB, SUI, SBI

Команда SUB имеет следующие разновидности:

SBB = SuBtract with Borrow (вычитание с займом)

SUI = Subtract Immediate with Borrow (вычитание непосредственного операнда)

SBI = Subtract Immediate with Borrow (вычитание непосредственного операнда с займом)

 

Команда DCR

Эта команда применяется для уменьшения содержимого одного из регистров блока РОН, А или ячейки памяти на 1.

 

Команды логических операций.

Эти команды предназначены для выполнения логических операций И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ, занесение в А обратного кода числа, сравнение двух чисел, сдвиг содержимого А вправо или влево.

 

Команда ANA

Команда ANA (And with Accumulator) используется для операции логического И над содержимым одного из регистров блока РОН или ячейки памяти и содержимым А.

Пример 15. ANA M. Содержимое ячейки памяти, адрес которой находится в регистрах H и L, участвуют в операции логического И вместе с содержимым А. Результат операции засылается в А.

 

Команда ORA

Команда ORA (OR with Accumulator) используется для выполнения операции логического ИЛИ над содержимым одного из регистров блока РОН или ячейки памяти М и содержимым А.

 

Команда XRA

Команда XRA (eXclusive oR with Accumulator) используется для выполнения операции ИСКЛЮЧАЮЩЕЕ ИЛИ над содержимым одного из регистров блока РОН или ячейки памяти и содержимым аккумулятора.

Команды ANA, ORA и XRA также имеют модификации, оперирующие с непосредственным операндом. Содержимое А участвует в операции вместе с числом, следующим за командой. Эти команды имеют следующие мнемокоды: ANI, ORI и XRI соответственно.

 

Команда CMA

Команда CMA (CoMplement Accumulator) используется для того, чтобы получить обратный код содержимого А. если хотим получить обратный код числа, находящегося в одном из регистров РОН или в ячейке памяти, то прежде всего нужно поместить это число в А.

 

Команда CMP

Команда CMP (CoMPare) используется для сравнения двух чисел. Одно из чисел всегда помещается в А. При сравнении одно из числе вычитается из другого и результат проверяется на нуль и знак: положительный или отрицательный. Проверяется содержимое признаков переноса и нуля.

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




Дата добавления: 2014-12-27; Просмотров: 339; Нарушение авторских прав?;


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



ПОИСК ПО САЙТУ:


Читайте также:
studopedia.su - Студопедия (2013 - 2022) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.144 сек.