Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Учебная микроЭВМ

D 19H

D 18H

+ +

37D 31H 31+6 = 37

 

Кроме регистров А и F сверхоперативное ЗУ (СОЗУ) микропроцессора содержит следующие регистры специального назначения:

RAрегистр адреса, 16 разрядный регистр для хранения адреса команды или данных;

PC - 16-разрядный программный счетчик -регистр для выдачи адреса команды, содержимое которого автоматически изменяется после выполнения команды, указывая адрес следующей команды;

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

RC - 8-разрядный регистр команд для хранения принятого байта команд;

W и Z - регистры временного хранения кода команды, если он превышает 1 байт (2 или 3 байта).

Помимо регистров специального назначения в микропроцессоре имеются шесть восьмиразрядных регистров общего назначения (B, C, D, E, H, L), которые могут образовывать шестнадцатиразрядные регистровые пары (ВС, DE и HL) и служат для временного хранения данных, предназначенных для обработки в АЛУ.

Из внутренних регистров МП КР580ВМ80А (КР580ИК80А) программно доступны пользователю следующие:

а) аккумулятор (регистр А)

б) регистры общего назначения B, C, D, E, H, L

в) регистр состояний (флагов) FL;

г) счетчик команд CP (16 разрядов);

д) регистр указатель стека SP (16 разрядов)

 

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

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

 

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

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

Ожидание – режим, когда выполнение программы приостановлено, а продлжение выполнения программы возможно только после получения определенных данных от внешнего устройства.

Останов – полное прекращение выполнения основной программы.

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

 

Любая выполняемая микропроцессором операция является следствием выполнения команды. Каждая команда реализуется за 1-5 машинных циклов. Машинный цикл - это время, требуемое для передачи или приема байта информации по шине данных или выполнения однобайтовой команды. Машинный цикл может составлять 3-5 машинных тактов. Для МП 8080 (К580ВМ80А) существует 10 типов машинных циклов, каждому из которых соответствует байт состояния процессора (БСП):

q считывание кода команды - 01000101;

q чтение данных из памяти - 01000001;

q запись данных в память - 00000000;

q чтение данных из стека - 01100001;

q запись данных в стек - 00100000;

q ввод данных из внешних устройств - 01000010;

q вывод данных во внешние устройства - 00001000;

q обслуживание прерывания - 11000100;

q останов - 01010001;

q прерывание во время останова - 11010100.

 

Таблица 2. Структура байта состояния процессора

 

D7 D6 D5 D4 D3 D2 D1 D0
RE WIO M1 RIO HLT SP WR INT

 

где, INT – прерывание, WR – запись в память, SP- на шине адресов данные из стека, HLT – останов, RIO-чтение из ВУ, M1 – цикл выборки команды, WIO – запись в ВУ, RE –чтение из памяти,

 

 

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

 

 


М1 М2 М3 М1

Циклы

 

Такты Т1 Т2 Т3 Т4 Т1 Т2 Т3 Т1 Т2 Т3 Т1 Т2 Т3

                                                       
 
 
                           


С1

                                                   
                         


С2

                                                               
                           
 
         

 


SYN

               
       


A0-A15 Адрес команды Адрес команды+1 Адрес ВУ Адрес команды

                             
         
 
       

 


D0-D7 бсп код команды бсп операнд бссп данные бсп код коман.

                                           
               
 
         

 


DBIN

Цикл М1 Цикл чтения Цикл чтения Цикл М1

выборки кода данных из из внешнего выборки кода

команды памяти устройства команды

 
 


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

 

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

РегистрыB, C, D, E, H, L, кодируются двоичными числами соответственно от 000 до 100. Код 110 обозначает ячейку ЗУ, адрес которой указан в регистровой паре HL, состоящей из регистров H и L, а код 111 является кодом аккумулятора. Два старших разряда кода команды одновременно обозначают операцию и указывают на то, что эта команда является однобайтовой (по размеру) командой пересылки (по содержанию).

Команды могут быть двух или трех байтовыми. Например, для того чтобы к содержимому аккумулятора прибавить число 0000 1010 с учетом переноса при переполнении старшего разряда и результат занести в аккумулятор, необходима команда, код которой 1100 1110 0000 1010 - эта команда является двухбайтовой.

Двоичным кодом первого байта можно представить 256 двоичных комбинаций. Почти столько же команд имеет и МП БИС КР580ВМ80 (некоторые комбинации не используются). Естественно, что запомнить более 200 кодов команд, представленных в виде набора едениц и нулей, почти невозможно. Поэтому каждому коду команды ставиться в соответствие мнемоническое название (мнемоника) команды, которая является сокращением от английских слов, описывающих ее действие, и регистрам с помощью букв от A до F, H, L, регистровых пар BC,DE, HL и PSW (образованной аккумулятором А и регистром признаков F), SP - указателя стека и CP - счетчика команд, c которым производятся

операции в данной команде.

