Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


ПРОЕКТИРОВАНИЕ СИСТЕМ НА МИКРОПРОЦЕССОРАХ



ПРОЕКТИРОВАНИЕ СИСТЕМ НА МИКРОПРОЦЕССОРАХ

И МИКРОКОНТРОЛЛЕРАХ

 

Допущено Советом Учебно-методического объединения

по образованию в области менеджмента в качестве учебного пособия

по специальности «Управление и информатика в технических системах» и направления «Управление в технических системах»

 

 

Тюмень

ТюмГНГУ

2014


УДК  681.51

ББК  32.965

 

 

 
Рецензенты:

доктор технических наук М.В. Семухин

кандидат технических наук В.П. Кузнецов

 

 

Кузяков О.Н.

     Проектирование систем на микропроцессорах и микроконтроллерах [Текст]: учебное

         пособие / О.Н. Кузяков. – Тюмень: ТюмГНГУ, 2014. – 104 с.

 

ISBN 978-5-9961-0847-3

 

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

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

Предназначено для студентов технических направлений и специальностей, в частности, 220400.62, 220400.65 – Управление в технических системах.

 

 

                                                                                                         

УДК  681.51

ББК  32.965

 

ISBN 978-5-9961-0847-3     © Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Тюменский государственный нефтегазовый университет», 2013

Содержание

Введение………………………………………………………………………………….

4
1.

Микропроцессоры…………………………………………………………………..

7
  1.1.

Состав микропроцессорного комплекта БИС серии К1810………………

7
  1.2.

Сегментация памяти и вычисление адресов в микропроцессоре К1810ВМ86…………………………………………………………………..

  7
  1.3.

МП К1810ВМ86 (INTEL 8086)……………………………………………..

9
  1.4.

Особенности защищенного режима МП INTEL 8086…………………….

11
  1.5.

Структура МП INTEL 8086…………………………………………………

11
  1.6.

Система прерываний в МП INTEL 8086…………………………………...

13
  1.7.

Примеры конфигураций МПС на базе центрального процессора (ВМ86) и сопроцессора ввода/вывода (ВМ89)……………………………………...

  14
  1.8.

Адресация к памяти ЦП…………………………………………………….

16
  1.9.

Форматы команд……………………………………………………………..

17
  1.10.

КЭШ – память и ее особенности……………………………………………

19
  1.11.

Функциональная схема подключения центрального процессора и сопроцессора…………………………………………………………………

  24
  1.12.

Принцип построения МП на базе К1810ВМ86, включенного в максимальном режиме……………………………………………………………..

  25
  1.13.

Адресное пространство МП………………………………………………...

26
  1.14.

Особенности МП К1810ВМ88 или Intel 8088……………………………...

28
  1.15.

Примеры проектирования систем на базе микропроцессора К1810ВМ86

28
2.

Микроконтроллеры…………………………………………………………………..

32
  2.1.

Микроконтроллер КР1816ВЕ51 (Intel 8051АН)……………………………

32
  2.2.

Характеристика основных компонентов МК51……………………………

33
  2.3.

Последовательный интерфейс………………………………………………

39
  2.4.

Таймер/счетчик……………………………………………………………….

39
  2.5.

Система прерываний МК 51………………………………………………...

42
  2.6.

Совмещение адресного пространства МК51……………………………….

44
  2.7.

О собенности поведения МК при подаче сигнала сброса………………….

44
  2.8.

Доступ к внешней памяти…………………………………………………...

45
  2.9.

Программирование МК……………………………………………………..

45
  2.10.

Запись бита защиты………………………………………………………….

46
  2.11.

Режим пониженного энергопотребления………………………………….

47
  2.12.

Согласование последовательного порта МК с интерфейсом RS-232С…..

47
  2.13.

Система команд в К51……………………………………………………….

48
  2.14.

Схема подключения МК к клавиатуре и дисплею с использованием контроллера клавиатуры и дисплея…………………………………………

  52
  2.15.

Расширители, подключаемые к микроконтроллеру……………………….

53
3.

Примеры проектирования системы управления на микроконтроллерах………...

56
  3.1.

Проектирование микропроцессорной системы программного управления на микроконтроллере К1816ВЕ51……………………………………...

  56
    3.1.1.

Разработка структурной схемы……………………………………..

55
    3.1.2.

Разработка принципиальной схемы системы………………………

56
    3.1.3.

