Программирование микропроцессора

Автор: Пользователь скрыл имя, 27 Октября 2013 в 08:45, курс лекций

Описание работы

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

Работа содержит 1 файл

programmirovanie_mikroprocessora_lekcia_g2013.doc

— 443.00 Кб (Скачать)

Лекция. Программирование микропроцессора


Программирование микропроцессора (Лекция)


Программирование  микропроцессора (Лекция)

 

1. Языки   программирования

 

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

Машинная  программа  -  программа, написанная  на  машинном  языке.

Программа  -  упорядоченный  список  команд или  операторов, выполняя  которые  микро – ЭВМ  осуществляет  решение  задачи.

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

Операторы  машинного  языка   записываются   в  двоичных  кодах.

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

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

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

Решение  проблемы   разработки  языков  программирования, не  зависящих  от   специфики  ЭВМ, явилась  разработка  алгоритмических   языков, образующих  класс  машинно – независимых   языков.

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

  1. Язык  низкого  уровня – машинный  язык;
  2. Язык  типа АССЕМБЛЕР;
  3. Языки   высокого  уровня: Бейсик, Pascal, Фортран;

Достоинства   программирования  МП  на  машинном  языке:

- минимальный   объем  памяти;

- быстродействие  выполнения   программ, поскольку   не    требуется   времени   для их   трансляции;

Недостатки:

- большая   трудоемкость   составления  программ;

- большая  вероятность   ошибок   и  трудность их  обнаружения; 

- зависимость  от  типа   применяемого  МП.

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

 

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

 

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

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

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

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

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

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

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

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

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

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

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

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

 


 

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

 

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

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

 

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

 

   0

    1

        0

    0

       0

        1

    1

      1   


                                                    4                                               7


 

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

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

 

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

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

Информация о работе Программирование микропроцессора