Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практическое занятие №5.doc
Скачиваний:
12
Добавлен:
26.11.2018
Размер:
4.29 Mб
Скачать

Дисциплина: « Микропроцессоры и микропроцессорные системы»

Практическое занятие № 5

Тема: «Изучение команд передачи управления».

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

Время: 2 часа

Оборудование: ПК, ПО.

Методические материалы и литература:

  • Методические указания по выполнению практических работ;

  • Иллюстративный материал: «команды операций над числами ».

Методические указания по выполнению практической работы:

Последовательность выполнения работы:

  1. Изучить и законспектировать основные теоретические положения по теме, используя описание работы;

  2. Выполнить практическую часть практической работы. При этом использовать описание работы, лабораторный блок ПК, иллюстратив-ный материал; В практической части отработать следующие подразделы:

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

  • Выполнить примеры изучения команд передачи управления.

  • Проанализировать результат изучения команд передачи управления; сделать выводы.

  1. Ответить на контрольные вопросы.

  2. Сделать выводы.

  3. Подготовить отчёт по установленной форме.

  4. Представить отчёт для защиты преподавателю.

1. Основные теоретические положения

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

Важной характеристикой команды является ее формат, определяющий структурные элементы команды, каждый из которых интерпретируется определенные образом при ее выполнении.

Среди таких элементов (полей) команды выделяют следующие:

  • код операции, определяющий выполняемое действие;

  • адрес ячейки памяти, регистра процессора, внешнего устройства;

  • режим адресации; операнд при использовании непосредственной адресации;

  • код анализируемых признаков для команд условного перехода.

Классификация команд по основным признакам представлена на рис.1 Важнейшим структурным элементом формата любой команды является код операции (КОП), определяющей действие, которое должно быть выполнено.

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

Число бит, отводимое под КОП, является функцией полного набора реа-лизуемых команд.

Рис. 1. Классификация команд.

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

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

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

МК (на примере МК 68HC08/908 фирмы Motorola) работает с операнда-ми, разме­щенными в регистрах А, X и памяти.

Команды имеют длину от 1 до 3 байт:

  • первый байт содержит код операции,

  • второй и третий байты адресуют опе­ранд.

Для выборки операнда может использоваться широкий набор спосо­бов адресации:

  • регистровая (операнд распола­гается в регистре А или X);

  • индексная (адресом операнда служит содержимое регистра Н:Х);

  • индексная со смещением (адрес операнда образуется путем сложения содержимого регистра Н:Х и 8- или 16-разрядного смещения);

  • по указателю стека со смещением (адрес операнда образуется путем сложения содержимого регистра SР и 8- или 16-разрядного смещения);

  • прямая (8- или 16-разрядный адрес операнда задается в команде);

  • непосредственная (операнд является вторым байтом команды);

  • относительная (используется только в командах ветвления — адрес команды образуется путем сложения текущего содержимого РС и 8-раз­ рядного смещения, которое является числом со знаком).

Кроме того, в командах пересыл­ки МОV и сравнения с ветвлением СВЕQ может использоваться инде­ксная адресация с пост-инкрементом или индексная со смещением и пост-инкрементом.

Процессор СРU08 выполняет дос­таточно большой набор команд пере­сылки, арифметических и логических операций, сдвигов, битовых опера­ций, управления программой и про­цессором.

  • условные и безусловные ветвления,

  • вызов подпрограмм и

  • вы­ход из подпрограммы или процедуры обработки прерывания. Условиями ветвления могут быть значения приз­наков Z, N, результаты сравнения операндов со знаком или без знака (>, >=, <, <=). В эту группу входит также команда программного преры­вания SWI Кроме того, процессор реализует команды организации цик­лов DBNZ и сравнения на равенство с последующим ветвлением CBEQ

В зависимости от используемого способа адресации выполнение ко­манд занимает от 1 до 5 тактов;

КОМАНДЫ ПЕРЕДАЧИ УПРАВЛЕНИЯ

Группа команд передачи управления (Табл.1).является самой многочис­ленной группой. Она содержит 40 инструкций, которые делятся на две подгруп-пы:

  1. Команды условных и безусловных переходов

  2. Команды вызова подпрограмм и обслуживания прерываний

Табл.1

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

Центральный процессор CPU08 может использовать три команды условного перехода:

  • традиционную трехбайтовую команду JMP

  • и две двухбайтовых команды BRA и BRN.

