Автор работы: Пользователь скрыл имя, 11 Января 2014 в 17:55, курс лекций
Работа содержит конспекты лекций по дисциплине "Микропроцессорные устройства".
Язык АССЕМБЛЕР наиболее широко распространен для программирования МП. В языке АССЕМБЛЕР каждая машинная команда МП обозначается мнемоническим символом, представляющим собой сочетание трех или четырех букв, являющихся первыми буквами полной записи наименования этих команд на английском языке.
Очевидно, что мнемоническое (символическое) кодирование названия и содержания команд легче запоминается, чем ничего не говорящее сочетание нулей и единиц, представляющее собой двоичное кодирование. Язык АССЕМБЛЕР дает инженеру возможность писать инструкции в мнемонической форме, так что названия инструкций могут ассоциироваться с реально выполняемыми операциями.
Мнемокод - последовательность букв, заменяющая полное слово или фразу, удобную для запоминания. АССЕМБЛЕР - это язык мнемокодов.
Трансляция - замена символов и синтаксиса исходного языка программирования символами и синтаксисом другого языка с сохранением содержания переводимых выражений.
Ассемблер – служебная программа, преобразующая исходную программу, написанную на языке мнемокодов и символических адресов в программу в двоичных кодах. При этом создается объектная программа - программа на машинном языке, получаемая в результате трансляции исходной программы.
Объектный код - команды программы, представленные на машинном языке. Одной команде языка АССЕМБЛЕР соответствует одна машинная команда. Трансляция с языка АССЕМБЛЕР в машинный код называется ассемблированием.
Чтобы упростить и ускорить программирование микро – ЭВМ (МП), используют языки высокого уровня. Перевод текста программ с языков высокого уровня на язык машинных команд осуществляется транслятором.
В этом случае транслятор может работать в одном из двух режимов: либо в режиме интерпретатора, либо в режиме компилятора.
Транслятор – это программа перевода исходной программы на языке высокого уровня в объектную программу на машинном языке. Различают трансляторы интерпретирующего типа и компилирующего типа.
Интерпретатор работает в процессе выполнения программы. Каждая строка программы на языке высокого уровня преобразуется в машинные команды непосредственно перед её выполнением.
Компилятор осуществляет перевод программы с языка высокого уровня в машинные команды и эта программа в двоичных кодах помещается в память, а затем происходит ее реализация.
Компилятор во многом похож на ассемблер. Но если ассемблер преобразует в машинный код команды на языке АССЕМБЛЕРА, то компилятор производит те же действия над командами на языках высокого уровня.
Конфигурация системы транслирующих программ показана на рисунке.
Программа, подаваемая на вход транслятора, называется исходной программой. Выходом является двоичная форма программы, называемая объектной программой. Каждая из этих форм программы является языком, поскольку имеется некоторый набор синтаксических правил и заранее заданный набор символов.
Компилятору не всегда отдается предпочтение. Следует учитывать, что у микро – ЭВМ весьма ограниченный объем памяти. Программы с компилятором выполняются быстрее, чем в случае применения интерпретатора. Однако программа-компилятор значительно больше, чем программа - интерпретатор и требует для своего разрешения больший объем памяти. Только большие ЭВМ всегда позволяют использовать компиляторы. Компилятор в микро – ЭВМ используется редко, так как компилятор для одного и того же языка значительно сложнее интерпретатора и хранение программ компилятора в памяти микро – ЭВМ увеличивает объем памяти и удорожает стоимость систем.
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 |
КОП
Это команда MOV B,A её код 47.
Команда пересылки содержимого регистра А в регистр В, в которой использована регистровая адресация.
Адрес регистра А – 111, адрес регистра В – 000. Адреса источника и приемника данных встроены в команду и таким образом указаны неявно. Команды с регистровой адресацией отличаются наибольшей величиной быстродействия.
Под номера регистров в поле команды отводятся определенные разряды: три младших (В 2 – В 0 ) кодируют номер регистра – источника, содержащего операнд, а три средних (В 5 - В 3 ) - номер регистра – приемника, в который засылается результат операции.
Принято следующее кодирование регистров:
000 – регистр В
001 – регистр С
010 – регистр D 110 – ячейка памяти
011 - регистр Е
Неявная адресация.
Примерами команд с неявной адресацией могут служить следующие команды: 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 байт. Первый байт предназначен для КОП, второй и третий - для адреса.