Разработка алгоритма работы системы…………………………….

60
  3.2.

Проектирование  цифрового спенктроанализатора аналогового сигнала на микроконтроллере АTmega 8

 

62  
   

3.2.1.

Описание микросхем системы……………………………………. 62
   

3.2.2.

Разработка структурной схемы……………………………………. 65
   

3.2.3.

Проектирование принципиальной схемы системы………………. 65
   

3.2.4.

Проектирования блок-схемы алгоритма и листинг программы... 66

3.3.

Проектирование устройства для переключения слайдов на микроконтроллере Atmega 328P

74  
   

3.3.1.

Протокол передачи данных NEC ………………………………… 76
   

3.3.2.

Разработка структурной схемы ………………………………….. 78
   

3.3.3.

Разработка принципиальной схемы ……………………………… 79
   

3.3.4.

Разработка алгоритма работы ……………………………………. 79
   

3.3.5.

Листинг программы для МК ……………………………………... 82
   

3.3.6.

Листинг программы для ПК ……………………………………… 83
  4.

Вопросы для самопроверки

88

Список литературы……………………………………………………………………….

95
           

Введение

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

Существующую микропроцессорную систему можно описать на любом известном уровне представления, но в начальной стадии проектирования ее можно описать только на концептуальном уровне. В процессе разработки системы происходит переход от одного уровня ее представления к другому, более детальному. Каждая абстракция несет в себе только информацию, которая соответствует данному уровню, и не содержит каких-либо сведений относительно более низких уровней. Микропроцессорная система может быть описана, например, на одном из следующих уровней абстрактного представления:
1) " черный ящик"; 2) структурный; 3) программный; 4) логический; 5) схемный.

На уровне " черного ящика" микропроцессорная система описывается внешними спецификациями; перечисляются внешние характеристики.

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

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

Логический уровень присущ исключительно дискретным системам. На этом уровне выделяются два подуровня: переключательных схем и регистровых пересылок. Подуровень переключательных схем образуется вентилями и построенными на их основе операторами обработки данных. Переключательные схемы подразделяются на комбинационные и последовательностные; первые, в отличие от последних, не содержат запоминающих элементов. Поведение системы на этом уровне описывается алгеброй логики, моделью конечного автомата, входными/выходными последовательностями 1 и 0. Комбинационные схемы представляются таблицей истинности, в которой каждому входному набору значений сигналов ставится в соответствие набор значений сигналов на выходах. Последовательностные схемы могут описываться диаграммами или таблицами входов/выходов, в которых определены взаимно однозначные соответствия между входами схемы, внутренними состояниями (комбинациями значений элементов памяти) и выходами. Подуровень регистровых пересылок характеризуется более высокой степенью абстрагирования и представляет собой описание регистров и передачу данных между ними. Он включает в себя две части: информационную и управляющую. Информационная часть образуется регистрами, операторами и путями передачи данных. Управляющая часть определяет зависящие от времени сигналы, инициирующие пересылку данных между регистрами.

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

В жизненном цикле микропроцессорной системы, как любой дискретной системы, выделяются три стадии: проектирование, изготовление и эксплуатация. Каждая из стадий подразделяется на несколько фаз, для которых существуют вероятности возникновения конструктивных или физических неисправностей, приводящих систему в неработоспособное состояние. Поэтому на каждой фазе необходимы процедуры тестового контроля, направленные на обнаружение и локализацию неисправностей. Процедура тестового контроля может быть определена как проведение экспериментов с " черным ящиком". Дискретная система любой сложности или часть такой системы может рассматриваться как " черный ящик" с множеством входов и выходов. Правильность функционирования этого " черного ящика" должна устанавливаться путем подачи входных сигналов и наблюдения ответных выходных сигналов системы. В тех случаях, когда поведение " черного ящика" отличается от нормального, характеризуемого его спецификацией или представлениями человека, говорят о наличии ошибки. Ошибка вызывается некоторой неисправностью, представляющей собой некорректное состояние внутри " черного ящика". Неисправности классифицируют в соответствии с их причинами: физическая, если причиной ее служат либо дефекты элементов, либо физическое воздействие окружающей среды; субъективная (внесенная, нефизическая), если ее причиной служат ошибки проектирования, неправильный монтаж элементов, грубые ошибки оператора. Физические неисправности - непредусмотренные, нежелательные изменения значения одной или нескольких логических переменных в системе. Субъективные неисправности - конкретные проявления недостатков программного и аппаратного обеспечения и неправильных действий оператора, имеющих место при выполнении дискретной системой предписанных спецификацией действий.