Команда JMP отличается рас­ширенным набором способов задания адреса перехода. Этот адрес может быть в том числе определен одним из способов индексной адресации, что позволяет разместить изменяемый в ходе выполнения программы адрес в одной из ячеек ОЗУ.

Двухбайтовая команда BRA реализует безусловный переход в пределах смещения -128...+127 относительно текущего адреса. Эта команда позволяет более эко­номно расходовать память.

Команда BRN аналогична команде NOP, но имеет двухбайтовый формат. Значение смещения, которое указано во втором байте команды, смысла не имеет. Эта команда полезна для режимов отладки программного обеспече-ния в абсолютном ко­де. Она позволяет заменить инструкцию ветвления на инструкцию NOP без изменения байта смещения rel в формате команды условно­го перехода.

Группа команд ветвления чрезвычайно широка. Кроме переходов по традиционным условиям С, Z, N, H, реализованы переходы по комбинациям флагов для сравнения операндов в прямом коде без знака, а также по комбина-циям флагов С, Z и V для сравнения операндов в дополнительном коде со знаком.

Особое внимание следует обратить на команды CBEQ и DBNZ:

  1. CBEQ opr,rel ;Сравнить аккумулятор АСС с содержимым ячейки памяти и перейти по метке, если ;они равны.

  2. CBEQ x+,rel ;Сравнить аккумулятор АСС с содержимым ячейки ;памяти, адрес которой содержится в индексном регистре, и перейти по метке.если они равны.

  3. Содержимое индексного регистра Н:Х увеличивается на 1 после выполнения сравнения. DBNZ x.rel

  4. Уменьшить на 1 содержимое ячейки памяти, адрес ;которой указан в индексном регистре Н;Х, и перейти ;по метке, если результат не равен О, DBNZA rel

Команды CBEQ и DBNZ имеют достаточно широкий набор спосо­бов адресации (Табл. 2).

Особое место среди команд перехода с возвратом занимают команды

прерываний (распространенное название — INT). Эти команды в каче-

гве входного операнда требуют номер прерывания (адрес вектора). Об-

служивание таких переходов осуществляется точно так же, как и аппаратных

прерываний.

То есть для выполнения данного перехода процессор обращается к таблице векторов прерываний и получает из нее по номеру прерывания адрес памяти, в который ему необходимо перейти. Адрес вызова. прерывания и содержимое регистра состояния процессора (PSW ) сохраняются в стеке Сохранение PSW — важное отличие команд прерывания от команд переходов с возвратом.

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

обычные команды переходов с возвратом. Сформировать таблицу векторов

прерываний можно один раз, а потом уже обращаться к ней по мере необходи-мости

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

Для возврата из подпрограммы, вызванной командой прерывания, используется команда возврата из прерывания (IRET или RTI). Эта команда извлекает из стека сохраненное там значение счетчика команд и регистра состояния процессора (PSW).

У некоторых процессоров предусмотрены также команды условных прерываний, например, команда прерывания при переполнении.

Среди команд вызова подпрограмм и обслуживания прерыва­ний следует выделить команду программного немаскируемого прерывания SWI. Механизм программного прерывания позволяет обратиться к какой-либо подпрограмме обработки прерывания по ходу выполнения прикладной программы и восполь-зоваться подпрограммой обработки прерывания 'как обычной подпрограм­мой.

Наличие в системе команд инструкции программного пре­рывания SWI предоставляет такую возможность. Эта команда автоматически загружает в стек регистры CCR, АСС, X и увели­ченное на 1 содержимое счетчика команд PC, а затем осуществ­ляет переход по адресу, который указан в ячейках памяти SFFFC и SFFFD сегмента векторов прерывания. Этот адрес может быть на­чальным адресом подпрограммы прерывания или же находиться внутри нее. При выходе из подпрограммы прерывания команда RTI восстановит содержимое регистров центрального процессо­ра и МК продолжит выполнение прикладной программы с коман­ды, которая была следующей за командой SWI. Таким образом, программисту предоставляется возможность обращения в произ­вольный момент времени к фрагменту подпрограммы прерыва­ния, кото-рый начинается с произвольно выбранной инструкции внутри подпрограммы прерывания, но заканчивается обязатель­но командой RTI.

Группа команд передачи управления (пример) Табл.2