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

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

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

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

Добавлен: 27.04.2024

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

Скачиваний: 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. Транспьютеры

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

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

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

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

  • r - один из регистров А, В или С, или внешний регистр М, организованный в ячейке памяти, адрес которой хранится в регистровой паре или специальном адресном регистре;

  • rp - регистровая пара ВС, указатель стека SP или специальный адресный регистр;

  • data - операнд или данные, обрабатываемые соответствующей командой;

  • addr - адрес ячейки памяти, указываемый в команде;

  • port - адрес порта ввода-вывода, указываемого в команде;

  • SP - указатель стека;

  • PC - счетчик команд;

  • ( ) - содержимое регистра (регистровой пары), указанного внутри скобок;

  • [ ] - содержимое ячейки памяти (порта), адрес которой указан внутри скобок;

  •  - направление передачи;

  • , ,  - логическии операции “ИЛИ”, “И”, “ИСКЛЮЧАЮЩЕЕ ИЛИ” соответственно;

  • - CON - обобщенное обозначение, заменяемое на мнемонику условия перехода, вызова и возврата из подпрограммы. Договоримся использовать следующие мномонические обозначения этих условий: NZ - ненулевой результат (разряд регистра признаков Z=0), Z - нулевой результат (разряд регистра признаков Z=1), NC - отсутствие переноса (разряд регистра признаков C=0), C - наличие переноса (разряд регистра признаков С=1), P0 - нечетное число (разряд регистра признаков P=0), PE - четное число (разряд регистра признаков P=1), P - неотрицательный результат (разряд регистра признаков S=0), M - отрицательный результат (разряд регистра признаков S=1).



Таблица 4.1. Типичный обобщенный набор команд однокристального МП.

Группа команд

Условное обозначение

Описание команды


Команды пересылки

Кодов

1. MOV r1, r2

(r1)  (r2)

2. MVI r, data

(r)  ОПЕРАНД

3. LXI rp, data

(rp)  ОПЕРАНД

4. STA addr

[АДРЕС]  (A)

5. LDA addr

(A)  [АДРЕС]

6. STAX rp

[rp]  (A)

7. LDAX rp

(A)  [rp]

8. PUSH r

[SP]  (r)

9. POP r

(r)  [SP]

Команды выполнения арифметических операций

1. ADD r

(A)  (A) + (r)

2. SUB r

(A)  (A) - (r)

3. ADI data

(A)  (A) + ОПЕРАНД

4. SUI data

(A)  (A) – ОПЕРАНД

5. ADC r

(A)  (A) + (r) + (С)

6. SBB r

(A)  (A) - (r) - (С)

7. ACI data

(A)  (A) + ОПЕРАНД +(С)

8. SBI data

(A)  (A) – ОПЕРАНД - (С)

9. DAA

Десятичная коррекция

10. INR r

(r)  (r) + 1

11. DCR r

(r)  (r) – 1

12. INX rp

(rp)  (rp) + 1

13. DCX rp

(rp)  (rp) – 1

Команды выполнения логических операций

1. ANA r

(A)  (A)  (r)

2. ANI data

(A)  (A)  ОПЕРАНД

3. ORA r

(A)  (A)  (r)

4. ORI data

(A)  (A)  ОПЕРАНД

5. XRA r

(A)  (A)  (r)

6. XRI data

(A)  (A)  ОПЕРАНД

7. CMA

(A)  ( )

8. CMP r

(A) – (r)

9. CPI data

(A) – ОПЕРАНД

10. RLC

(ai+1)  (ai)

(a0)  (aN)

(C)  (aN)

11. RRC

(ai)  (ai+1)

(aN)  (a0)

(C)  (a0)

12. RAL

(ai+1)  (ai)

(a0)  (C)

(C)  (aN)

13. RAR

(ai)  (ai+1)

(aN)  (C)

(C)  (a0)

Команды передачи управления

1. JMP addr

(PC)  АДРЕС

2. J-CON addr

(PC)  АДРЕС

3. CALL addr

[SP]  (PC)

(PC)  АДРЕС

4. C-CON addr

[SP]  (PC)

(PC)  АДРЕС

5. RET

(PC)  [SP]

6. R-CON

(PC)  [SP]

Команды ввода-вывода и специальные

1. IN port

(A)  [АДРЕС]

2. OUT port

[АДРЕС]  (A)

3. EI

Разрешить прерывание

4. DI

Запретить прерывание

5. NOP

(PC)  (PC) + 1

6. HLT

Останов



Теперь перейдем к рассмотрению особенностей выполнения и использования отдельных команд.

Команды пересылки кодов.

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

1. Команда MOV r1,r2. Это команда с прямой регистровой адресацией данных. По этой команде содержимое регистра r2 переписывается в регистр r1, причем содержимое регистра r2 сохраняется. Например, после выполнения команды MOV C, А данные из регистра А будут переписаны в регистр С. Содержимое регистра А не изменится.

В качестве регистра r в некоторых МП может рассматриваться и ячейка памяти, адрес которой находится в регистровой паре или специальном адресном регистре. Такая ячейка памяти выполняет роль внешнего регистра, который обозначается через М. Например, команды с косвенной регистровой адресацией данных MOV М, r и MOV r, М осуществляют пересылку данных из регистра r во внешний регистр М и в обратном направлении соответственно. В частности, по команде МОV М, С данные из регистра С пересылаются во внешний регистр М. При этом данные в регистре С сохраняются. По команде MOV А, М произойдет пересылка данных из внешнего регистра М в регистр А. Содержимое внешнего регистра М при этом не изменится.

