Файл: Микропроцессорные устройства систем управления.doc

ВУЗ: Не указан

Категория: Решение задач

Дисциплина: Не указана

Добавлен: 27.04.2024

Просмотров: 167

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

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

1. Общая характеристика микропроцессоров.

1.1. Структура микропроцессора и его реализация.

1.2. Классификация современных микропроцессоров и их характеристики.

1.3. Принципы управления микропроцессорами.

1.4. Структура и типы команд микропроцессора.

1.5. Способы адресации информации и прерывание работы в микропроцессоре.

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

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

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

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

Относительная адресация

Адресация с индексированием

Стековая адресация

1.6. Организация ввода и вывода данных в микропроцессоре.

1.7. Система команд микропроцессора.

2. Принципы организации и применения микропроцессорных систем.

2.1. Особенности организации структуры МП-системы.

2.2. Структура МП-системы с общей шиной.

2.3. Интерфейсы МП-систем.

2.4. Применение МП-системы в качестве контроллера и системы сбора данных.

3. Основы программирования микропроцессоров.

3.1. Языки программирования микропроцессоров.

3.2. Программирование на языке ассемблера.

3.3. Средства разработки и отладки прикладных программ.

Средства отладки и диагностирования

Программные средства:

Аппаратно-программные средства:

4. Типовые микропроцессоры и их применение.

4.1. Структура и характеристика типовых МП.

4.3. Примеры написания программ.

5. Мультипроцессорные системы, транспьютеры.

5.1. Классификация систем параллельной обработки данных

Конвейерная и векторная обработка.

Машины типа SIMD.

Машины типа MIMD.

Многопроцессорные машины с SIMD-процессорами.

Многопроцессорные системы с общей памятью

5.2 Мультипроцессорная когерентность кэш-памяти.

5.3. Многопроцессорные системы с локальной памятью и многомашинные системы

5.4. Транспьютеры

3. Основы программирования микропроцессоров.

3.1. Языки программирования микропроцессоров.


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

Если программа составлена на основе системы команд используемого МП, то говорят, что программа написана на языке низкого уровня. Поскольку каждый МП имеет свою систему команд, то языки низкого уровня ориентированы на конкретные МП и поэтому называются также машинно-ориентированными языками.

Язык низкого уровня, использующий команды в машинных кодах, называется машинным языком. Программа, написанная на машинном языке, называется объектной программой. Эта единственная форма программы доступная пониманию MП. Однако писать программы на машинном языке неудобно, поскольку команды, представленные машинными кодами, трудно отождествить с их назначением, а в самих машинных кодах легко перепутать 0 и 1. Кроме того, нужно отслеживать адреса всех команд, чтобы иметь возможность при необходимости обратиться к той или иной команде.

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


Помимо языков низкого уровня существуют также языки высокого уровня. В этих языках команды, представляемые условными обозначениями, определяют действия, ориентированные на эффективное решение задач определенного класса. Например, для программирования на ЭВМ используется язык высокого уровня БЕЙСИК. Этот язык предназначен для решения инженерных задач и позволяет с помощью отдельных команд производить вычисления логарифмов, синусов, квадратных корней и других математических функций. Из других языков высокого уровня отметим ПАСКАЛЬ - для создания системного и прикладного программного обеспечения, СИ - для создания системных и прикладных программ с учетом особенностей аппаратных средств.

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

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

Основное преимущество языка ассемблера по сравнению с языками высокого уровня заключается в возможности эффективного использования особенностей МП. При этом могут быть получены программы оптимальные с точки зрения занимаемого ими объема памяти и времени выполнения.

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

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

Это объясняется тем, что при трансляции с языка высокого уровня программа-транслятор не учитывает особенности работы МП и поэтому не обнаружит способов улучшения программы, которые очевидны опытному программисту, пишущему программу на языке ассемблера.

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

3.2. Программирование на языке ассемблера.


Исходная программа (исходный модуль), написанная на языке ассемблера состоит из последовательности строк или операторов. Как правило, оператор исходного модуля содержит четыре поля, обозначаемые: "метка", "операция", "операнд", "комментарии".

В поле "операция" записывают мнемоническое обозначение выполняемой команды. Например: ADD, МОV, LXI и т.д.

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

Метка проставляется в поле "метка" перед мнемоникой команды. Непосредственно после метки ставится двоеточие. Меткой может служить последовательность из цифр и латинских букв, причем первым символом должна быть буква. На длину метки ограничений не накладывается, но большинство программ-трансляторов с языка ассемблера в процессе трансляции контролирует только восемь первых символов. В качестве меток нельзя использовать мнемонические обозначения команд, названия регистров и регистровых пар. Рассмотрим пример (как мы договорились ранее, при составлении примеров будем использовать гипотетические регистры А, В и С):

Метка


Операция

Операнд

LAB:

MOV

A,B




























JMP

LAB


В рассмотренном примере по команде безусловного перехода JMP LAB будет осуществлен переход к команде, имеющей метку LАВ, т.е. к команде MOV А,В, которая содержимое из регистра В пересылает в аккумулятор. В ходе трансляции программы в объектную программа-транслятор определит действительный адрес команды MOV А,В и поставит его в команду JMP LАВ вместо метки LАВ.


Как правило, допускается наличие у одной команды нескольких меток, которые должны размещаться в разных строках, например:

Метка


Операция

META:




METB:

RAR


В рассмотренном примере к команде RAR можно перейти, используя любую из меток МЕТА и МЕТB.

В зависимости от типа команды поле "операнд" в общем случае может или ничего не содержать или содержать:

  1. Название регистра (регистровой пары).

  2. Адрес.

  3. Операнд.

  4. Названия двух регистров (регистровых пар).

  5. Название регистра (регистровой пары) и операнд.

Операнды и адреса представляются в поле "операнд" символическими именами (метками), числами и выражениями. В рассмотренном выше примере при записи команды безусловного перехода JMP addr в качестве адреса была использована метка LAB, помечающая команду MOV А,В.

Метки, присваиваемые операндам, имеют те же правила написания, что и метки команд, например:

Операция

Операнд


ADI

B5C

MVI

C,FOR


Первый из операторов складывает с содержимым аккумулятора число, обозначенное меткой В5C, а второй - заносит в регистр С число, обозначенное меткой FOR. При этом в программе должно быть определено, какие именно числа соответствуют меткам В5С и FOR.

Операнды и адреса могут быть представлены десятичными, двоичными, восьмеричными, шестнадцатеричными числами.

Десятичное число не сопровождается никаким специальным признаком, например:

Операция


Операнд

SUI

120

STA

26805


Первый из операторов вычитает из содержимого аккумулятора десятичное число 120, а второй - пересылает содержимое аккумулятора в ячейку памяти с адресом 26805.