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

Категория: Не указан

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

Добавлен: 22.01.2025

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

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

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

СОДЕРЖАНИЕ

Микропроцессоры и эвм в приборостроении

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.7. Способы наращивания разрядности.

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

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

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

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

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

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

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

3.1. Структура и характеристика типовых мп с фиксированной разрядностью и набором команд.

3.2. Система команд однокристального микропроцессора.

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

3.3. Примеры использования микропроцессоров в иит.

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

4.1. Особенности организации структуры эвм.

4.2. Структура эвм с общей шиной.

4.3. Интерфейсы эвм.

4.4. Применение эвм в качестве контроллера и системы сбора данных.

4.5. Мультимикропроцессорные системы и коллективы вычислителей.

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

Метка

Операция

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.

Двоичное число в поле "операнд" в большинстве языков ассемблера дополняется в конце латинской буквой В, например:

Операция

Операнд

ANI

00010000В

Записанный оператор производит операцию поразрядного логического умножения содержимого аккумулятора и числа 000100002 (индекс 2 указывает на то, что число двоичное).

Восьмеричное число в поле "операнд" дополняется буквой О или Q, например:

Операция

Операнд

IN

46Q

LXI

SP,10307O

Первый оператор передает в аккумулятор данные из порта, адрес которого 468, а второй - заносит в указатель стека SP число 103078.

Широкое применение при написании программ получила шестнадцатеричная форма представления чисел. В шестнадцатеричной системе счисления используется 16 символов: десять цифровых (от 0 до 9) и шесть буквенных (от А до F). Ниже приведено соответствие между десятичными, двоичными и шестнадцатеричными значениями величин.

Десятичное значение

Двоичное

Значение

Шестнадцатеричное значение

0

0000

0

1

0001

1

2

0010

2

3

0011

3

4

0100

4

5

0101

5

6

0110

6

7

0111

7

8

1000

8

9

1001

9

10

1010

A

11

1011

B

12

1100

C

13

1101

D

14

1110

E

15

1111

F


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

Например, двоичное число 101100 дополняется слева двумя нулями и разбивается на тетрады 0010 и 1100. После замены каждой тетрады соответствующим символом шестнадцатеричной системы получаем шестнадцатеричное число 2С (2C16). Таким образом, для представления в шестнадцатеричной системе счисления однобайтового операнда достаточно двух разрядов, а двухбайтового операнда или адреса - четырех разрядов.

За шестнадцатеричным числом в поле "операнд" должна следовать латинская буква Н. Для того, чтобы шестнадцатеричное число можно было отличить от метки, оно должно начинаться с цифры. В случае, если первым символом является буква, перед числом проставляется незначащий нуль. Рассмотрим примеры:

Операция

Операнд

LDA

6CA2H

LXI

В, 0Е060Н

Первый оператор пересылает в аккумулятор содержимое ячейки памяти с адресом 6СА216, второй оператор - заносит в регистровую пару BC число E06016.

Кратко остановимся на представлении операндов и адресов с помощью выражений.

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

Операция

Операнд

CPI

16+82/2-META

Данный оператор производит сравнение содержимого аккумулятора с числом 55 если, например, метка МЕТА имеет значение 2.


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

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

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

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

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

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

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


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