Микропроцессорные устройства

Автор работы: Пользователь скрыл имя, 11 Января 2014 в 17:55, курс лекций

Краткое описание

Работа содержит конспекты лекций по дисциплине "Микропроцессорные устройства".

Вложенные файлы: 1 файл

mikroprocessornye_ustroistva.doc

— 3.69 Мб (Скачать файл)

Язык  АССЕМБЛЕР  наиболее   широко  распространен  для   программирования МП. В языке АССЕМБЛЕР  каждая   машинная   команда  МП  обозначается   мнемоническим   символом, представляющим  собой   сочетание   трех или   четырех   букв, являющихся   первыми  буквами   полной  записи  наименования этих   команд  на  английском   языке.

Очевидно, что  мнемоническое  (символическое) кодирование  названия  и  содержания  команд  легче  запоминается,   чем  ничего не   говорящее   сочетание нулей  и единиц, представляющее  собой  двоичное  кодирование. Язык АССЕМБЛЕР  дает   инженеру  возможность  писать   инструкции  в  мнемонической  форме, так  что   названия  инструкций   могут   ассоциироваться   с  реально выполняемыми  операциями.

Мнемокод -  последовательность  букв, заменяющая  полное  слово  или  фразу, удобную  для   запоминания. АССЕМБЛЕР -  это  язык  мнемокодов.

Трансляция -  замена  символов  и  синтаксиса  исходного  языка  программирования   символами  и   синтаксисом   другого  языка  с  сохранением  содержания  переводимых   выражений.

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

Объектный код  - команды  программы,   представленные  на  машинном   языке. Одной   команде  языка  АССЕМБЛЕР  соответствует  одна   машинная  команда. Трансляция   с  языка  АССЕМБЛЕР  в  машинный    код  называется  ассемблированием.

Чтобы   упростить   и   ускорить   программирование   микро – ЭВМ (МП), используют   языки   высокого  уровня. Перевод  текста  программ  с  языков  высокого уровня  на  язык  машинных   команд  осуществляется  транслятором.

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

Транслятор – это  программа  перевода  исходной  программы   на  языке  высокого  уровня  в   объектную  программу  на  машинном  языке. Различают    трансляторы  интерпретирующего   типа  и   компилирующего  типа.

Интерпретатор  работает   в  процессе  выполнения   программы.  Каждая  строка  программы   на  языке   высокого   уровня   преобразуется   в  машинные   команды  непосредственно  перед её выполнением.

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

Компилятор   во   многом  похож  на  ассемблер. Но  если  ассемблер  преобразует  в  машинный  код  команды  на  языке АССЕМБЛЕРА, то  компилятор  производит  те же  действия  над   командами  на  языках  высокого  уровня.

Конфигурация  системы   транслирующих   программ  показана  на  рисунке.


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

 

Компилятору   не  всегда   отдается  предпочтение. Следует  учитывать, что   у  микро –  ЭВМ  весьма  ограниченный   объем   памяти. Программы с компилятором  выполняются   быстрее, чем в   случае  применения   интерпретатора. Однако программа-компилятор значительно  больше, чем  программа  - интерпретатор   и  требует  для  своего  разрешения  больший  объем  памяти.  Только  большие  ЭВМ  всегда   позволяют   использовать   компиляторы.  Компилятор  в микро – ЭВМ  используется  редко, так  как   компилятор  для   одного   и  того  же   языка  значительно   сложнее  интерпретатора  и  хранение   программ   компилятора  в  памяти   микро – ЭВМ  увеличивает   объем   памяти  и   удорожает   стоимость  систем.

 

4.2 Структура  и   типы  команд.

Команда  МП -  это   такое  двоичное   слово,  которое,  будучи   прочитано   микропроцессором,   обеспечивает  выполнение  им   определенных   действий. Другие,  отличные  от  команд  двоичные   знаки подобных  действий  в МП  вызывать  не  могут.

Группа   команд, которые  может  выполнять   данный  МП, называется   его  составом  команд.

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

Длина  команды  8 – ми  разрядного   МП  может   быть  8, 16, или  24  бит,  но   в  любом   случае   будет   кратной  длине   слова  данных.

Команды  МП  должны   содержать   информацию    двух   видов.  Во – первых, команда  должна   сообщить  МП,  что  делать.  Во – вторых   команда    должна  указывать  адрес (месторасположение)  обрабатываемых  данных. Поэтому   команда    состоит   из  двух  частей: кода   операции (КОП) и операнда.

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

Адрес  указывает  местоположение  данных, участвующих  в операции.

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

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