Например, приведенная выше однобайтовая команда в мнемонике будет иметь такой вид: MOV A,C (от английского MOVE-передвигать, перемешать). Mнемоника команд МП БИС КР580ВМ80 приведена в таблице 1.

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

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

После подачи на вывод SR сигнала высокого уровня микропроцессор устанавливается в начальное состояние.

 

В конце машинного цикла снова анализируется состояние сигнала на входе HLD. При низком урозне сигнала проверяется, окончено ли выполнение команды. Если команда не закончена, то микропроцессор выполняет сле-дующий машинный цикл команды, yачиная с такта Т1. В конце каждой команды микропроцессор анализирует состояние сигнала на входе INT. Если сигнал высокого уровня и прерывание было ранее разрешено командой Е1, то микропроцессор переходит к выполнению машинного цикла «Прерывание», начиная с такта Т1. В противном случае выполняется первый машинный цикл новой команды с такта Т1.

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

В зависимости от сочетания сигналов состояния, выдаваемых в конкретном цикле, машинные циклы можно разделить на 10 типов:

1. Цикл М1 — прием первого байта команды в регистр команд. 2. Цикл чтения ЗУ — чтение ЗУ по содержимому программного

счетчика или содер. жимому одного из регистров ВС, DE, HL.'

 

3. Цикл записи в ЗУ — запись в ЗУ по содержимому одного из

регистров ВС, DE, HL.

4. Цикл чтения стека — чтение ЗУ по содержимому указателя стека.

5. Цикл записи в стек — запись в ЗУ по содержимому указателя стека.

6. Цикл ввода — ввод информации в регистр результата (аккумулятор) из внешнего устройства.

7. Цикл вывода—вывод информации из регистра результата во внешнее устройство.

на входе fNT — микропроцессор переходит к выполнению цикла прерывания при

останове с такта Т1, если команде HLT предшествовала команда Е1 «разрешение прерывания», иначе остается в состоянии

8. Цикл прерывания —прием кода команды RST или CALL из «останов» контроллера прерываний.

9. Цикл останова.

10. Цикл прерывания при останове — прием кода команды RST или CALL при выводе микропроцессора из режима «Останов» по прерыванию.

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

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

Сигнал высокого уровня на входе RDY обеспечивает автоматическое выполнение команд программы микропроцессором с частотой тактовых сигналов. Если на выводе RDY установлен сигнал низкого уровня, то микропроцессор переходит в режим «Ожидание» и формирует выходной сигнал WI высокого уровня.

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

При подаче на вход HLD сигнала высокого уровня микропроцессор переходит в состояние «захват» и подтверждает переход в это состояние формированием сигнала высокого уровня на выходе HLDA.

Буферные схемы канала адреса и данных микропроцессора переключаются в высокоом-ное состояние, а выходные управляющие сигналы в состояние низкого уровня (за исключением сигналов TR и HLDA). Микропроцессор переходит в состояние «захват» в такте ГЗ, если выполняется цикл чтения и на входе RDY сигнал высокого уровня, и в такте, следующим за ГЗ, если выполняется цикл записи. Сигналы HLD и HLDA позволяют организовать режим прямого доступа к памяти для любого внешнего устройства, формирующего сигнала HLD.

При выполнении команды HLT микропроцессор переходит в состояние «останов» и переводит буферные схемы канала адреса и данных в высокоомное состояние. Из состояния «останов» микропроцессор выходит при наличии сигнала высокого уровня на одном из его входов:

на входе SR — микропроцессор начинает работать с такта 71 цикла М1;

на входе HLD — микропроцессор переходя в состояние «захват», а после перехода сигнала HLD на низкий уровень возвращается в состояние

 

 

Структурная схема, отражающая архитектуру учебной микро-ЭВМ, предназначенной для практического овладения принципами построения микро-ЭВМ, различного назначения на базе МПК серии 580, для обучения программированию и отладке программного обеспечения данного МПК, приведена на рис.1. МП содержит 16-разрядную шину адресов SA и 8-разрядную двунаправленную шину данных SD и магистраль управления, состоящую из линий, передающих системные сигналы. Тактирование МП осуществляется кварцевым генератором тактовых импульсов (ГТИ) на БИС КР580ГФ24, формирующим два сдвинутых по фазе сигнала C1 и C2, а также синхросигналами RESET и некоторыми другими.

Для повышения нагрузочной способности адресной магистрали внешние шина адреса подключена к внутренней шине МП через буфер адреса (РА). В качестве буфера адреса используются два восьмиразрядных приемопередатчика К580ВА86 с трехстабильным выходом (лог. 0, лог. 1 и высокоимпендансное состояние). Шина данных микропроцессора подключена к системному контроллеру СК, реализованному на микросхеме К580ВК28, и выполняющему функции двунаправленного буфера данных и регистра слова состояния, фиксирующий по стробирующему сигналу SYN информацию о состоянии (выполняемом цикле) МП, который выдается на шину данных в начале каждого цикла. Системный контроллер содержит также дешифратор, выдающий в зависимости от кода слова состояния системные сигналы магистрали управления IORD (чтение из внешнего устройства ВУ), IOWR (запись в ВУ), MRD (чтение из памяти), MWR (запись в память), INTA (режим прерывания). Эти сигналы образуют шину управления и используются блоком управления картой памяти БУКП.