2. Команда MVI r, data является командой с непосредственной адресацией данных. Эта команда обеспечивает загрузку любого регистра, в том числе и внешнего регистра М операндом, присутствующим в команде. Например, по команде MVI B, 2BH в регистр В загружается число 2В16.

3. Команда LXI rp, data аналогична предыдущей, но отличается тем, что загружает любую регистровую пару, а также указатель стека SP или адресные регистры указанным в команде операндом. Команда LXI В, data используется, например, для записи в регистровую пару ВС адреса ячейки памяти, которую предполагается рассматривать в качестве внешнего регистра М.

4. Команда STA addr является командой с прямой адресацией данныхи предназначена для передачи байта информации из аккумулятора в ячейку памяти, адрес которой указан в команде.


5. Команда LDA addr осуществляет пересылку информации в обратном направлении, т.е. из ячейки памяти, адрес которой указан в команде в аккумулятор.

6. Команда STAX rp - это команда с косвенной регистровой адресацией данных. Она предназначена для передачи данных из аккумулятора в ячейку памяти, адрес которой содержится в регистровой паре или специальном адресном регистре, указанными в команде.

7. Команда LDAX rр осуществляет передачу данных в обратном направлении, т.е. из ячейки памяти, адрес которой указан в регистровой паре или адресном регистре в аккумулятор.

8. Команда PUSH r (или PUSH rp) является командой со стековой адресацией. Она засылает в стек содержимое указанных в команде регистров или регистровых пар.

9. Команда POP r (или POP rp) является также командой со стековой адресацией и осуществляет пересылку данных в обратном направлении, т.е. из стека в регистры или регистровые пары.

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

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

1. Команда АDD r - команда с прямой регистровой адресацией данных.Данная команда содержимое регистра r складывает с содержимым аккумулятора. Результат выполнения команды помещается в аккумулятор. Команда ADD A удваивает содержимое аккумулятора.

2. Команда SUB r также как и предыдущая является командой с прямой регистровой адресацией данных.Эта команда содержимое регистра r вычитает из содержимого аккумулятора. Результат выполнения команды как и в предыдущем случае помещается в аккумулятор. Команда SUB А производит вычитание из аккумулятора его содержимого, т.е. в результате выполнения команды SUB A во всех разрядах аккумулятора будут нули.

3. Команда АDI data является командой с непосредственной адресацией данных. Команда складывает с содержимым аккумулятора операнд, указанный в команде. Результат помещается в аккумулятор.

4. Команда SUI data в отличии от предыдущей команды из содержимого аккумулятора вычитает операнд, указанный в команде. Результат помещается в аккумулятор.

5. Команда ADС r является командой сложения, аналогичной команде ADD r. Отличие заключается в том, что при сложении содержимого аккумулятора и регистра r учитывается значение признака переноса С.


6. Команда SBB r - команда вычитания из содержимого аккумулятора содержимого регистра r, как и в команде SUB r, но с учетом значения признака переноса C.

7. Команда ACI data складывает операнд, присутствующий в команде с содержимым аккумулятора с учетом значения признака переноса С.

8. Команда SBI data вычитает из содержимого аккумулятора операнд, записанный в команде с учетом значения признака переноса C.

Команды ADС r, SBB r, ACI data, SBI data используются для получения результатов повышенной точности, т.е. при работе с числами, разрядность которых больше одного слова. Например, при сложении двух чисел с длиной в два слова сначала складываются их младшие слова с помощью команды ADD r или ADI data. При этом может образоваться перенос из старшего разряда младшего слова суммы. Затем с помощью команды АDС r или ACI data производится сложение старших слов чисел. Если перенос имел место, то единица, занесенная в разряд признака переноса С регистра признаков будет участвовать в сложении старших слов.

Аналогично организуется вычитание многоразрядных чисел. Если, например, при вычитании младших слов двух чисел с длиной в два слова, производимом с помощью команды SUB r или SUI data возникает заем из старшего разряда, то в разряд признака переноса С заносится единица, которая должна учитываться при вычитании старших слов этих чисел. С этой целью для вычитания старших слов используется команда SBB r или SBI data.

Следует иметь в виду, что если после выполнения сложения двух чисел признак переноса С будет равен единице, то эту единицу следует приписать к полученному результату слева, т.е. рассматривать ее как значение самого старшего разряда результата. Если после вычитания двух чисел признак переноса С окажется равным единице, то полученный результат является отрицательным и представлен в дополнительном коде, а если С=0, то результат положительный и представлен в прямом коде.

9. Команда DAA - команда десятичной коррекции. Поскольку АЛУ складывает числа по правилам двоичной арифметики, то и двоично-десятичные числа будут складываться по этим правилам. Для того, чтобы в этом случае получить результат в виде двоично-десятичного числа необходимо ввести соответствующие поправки. Такие поправки вводятся с помощью команды DАА. Команда DAA используется непосредственно после команды, осуществляющей сложение двух чисел. Для коррекции результата вычитания команда DАА не может быть использована. Сущность коррекции, выполняемой командой DAA, заключается в следующем. Результат сложения разбивается на тетрады (группы по четыре разряда). Начиная с младшей тетрады и двигаясь в направлении к старшим производятся следующие действия. Если значение