Под субъективными неисправностями подразумеваются неисправности нефизические, вызванные недостатками различных схем, конструкций, программ, средств эксплуатации - компиляторов, ассемблеров, программ автоматизации проектирования, инструкции по эксплуатации, процедур и средств контроля и т.д. Субъективные неисправности делят на проектные и интерактивные.

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

Ошибка - проявление неисправности (физической или субъективной). В зависимости от уровня иерархической структуры системы термин " ошибка" может иметь различный смысл. Так, для дискретного устройства он означает появление неверных двоичных сигналов (" 0" вместо " 1" и " 1" вместо " 0" ); для программы ошибка означает отклонение поведения программы от заданного, приводящее к выдаче неверных результатов.

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

Дефекты - физические изменения параметров компонентов системы, выходящие за допустимые пределы. Их называют сбоями, если они носят временный характер, и отказами, если они постоянны.

Существует такая причинно-следственная связь:   

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

 

 

МИКРОПРОЦЕССОРЫ

К1810ВМ86

Пространство памяти емкостью 1 Мбайт представляется как набор сегментов, определяемых программным путем. Сегмент состоит из смежных ячеек памяти и является независимой и отдельно адресуемой единицей памяти емкостью 64 Кбайт. Каждому сегменту программой назначается начальный адрес, являющийся адресом первого байта сегмента в пространстве памяти. Начальные адреса четырех сегментов, выбранных в качестве текущих, записываются в сегментные регистры CS, DS, SS и ЕS, тем самым фиксируются текущие сегменты кода (программы), данных, стека и дополнительных данных. Для обращения к командам и данным, находящимся в других сегментах, необходимо изменять содержимое сегментных регистров, что позволяет использовать все пространство памяти емкостью 1 Мбайт. Сегментные регистры инициализируются в начале программы путем засылки в них соответствующих констант. Частный случай загрузки всех сегментных регистров нулями приводит к организации памяти, характерной для микропроцессора КР580ВМ80, т.е. фактически к отказу от сегментации памяти.

В сегментном регистре хранится 16 старших битов 20-битового начального адреса сегмента. Четыре младших бита адреса принимаются равными нулю и дописываются справа к содержимому сегментного регистра при вычислении физических адресов ячеек памяти. Поэтому начальные адреса сегментов всегда кратны 16. Поскольку других ограничений на размещение сегментов в памяти нет, сегменты могут быть соседними (смежными), неперекрывающимися, частично или полностью перекрывающимися. Физическая ячейка памяти может принадлежать одному или нескольким сегментам.

Физический адрес ячейки памяти представляет 20-битовое число в диапазоне 0 – FFFFF, которое однозначно определяет положение каждого байта в пространстве памяти емкостью 1 Мбайт. В начале каждого цикла шины, связанного с обращением к памяти, физический адрес выдается на шину адреса и сопровождается сигналом ALE. Так как МП ВМ86 является 16-битовым, то все операции при вычислении физического адреса производится с 16-битовыми адресными объектами.

Логический адрес ячейки памяти состоит из двух 16-битовых беззнаковых значений: начального адреса сегмента, который называется также просто базой или сегментом, и внутрисегментного смещения, которое определяет расстояние от начала сегмента до этой ячейки. Для вычисления физического адреса база сегмента сдвигается влево на 4 бит и суммируется со смещением, как показано на рисунке 26, где также приведены возможные источники компонентов логического адреса (ЕА – эффективный адрес, вычисляемый в соответствии с заданным способом адресации).

 

Рис. 1.1

 

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

Источники логического адреса для различных типов обращения к памяти приведены в таблице 1.

                                                                                    Табл. 1.

 

Тип обращения к памяти Сегмент (по умолчанию) Вариант Смещение
Выборка команды CS Нет IP
Стековая операция SS Нет SP
Переменная DS CS, SS, ES EA
Цепочка-источник DS CS, SS, ES SI
Цепочка-приемник ES Нет DI
ВР как базовый регистр ES CS, SS, DS EA

 

