41320

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

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

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

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

Русский

2013-10-23

4.09 MB

14 чел.

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

Практическая работа № 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. Сделать выводы.


 

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

79073. Формы гражданского процесса 28.39 KB
  Характерной особенностью римского гражданского процесса в течение республиканского периода и периода принципата было деление процесса на две стадии производства из которых первая называлась вторая judidum. Римская же первая стадия процесса приводила к окончанию дела только в случае признания иска ответчиком а такой вопрос как видно из открытых в 1933 году новых фрагментов Институций Гая прямо ставился истцом; требую чтобы ты сказал да или нет.Какими потребностями было вызвано деление римского процесса на две стадии и какие цели оно...
79074. Эмфитевзис и суперфиций. Сущность и причины образования этих институтов. Прекращение эмфитевзиса и суперфиция. Залог и его формы. Ипотека 27.26 KB
  Установление одного из этих двух прав на земельный участок дает право собственности на эту землю почти только номинальным; лишь после прекращения эмфитевзиса или суперфиция право собственности на данный участок получает реальное выражение. Как показывает термин emphyteusis от греческого emphyteuein насаждать этот институт перешел в римское право из Греции где наследственная аренда земли имела широкое применение эмфитевзис был издавна также в практике Египта и Карфагена.В содержание эмфитевзиса входит право пользоваться земельным...
79075. Безымянные контракты. Их характеристика. Типы безымянных контрактов. Виды пактов 32.41 KB
  сведены к четырем основным типам: 1 do ut des: я передаю тебе право собственности на вещь с тем чтобы ты передал мне право собственности на другую вещь; 2 do ut fcis: я передаю тебе право собственности на вещь с тем чтобы ты совершил известное действие оказал какието услуги и т.; 3 fcio ut des: я совершаю для тебя известное действие с тем чтобы ты передал мне право собственности на известную вещь; 4 fcio ut fcis: я совершаю для тебя известное действие с тем чтобы и ты совершил для меня какоето действие. При куплепродаже...
79077. Вербальные договоры. Стипуляция. Порядок заключения и содержание 25.9 KB
  Открытые в 1933 году новые фрагменты из Институций Гая доказывают что договор стипуляции был известен уже законам XII таблиц.Несмотря однако на все смягчения необходимых формальностей в классическом римском праве всетаки прочно охранялись некоторые черты стипуляции как формального контракта: присутствие договаривающхся сторон в одном месте устный вопрос кредитора и такой же устный ответ должника совпадающий по смыслу с вопросом. Обязательство возникшее из стипуляции было обязательством строгого права и потому подлежало строго...
79078. Виды деликтов и обязательства из них. Личная обида. Кража. Неправомерное повреждение имущества. Другие виды частных деликтов 26.1 KB
  Наиболее подходящий русский термин соответствующий furtum кража. Однако furtum не совпадало полностью с современным понятием кражи. Во-первых к категории furtum в Риме относились и те деликты которые в современном праве именуются кражей и те которые теперь называются присвоением растратой и т.
79079. Владение и право собственности. Владение и держание. Виды. Установление и прекращение владения. Преторские интердикты. Защита добросовестного владения 33.21 KB
  Факты с наступлением которых лицо приобретает право собственности называются способами приобретения права собственности modus cquirendi а те юридические факты в особенности сделки которые служат основанием для приобретения права собственности называются титулом приобретения titulus cquirendi.Способы приобретения права собственности делятся на первоначальные и производные. При первоначальном приобретении права собственности нет праводателя ограниченность правомочий которого могла отразиться на содержании права приобретателя.
79080. Деятельность римских юристов. Формы их деятельности. Значение римской юриспруденции для формирования и развития права. Сабиньянская и прокулянская школы юристов 21.39 KB
  Сабиньянская и прокулянская школы юристов. В произведениях Цицерона формы деятельности римских юристов характеризуются терминами respondere cvere gere а также scribere. Термином respondere обозначается консультационная работа римских юристов дача гражданам обращавшимся к юристам советов по возбуждавшим сомнение вопросам: cvere ограждение интересов данного гражданина при совершении сделок также путем совета не включать какоелибо невыгодное условие и т.
79081. Договор имущественного найма и его виды. Договор найма вещи Поднаем. Прекращение договора найма вещи. Наем услуг. Договор подряда 31.33 KB
  Классическое римское право знало три вида договора locatio-conductio: 1) наем вещей (locatio-conductio rerum); 2) наем услуг (locatio-conductio operarum); 3) наем работы или подряд (locatio-conductio opens или opens faciendi).