Хранение программы и данных необходимых для работы микроЭВМ, осуществляется в постоянном и оперативном запоминающих устройствах (ПЗУ и ОЗУ) блока памяти. Каждая ячейка памяти содержит 1 байт (8 бит) информации и адресуется в микро-ЭВМ четырехразрядными шестнадцатиричными числами от 0000 H до FFFF H. Картой памяти называется информация о распределении адресного пространства данной микро-ЭВМ.

 

 

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

Каждая команда содержит операцию и операнд. Операция указывает какое действие необходимо выполнить микропроцессору, а операнд – на что направлено или с чем произвести это действие. Например, для того чтобы переслать содержимое регистра С в регистр А (аккумулятор), необходимо по шине данных ввести в процессор двоичный (бинарный) код команды 01111001 из соответствующей ячейки памяти. Операнды распологаются в команде следующим образом. Три младших разряда кода команд указывают номер регистра-источника, а следующие три – регистра-приемника (111) информации. Регистры B, C, D, E, H, L, кодируются двоичными числами соответственно от 000

до 100. Код 110 обозначает ячейку ЗУ, адрес которой указан в регистровой паре HL, состоящей из регистров H и L, а код 111 является кодом аккумулятора. Два старших разряда кода команды являются операцией и указывают на то, что эта команда является однобайтовой (по размеру) командой пересылки (по содержанию).

Команды, также,могут быть двух или трех байтовыми. Например, для того чтобы к содержимому аккумулятора прибавить число 0000 1010 с учетом переноса при переполнении старшего разряда и результат занести в аккумулятор, необходима команда, код которой 1100 1110 0000 1010 - эта команда является двухбайтовой.

Двоичным кодом первого байта можно представить 256 двоичных комбинаций. Почти столько же команд имеет и МП БИС КР580ВМ80 (некоторые комбинации не используются). Естественно, что запомнить более 200 кодов команд, представленных в виде набора едениц и нулей, почти невозможно. Поэтому каждому коду команды ставиться в соответствие мнемоническое название (мнемоника) команды, которая является сокращением от английских слов, описывающих ее действие, и регистрам с помощью букв от A до F, H, L, регистровых пар BC,DE, HL и PSW (образованной аккумулятором А и регистром признаков F), SP - указателя стека и CP - счетчика команд, c которым производятся операции в данной команде.

Например, приведенная выше однобайтовая команда в мнемонике будет иметь такой вид: MOV A,C (от английского MOVE-передвигать, перемешать). Mнемоника команд МП БИС КР580ВМ80 приведена в таблице 1. При записи программы все числа и адреса представляются в шестнадцатиричной системе счисления. Поэтому шестнадцатеричный (гексадецимальный) код данной команды будет представлен как 79 Н. Рассмотрим простейшую программу (Программа1) извлечения числа из ячейки памяти с адресом 0B00 Н, инвертирования его и записи в ячейку с адресом 0B01 Н.

Программа 1 (в мнемокодах)

 

Мнемокод Коментарий

LDA 0В00 Получить число из ячейки с адресом 0B00

CMA Инвертировать число

STA 0В01 Записать результат в ячейку ЗУ с адресом 0B01

RST 1 Прервать выполнение программы

 

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

 

Программа 1 (размещение по адресам памяти)

 

Адрес Коды Комментарий

0800 3А Код команды LDA

0801 10 Младший байт адреса

0802 08 Старший байт адреса

0803 2F Код команды CMA

0804 32 Код команды STA

0805 11 Младший байт адреса

0806 08 Старший байт адреса

0807 CF Код команды RST 1

 

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

 

Программа 1 (общий вид записи).

 

Адрес Мнемокод Машинный код Комментарий

0800 LDA, 0B00 3А 00 0B;Получить число

0803 CMA 2F;Инвертировать число

0804 STA, 0B01 32 01 0B;Записать число в память

0807 RST 1 CF;Прервать программу

 

В данной программе используется прямой способ адресации. Рассмотрим программу аналогичную программе 1 с использованием косвенного способа адресации (программа 2).

 

Программа 2.

 

Адрес Мнемокод Машинный код Комментарий

0800 LXIH,0B00 21 00 0B;записать в регистры H,L

;число 0B00

0803 MOV A,M 7Е;извлечь число из адреса,

;указанного в регистрах H и L

0804 CMA 2F;инвертировать число

0805 INX M 23;увеличить на одно число в

;регистрах H и L

0806 MOV M,A 77;записать число по адресу,

;указанному в регистрах H,L

0807 RST 1 CF;прервать программу.

 

<== предыдущая лекция | следующая лекция ==>
Однокристальный микропроцессор | С одним операндом
Поделиться с друзьями:


Дата добавления: 2013-12-13; Просмотров: 614; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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