Команды всегда выбираются из текущего сегмента кода в соответствии с логическим адресом CS: IP. Стековые команды всегда обращаются к текущему сегменту стека по адресу SS: SP. Если при вычислении адреса ЕА используется регистр ВР, то обращение производится также к стековому сегменту. В последнем случае принцип стека «первый пришел – последний вышел» игнорируется и ячейки стекового сегмента рассматриваются как ОЗУ с произвольной выборкой, что обеспечивает большую гибкость в использовании этих ячеек.

Операнды, как правило, размещаются в текущем сегменте данных, и обращение к ним организуется по адресу DS: EA. Однако программист может заставить МП обратиться к переменной, находящейся в другом текущем сегменте. Считается, что цепочка-источник находится в текущем сегменте данных, а ее смещение задается регистром SI. Цепочка-получатель обязательно располагается в текущем дополнительном сегменте, а смещение берется из регистра DI. Команды обработки цепочек автоматически модифицируют содержимое индексных регистров SI и DI по мере продвижения по цепочке в направлении, соответствующем флагу DF.

Смена сегментного регистра в соответствии с вариантами, указанными в таблице 4, осуществляется с помощью однобайтового префикса замены сегмента 001SR110, который ставится перед первым байтом команды. Двухбитовое поле SR содержит код сегментного регистра, используемого для вычисления физического адреса в данной команде: 00 – регистр ES; 01 – СS, 10 - SS; 11 – DS. В мнемонических обозначениях команд смена сегмента отражается следующим образом: MOV AX, CS: [BX] - пересылка в АХ слова из кодового сегмента со смещением из ВХ; ADD ES: ROW[DI], ВL - сложение байта из дополнительного сегмента (со смещением + ROW) с содержимым регистра и размещение результата в ОЗУ на место первого слагаемого.

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

Стек, как обычно, организуется в ОЗУ, и его положение определяется содержимым регистров SS и SР. Регистр SS хранит базовый адрес текущего сегмента стека, а регистр SР указывает на вершину стека, т.е. содержит смещение вершины стека в стековом сегменте. При каждом обращении к стеку пересылается одно слово, причем содержимое SР модифицируется автоматически: при записи (включении) в стек оно уменьшается на два, при чтении (извлечении) из стека – увеличивается на два.  

 

Структура МП Intel 8086

Микропроцессор состоит из трех частей:

1) операционное устройство;

2) устройство сопряжения с шиной;

3) устройство управления.

 

Структура  МП Intel 8086представлена на рисунке 1.3.

На рисунке под номером I обозначено операционное устройство, которое предполагает набор регистров:

SР – указатель стека;

ВР – регистр указателя базы стека;

DI, SI – индексные регистры приемника/источника соответственно;

RGi – регистры временного хранения;

RGF – регистр флагов;

 
Сумматор


                                                                    Рис. 1.3

 

РОН – регистры общего назначения предназначены для временного хранения;

SР, ВР, DI, SI – для хранения адресной информации и выполнения специальных функций;

АН, АL – выполняют функцию аккумулятора;

ВН, ВL – регистр указателя базы данных;

СН, СL – счетчик циклов;

DН, DL – хранение данных.

Устройство сопряжения с шиной обозначено II, а устройство управления – III.

Внешние прерывания

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

 
 
                                                         Рис. 1.5

 

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

Программные прерывания

Данные прерывания осуществляются по 2-байтной команде INTn или по однобайтной команде INT3. Для двухбайтной команды тип прерывания указывается во втором байте. Однобайтное прерывание INT3 определено как прерывание в контрольной точке (точке разрыва). Такой точкой может быть любое место в программе, где необходимо прервать выполнение программы и выполнить какие-то действия.

Внутренние прерывания

Внутренние прерывания характеризуются типом, который либо предопределен, либо содержится в коде команды.

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

Если МП переведен в пошаговый режим, то он реагирует на внешние и внутренние прерывания.

Таким образом, на поступающий запрос на прерывание INTR МП реагирует выполнением последовательно двух машинных циклов:

1) в первом машинном цикле МП указывает контроллеру прерываний, что запрос был воспринят и требуется обслуживание;

2) во втором машинном цикле контроллер прерываний выдает на шину данных байт данных, который содержит тип прерывания (0÷ 255).

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

Таким образом, всего 256 типов прерывания. Каждый вектор занимает четыре ячейки памяти: два младших адреса – для записи смещения в сегменте, два старших – для записи начального смещения (базовый адрес сегмента).

                       

                                                       Табл.1.2

Адреса векторов в памяти

003FF 003FС   Тип 255
 
 
 
