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

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

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

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

Добавлен: 27.04.2024

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

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

тетрады результата больше девяти или, если был перенос 1 в следующую тетраду результата, то к тетраде результата прибавляется число 6.

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

10. Команда INR r изменяет содержимое регистра r на +1.

11. Команда DCR r изменяет содержимое регистра r на -1.

12. Команда INX rp изменяет содержимое регистровой пары rp на +1.

13. Команда DCX rр изменяет содержимое регистровой пары rp на -1.

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

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

Напомним предворительно правила выполнения основных операций Булевой алгебры-логики. Результатом операции поразрядного логического умножения (операции “И”) является двоичное число, отдельные разряды которого равны 1 только тогда, когда соответствующие разряды обоих операндов равны 1. Результатом операции поразрядного логического сложения (операции “ИЛИ”) является двоичное число, отдельные разряды которого равны 1 в случае, когда в соответствующих разрядах исходных операндов присутствует хотя бы одна единица. Результатом операции поразрядного логического сложения по модулю 2 (операции “ИСКЛЮЧАЮЩЕЕ ИЛИ”) является двоичное число, отдельные разряды которого равны 1 только тогда, когда соответствующие разряды исходных операндов имеют противоположные значения.

Рассмотрим пример выполнения различных логических операций над двумя восьмиразрядными операндами.



Первый операнд

1

0

1

0

0

1

0

1

Второй операнд

1

1

0

0

1

1

0

0

Результаты операций



1

0

0

0

0

1

0

0



1

1

1

0

1

1

0

1



0

1

1

0

1

0

0

1


1. Команда АNА r выполняет операцию поразрядного логического умножения (операцию “И”) содержимого аккумулятора и регистра r.

2. Команда ANI data также выполняет операцию поразрядного логического умножения, но над содержимым аккумулятора и операндом, присутствующим в команде. Если необходимо, например, выделить третий разряд в байте, находящимся в аккумуляторе, а остальные его разряды обнулить, то производят операцию поразрядного логического умножения с маской, в третьем разряде которой записана 1, а в остальных - 0. Команда будет выглядеть следующим образом: ANI 00000100B. Символ “B” в конце операнда-маски информирует о двоичной форме его записи.

3. Команда ОRА r выполняет операцию поразрядного логического сложения (операцию “ИЛИ”) содержимого аккумулятора и регистра r.


4. Команда ORI data также выполняет операцию поразрядного логического сложения, но над содержимым аккумулятора и операндом, присутствующим в команде. Если нужно, например, записать в третий разряд байта, находящегося в аккумуляторе, единицу, не изменяя остальных его разрядов, то необходимо произвести операцию поразрядного логического сложения с маской, в третьем разряде которой записана 1, а в остальных - 0. Команда будет выглядеть следующим образом: ORI 00000100B.

5. Команда XRA r выполняет операцию поразрядного логического сложения по модулю 2 (операцию “ИСКЛЮЧАЮЩЕЕ ИЛИ”) содержимого аккумулятора и регистра r. Команда XRA А, в частности, используется для обнуления аккумулятора.

6. Команда XRI data также выполняет операцию поразрядного логического сложения по модулю 2, но над содержимым аккумулятора и операндом, присутствующим в команде. Для того, чтобы изменить на противоположное значение третьего разряда байта, находящегося в аккумуляторе, не изменяя остальных его разрядов, необходимо выполнить операцию поразрядного логического сложения по модулю 2 с маской, в третьем разряде которой записана 1, а в остальных - 0. Команда будет выглядеть следующим образом: XRI 00000100B.

Команды ANA А и ORA А позволяют, не изменяя содержимого аккумулятора, воздействовать на разряды регистра признаков. Эти команды могут быть использованы в том случае, если предыдущая команда после выполнения какой-либо операции над содержимым аккумулятора такого воздействия на регистр признаков не оказала.

7. Команда СМА инвертирует содержимое аккумулятора.

8. Команда СМР r позволяет сравнивать два числа, находящихся в аккумуляторе и в регистре r. Сравнение осуществляется вычитанием из содержимого аккумулятора содержимого регистра r. Вычитание производится без изменения содержимого аккумулятора. Результат вычитания проявляется только в воздействии на признаки регистра признаков. Если операнды равны, признак нуля Z устанавливается в 1. Если значение числа, находящегося в аккумуляторе, меньше значения второго числа, находящегося в регистре r, то устанавливается в единицу признак переноса С. В противном случае признаки Z и C устанавливаются в ноль.

9. Команда CPI data аналогична предыдущей команде. Отличие состоит в том, что второе число располагается не в регистре r, а непосредственно указано в команде в виде операнда.

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

Команды сдвига часто используются для организации операций умножения и деления, т.к. сдвиг двоичного кода влево на один разряд равносилен его умножению на 2, а сдвиг вправо на один разряд - делению на 2. Рассмотрим пример. Десятичному число 8 соответствует двоичный код 1000. Деление числа 8 пополам дает в результате число 4, которому соответствует двоичный код 0100. Как мы видим, при делении на 2 осуществилась операция сдвига двоичного кода вправо на один разряд. Однако при использовании в этих целях рассмотренных в нашем случае команд необходимо обнулять те разряды, которые возвращаются из признака переноса С или при замыкании младшего байта на старший, т.е. в результате замкнутого или циклического сдвига. Во многих типах МП предусмотрено автоматическое выполнение такой операции. Такой сдвиг часто называют простым или разомкнутым.

Рис.4.2.Реализация команд сдвига.
Команды передачи управления.

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

1. Команда JMP addr является командой безусловного перехода. Эта команда адрес, содержащийся в ней записывает в счетчик команд PC. После выполнения этой команды программа начнет выполняться с нового адреса, помещенного в счетчик команд.


2. Команда J-CON addr является командой условного перехода. В качестве условий рассматриваются нулевые или единичные значения признаков Z, С, Р и S регистра признаков. В место сокращения -CON подставляется мнемоника конкретного условия, при котором происходит выполнение команды: NZ - ненулевой результат, Z - нулевой результат, NC - отсутствие переноса в результате, C - наличие переноса в результате, P0 - нечетное число единиц в коде результата, PE - четное число единиц в коде результата, P - неотрицательный результат, M - отрицательный результат.

Например, команда условного перехода J-CON addr записывается JNZ addr, если условие перехода заключается в том, что Z=0 (предыдущий результат не был равен нулю). При выполнении этого условия адрес перехода, содержащийся команде запишется в счетчик команд PC и МП перейдет к выполнению программы с этого адреса. Если условие не удовлетворяется, т.е. Z=1 (предыдущий результат был равен нулю), то выполняется команда, непосредственно следующая в программе за командой JNZ addr.

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

3. Команда CALL addr является безусловной командой вызова подпрограмм. Команда записывает в счетчик команд PC адрес первой команды подпрограммы, указанный в команде, а в стек отправляет адрес возврата в основную подпрограмму (адрес команды, следующей за командой CALL addr).

4.Команда C-CON addr является условной командой вызова подпрограмм. Действия команды такие же как и в предыдущем случае, но команда выполняется при истином значении условия, записанного вместо сокращения -CON. Мнемоника используемых условия такая же, как и в команде J-CON.