Добавлен: 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.4. Применение МП-системы в качестве контроллера и системы сбора данных.
3. Основы программирования микропроцессоров.
3.1. Языки программирования микропроцессоров.
3.2. Программирование на языке ассемблера.
3.3. Средства разработки и отладки прикладных программ.
Средства отладки и диагностирования
Аппаратно-программные средства:
4. Типовые микропроцессоры и их применение.
4.1. Структура и характеристика типовых МП.
4.3. Примеры написания программ.
5. Мультипроцессорные системы, транспьютеры.
5.1. Классификация систем параллельной обработки данных
Конвейерная и векторная обработка.
Многопроцессорные машины с SIMD-процессорами.
Многопроцессорные системы с общей памятью
5.2 Мультипроцессорная когерентность кэш-памяти.
5.3. Многопроцессорные системы с локальной памятью и многомашинные системы
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, заключается в следующем. Результат сложения разбивается на тетрады (группы по четыре разряда). Начиная с младшей тетрады и двигаясь в направлении к старшим производятся следующие действия. Если значение