00008 Тип 2
00004 Тип 1
00000 Тип 0

 

Примеры конфигураций МПС на базе центрального процессора (ЦП) ВМ86 и сопроцессора ввода/вывода (СП) ВМ89

 

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

 

 

 


                                                                         

 

 

 
Рис. 1.6 Использование шин МП

 

 


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

Отличие между шинами в формируемых управляющих сигналах.

Часть устройств ввода/вывода могут иметь адреса, размещенные в системном пространстве, поэтому говорят, что эти устройства ввода/вывода отображены на память, т.е. данные устройства ввода/вывода реагируют на 20-битные адреса, закрепленные за ними, и управляются сигналами МRD, MWR.

Аналогично, часть памяти может быть размещена в пространстве ввода/вывода, т.е. память оказывается отображенной на пространство ввода/вывода, т.е. данные ячейки могут реагировать на 16-битные адреса и команды для устройства ввода/вывода.

Указанные шины функционируют по-разному, в зависимости от конфигурации системы, где есть и сопроцессоры.

Различают две конфигурации (рис.1.7):

a) местная;

б) удаленная.

                                                                         

В местной конфигурации ЦП и СП совместно используют шины.

Арбитраж осуществляется по линии запроса, причем наиболее приоритетным является центральный процессор.

 

 


                                                                         

 

 

 

 
                Рис. 1.7 Виды конфигураций систем

 

 


В местной конфигурации сопроцессор и центральный процессор совместно

Если подключены два сопроцессора, то при одновременном запросе ВМ87 и ВМ89 предпочтение отдается ВМ89, но если в момент запроса шина используется ВМ87, то запрос не будет подтверждаться до окончания счета ВМ87.

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

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

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

Адресация к памяти ЦП

Структурно память микропроцессора делится на два блока: с четными и нечетными адресами, как это показано на рисунке 1.8.

 

 

                              Табл. 1.3 

                  Варианты пересылок по шине данных

 

ВНЕ А0  
0 0 пересылается слово
1 0 пересылается только младший байт
0 1 пересылается только старший байт
1 1 устройство не выбрано

 

Рис. 1.8 Механизм адресации к памяти

 

                                                                                                              

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

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

Микропроцессор К1810ВМ86 относится к классу однокристальных с фиксиро­ванной системой команд.

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

По функциональному признаку система команд ВМ86 разбивается на шесть групп: пересылка данных, арифметические операции, логические операции и сдвиги, передача управления, обработка цепочек и управление микропро­цессором.

При рассмотрении системы команд удобно обращать­ся к программной модели МП, содержащей его функциональные узлы (ре­гистры), доступные программисту (рис. 2.1). Общие регистры разбиты на две группы: 1) группа HL, состоящая из регистров АХ, ВХ, СХ, DX, которые пред­назначены прежде всего для хранения данных и допускают раздельную адреса­цию их старших (Н) и младших (L) половин; 2) группа PI, содержащая ука­зательные регистры ВР, SP и индексные регистры SI, DI, в которых обычно хранится адресная информация. Для общих и сегментных регистров указаны коды, используемые в форматах команд для их адресации. Регистр флагов F и указатель команд IP адресуются в командах неявно.

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

В общем виде формат двухоперандной команды приведен на рис. 1.9, а, где штриховыми линиями обозначены необязательные байты команды. Первый байт команды содержит код операции СОР и два однобитовых поля: направле­ния d и слова w. При d = l осуществляется передача операнда или результата операции в регистр, который определяется полем reg второго байта команды; при d = 0 — передача из указанного регистра. Поле w идентифицирует тип (разрядность) операндов: при w=l команда оперирует словом, при w = 0 — байтом.

 

 


Второй байт, называемый постбайтом, определяет участвующие в опера­ции регистры или регистр и ячейку памяти. Постбайт состоит из трех полей: md — режим, reg — регистр, r / m — регистр/память. Поле reg определяет опе­ранд, который обязательно находится в регистре МП и условно считается вторым операндом. Поле r / m определяет операнд, который может находиться в регистре или памяти и условно считается первым.

Способ кодирования внут­ренних регистров МП в полях reg и r / m представлен в табл. 1.4.

                                                                            Таблица 1.4


Поделиться:



Последнее изменение этой страницы: 2020-02-17; Просмотров: 191; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.107 с.)
Главная | Случайная страница | Обратная связь