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




НазваниеПрограммирование микропроцессора (Лекция)
страница1/3
Дата публикации17.10.2016
Размер9,76 Kb.
ТипЛекция
dopoln.ru > Информатика > Лекция
  1   2   3

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

Программирование микропроцессора (Лекция)
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. Адреса источника и приемника данных встроены в команду и таким образом указаны неявно. Команды с регистровой адресацией отличаются наибольшей величиной быстродействия.

Под номера регистров в поле команды отводятся определенные разряды: три младших (В 2 – В 0) кодируют номер регистра – источника, содержащего операнд, а три средних (В 5 - В 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 байт. Первый байт предназначен для КОП, второй и третий - для адреса.

Адрес указывает область памяти, в которой находятся подлежащие обработке данные. Совместное использование 2 и 3 байтов команды позволяет адресоваться к любой из 65536 областей памяти.

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

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

Примером использования такой адресации может служить команда записи содержимого аккумулятора в память по адресу 000ЕН. Этот адрес занимает второй и третий байты команды. Байты команды показаны на рисунке.


КОП М А

0ЕН

00Н


2 – й байт

3 – й байт
  1   2   3

Похожие:

Программирование микропроцессора (Лекция) iconЛекция. Архитектура микропроцессора лекция. Архитектура микропроцессора
Потребитель, воспринимает мп как нечто цельное, имеющее внешние потребительские свойства, заложенные в его архитектуру
Программирование микропроцессора (Лекция) iconЛекция. Периферийные бис микропроцессора К580
Предназначен для организации ввода и вывода в параллельном коде. Структурная схема
Программирование микропроцессора (Лекция) iconОтладочный модуль на базе однокристального микропроцессора к1801ВМ1...
Уфрпзу. Модуль предназначен для первоначального ознакомления с бис микропроцессора К1801ВМ1, его архитектурой и системой команд....
Программирование микропроцессора (Лекция) iconЛекция I и проблема языка и сознания лекция II 31 слово и его семантическое...
Монография представляет собой изложение курса лекций, про* читанных автором на факультете психологии Московского государственного...
Программирование микропроцессора (Лекция) iconПрограмма элективного курса «Программирование»
...
Программирование микропроцессора (Лекция) iconПомощь начинающему программисту гимназии №1. Базовый уровень. Программирование
Программирование – это процесс создания алгоритма решения задачи и его представление в виде программы
Программирование микропроцессора (Лекция) iconУрок 9 класс Тема: «Программирование. Создание конвертера длин» Учитель: Чежегова О. И
О – Овладение практическими способами работы с информацией: поиск, анализ, преобразование. Закрепить знания по теме «Объектно-ориентированное...
Программирование микропроцессора (Лекция) iconЛекция Введение 1 Лекция Тема «Основные элементы компьютерных технологий»
Лекция Тема «Особенности внедрения компьютерных технологий в зависимости от комплектации учебного заведения техническим и программным...
Программирование микропроцессора (Лекция) iconКаширина Н. В., Маран М. М. Программирование на языке C
Программирование на языке C
Программирование микропроцессора (Лекция) iconЛекция, ее роль и место в вузе. Вузовская лекция главное звено дидактического...
Совершенствование знаний, формирование умений и навыков: семинар, спецсеминар, практикум, лабораторная работа, самостоятельная работа,...
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
dopoln.ru
Главная страница