Формат   машинной  команды  показан  на рисунке.  Из рисунка  видно, что   длина   команды  8 – разрядного МП  может  равняться  8, 16  или  24 бит.

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


 

В большинстве случаев названия команд МП  характеризуют их назначение. После ознакомления с описанием команд необходимо усвоить следующие характеристики:

1. Назначение.

2. Используемые способы адресации.

3. Мнемоническое обозначение.

4. Представление действий, выполняемых командой, с помощью логических символов.

5. Длину команды.

6. Воздействие результата выполнения  команды на регистр состояния  МП.

 

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

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

Тип   обращения  к  данным  называют  способом  адресации.  Способ   адресации -  способ  определения   места   операнда  команды.

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

Рассмотрим  пять основных  способов адресации: неявная, регистровая, непосредственная, прямая  и  косвенная.

Два первых способа адресации (регистровый  и  неявный) касаются  операндов,  расположенных  в самом  МП. Три  последних способа адресации  (непосредственный, прямой  и  косвенный)  относятся  к операндам, расположенным  вне  МП, т.е. в   ячейках  памяти  или  портах ВВ.

Разные  ЭВМ  имеют  различные   способы  адресации. Набор   способов  адресации   зависит   от  специализации  ЭВМ. Кроме   пяти   основных  в ЭВМ  применяют   и  другие   способы  адресации. Например: страничная  адресация, индексная  адресация, относительная адресация.

 

Регистровая   адресация.

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

 

Пример.   На  рисунке команда  пересылки данных  из  регистра А  в регистр В  состоит  из  кода  операции, адреса  источника  данных (регистр А)  и  адресат  приемника   данных ( регистр В).

 

   0

    1

        0

     0

       0

        1

    1

      1   


                                                    4                                               7


 

           КОП                             адрес  регистра В                    адрес  регистра А

Это   команда  MOV B,A  её  код 47.

 

Команда   пересылки  содержимого  регистра А  в   регистр В, в   которой  использована  регистровая   адресация.

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

Под  номера   регистров  в  поле  команды  отводятся  определенные   разряды:  три  младших (В 2 – В 0 )  кодируют  номер регистра – источника, содержащего  операнд,  а  три  средних (В - В 3 )  -  номер регистра – приемника, в который засылается  результат операции.

 

Принято   следующее  кодирование  регистров:

 

000 – регистр В                         100  - регистр Н

001 – регистр С                         101  - регистр L

010 – регистр D                         110 – ячейка  памяти

011 -  регистр Е                          111 - аккумулятор

 

Неявная  адресация.

Примерами  команд  с неявной   адресацией   могут    служить   следующие   команды: STC, CMA, NOP.

STC – установить  индикатор  переноса.

CMA – инвертировать содержимое  аккумулятора.

NOP -  нет операций.

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

Например, команда    STC  устанавливает   индикатор   переноса ( CY)   1 без   воздействия   на   другие   регистры  или   индикаторы. Таким образом,  команда STC  относится    только  к   индикатору   переноса  и никакому  другому регистру  или  памяти.


Команды  с  неявной   адресацией  занимают  1 байт  памяти.

 

Непосредственная   адресация.

Код   операции  команды  с  непосредственной  адресацией   размещается в  первом  байте. Сразу   же  за КОП  следуют  данные, занимающие  1  или  2  байт. Эти  данные  берутся   не  из   памяти.  Их  предоставляет    программист при записи   команды.  Следовательно,  при   использовании  данного способа  адресации  не  требуется   указание  адреса  памяти, необходим  только   код  операции,  после  которого   записываются  данные.  Таким  образом, операнд  следует  в    команде  непосредственно  за КОП. Рассмотрим   пример   этого   типа   команд. Команда  загрузить  данные   в SP -  это   трехбайтовая   команда.

2000

КОП  31 Н

2001

0111  0000

2002

000   0010




   младший  байт       загрузить  SP

 

000 0010

 

01110000





 


старший байт

     после  операции

 

В рассматриваемом  случае  2 байт  данных  берутся  в памяти  программы  и помещаются  в   указатель  стека. Младший   байт  01110000  загружен  первым, затем старший   байт  000 0010.

Операции,  задаваемые   первым   байтом   команды   (кодом  операции), МП  выполняет  над   данными, представленными  её  вторым  байтом.

 

Прямая    адресация.

Команды    с  прямой   адресацией  имеют   длину,  равную  2  или 3  байт. Первый  байт  предназначен  для  КОП, второй  и третий -  для   адреса.

Информация о работе Микропроцессорные устройства