41320

Изучение команд передачи управления

Практическая работа

Коммуникация, связь, радиоэлектроника и цифровые приборы

Практически изучить команды передачи управления . Методические материалы и литература: Методические указания по выполнению практических работ; Иллюстративный материал: команды операций над числами . При этом использовать описание работы лабораторный блок ПК иллюстрационный материал; В практической части отработать следующие подразделы: Рассмотреть команды передачи управления; Выполнить примеры и отразить их в отчёте; Проанализировать результаты выполненных примеров. Основные теоретические положения Способы...

Русский

2013-10-23

4.09 MB

11 чел.

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

Практическая работа № 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

 

  2  Практическая часть

  •  Рассмотреть приводимые примеры команд по действиям над числами
    •  Выполнить законспектировать команды приведённых примеров в тетради и отразить в отчёте
      •  Проанализировать структуру и функции команд в приведённых примерах; сделать выводы.

   Команды переходов

 

Команды переходов предназначены для:

  •  организации всевозможных циклов,
  •  ветвлений,
  •  вызовов подпрограмм и т.д.,

то есть они нарушают последовательный ход выполнения программы.

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

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

Если возврат предусмотрен, то текущие параметры процессора сохраняются в стеке. Если возврат не предусмотрен, т: текущие параметры процессора не сохраняются.

Команды переходов без возврата делятся на две группы:

  •  команды безусловных переходов;
  •  команды условных переходов.

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

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

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

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

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

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

 Всего таких условий перехода может быть от 4 до 16.

 Несколько примеров команд условных переходов:

переход, если равно нулю;

переход, если не равно нулю;

переход, если есть переполнение;

переход, если нет переполнения;

переход, если больше нуля;

переход, если меньше или равно нулю.

Если условие перехода выполняется, то производится загрузка в

регистр-счетчик команд нового значения.

Если же условие перехода не выполняется, счетчик команд просто нара-щивается, и процессор выбирает и выполняет следующую по порядку команду.

Специально для проверки условий перехода применяется команда сравнения-

(СМР), предшествующая команде условного перехода (или даже нескольким
командам условных переходов). Но флаги могут устанавливаться и любой другой командой, например командой пересылки данных, любой арифмети-ческой или логической командой.

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

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

 Рис.2    Разветвление программы  на две ветки с последующим                          соединением

  

Рис.3    Разветвление программы  на три ветки с последующим                          соединением

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

 Эти команды называются также командами подпрограмм (распространенное название — CALL).

 Использование подпрограмм позволяет :

  •  упростить структуру основной программы,
  •  сделать ее более логичной,
  •   гибкой,
  •   легкой для написания и отладки.

В то же время надо учитывать, что широкое использование подпрограмм, как правило, увеличивает время выполнения программы.

 Все команды переходов с возвратом предполагают безусловный переход (они не проверяют никаких флагов).

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

Для обратного возврата в точку вызова подпрограммы (точку перехода используется специальная команда возврата (RET или RTS). Эта команд, извлекает из стека значение адреса команды перехода и записывает его в регистр-счетчик команд.

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

  1.  Что определяет формат команды?

 

  1.  Какие команды называются однооперандными?

    

  1.  Перечислите команды условного перехода?

  

  1.  Как называются команды CALL?

 

  1.  Поясните назначение команды SWI?

     

  1.  Какая программа  используется для возврата из подпрограмм-мы?  

   

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


 

А также другие работы, которые могут Вас заинтересовать

5019. Менеджмент – как структура управления предприятием 143 KB
  В наше время появляется много фирм. Состояние фирмы во многом зависит от правильного руководства, правильного управления делами фирмы. Необходимо четко понимать, насколько устойчива фирма, и как долго она сможет противостоять различным внеш...
5020. Повышение эффективности обработки экономической информации на базе АРМ финансиста 326.5 KB
  Введение В связи с неустойчивым положением в стране в последнее время одной из немногих благополучных отраслей, переживающих период бурного роста, является компьютерная индустрия. Буквально за считанные годы в стране освоен массовый выпуск качествен...
5022. Види АРП приймальних пристроїв РЛС. Робота АРП із зворотним звязком 26.98 KB
  Усилители с автоматической регулировкой усиления (АРУ). Области применения АРУ. Мощность отраженного радиолокационного сигнала принимаемого от отражающего объекта, изменяется прямопропорционально четвертой степени дальности или удвоенного в...
5023. Современные представления происхождения Вселенной, теория Большого взрыва 93 KB
  Проблемы зарождения и существования Вселенной занимали самого древнего человека. Небо, которое было доступно его обозрению, было для него очень интересно. Недаром астрономия считается одной из самых древних наук о природе. Не потерял интере...
5024. Экологические проблемы развития автомобильного транспорта 993.5 KB
  Транспортно-дорожный комплекс является мощным источником загрязнения природной среды. Из 35 млн.т вредных выбросов 89% приходится на выбросы автомобильного транспорта и предприятий дорожно-строительного комплекса. Существенна роль транспорт...
5025. Аттестация государственных служащих 188 KB
  Каждый государственный и муниципальный служащий в течение своей жизни не раз столкнется с аттестацией, порой тревожным и психологически мучительным процессом, поэтому необходимо знать всю структуру аттестации и быть готовым к ней, быть во в...
5026. Ограниченность экономических ресурсов и благ в современном мире 134.5 KB
  Вопрос ограниченности ресурсов и благ в современном мире является одним из самых актуальных. Известно, что запасы многих природных ресурсов уже находятся в дефиците, а то, что некоторые сохранились в достаточно больших количествах...
5027. Анализ и оценка финансовых результатов деятельности коммерческой организации на примере предприятия ООО СВС 5.37 MB
  В современных экономических условиях деятельность каждого хозяйствующего субъекта является предметом внимания обширного круга участников рыночных отношений (организаций и лиц), заинтересованных в результатах его функционирования. На основе ...