Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Группа команд управления

Анализ комбинационных схем с целью выявления состязаний | Состязания сигналов в последовательностных схемах | Существенные состязания | Порядок выполнения работы | Краткие теоретические сведения | Организация памяти и функционирование микроконтроллера | Запись исходного текста программы на языке программирования ASM-51 | Встроенные имена | Группа команд пересылки данных | Группа логических команд |


Читайте также:
  1. G.1.3 Устройства управления лифтом в кабине
  2. I чемпионата по силовому многоборью г. Красноярска среди команд
  3. I) Управляемые и неуправляемые процессы антикризисного управления
  4. I. Личность как объект и субъект управления
  5. I. Психология управления как наука. Процесс и система управления
  6. II группа
  7. II) Признаки и особенности антикризисного управления

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

Для каждого условия существует пара команд, одна из которых осуществляет передачу управления при его соблюдении, а другая - при несоблюдении. В поле комментариев приводятся расшифровки мнемоники этих команд. Условием передачи управления может быть равенство или неравенство нулю содержимого регистра аккумулятора:

JZ rel;Jump if Zero

JNZ rel;Jump if No Zero

Можно также использовать в качестве условия перехода равенство бита переносаединице или нулю:

JC rel;Jumpif Carry

JNC rel;Jump if Not Carry

Существуют команды, которые используют в качестве условия перехода равенство единице или нулю содержимого любого бита в функциональном регистре или адресуемого бита в ОЗУ:

JB flag,rel;Jump if Bit

JNB flag,rel;Jump if No Bit

Команда передачи управления по равенству бита единице имеет вариант

с очисткой содержимого этого бита:

JBC flag,rel;Jump if Bit and Clear

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

Перечисленные команды осуществляют переход в зависимости от результатов предыдущих вычислений. Однако есть управляющие команды, которые сами осуществляют вычисления для получения условий передачи управления. Мнемокод первой из таких команд - CJNE (Compare and Jump if Not Equal означает «сравнить и перейти, если не равно»). Это единственная команда микроконтроллера, имеющая 3 операнда. Ее четыре разновидности отличаются способами адресации источника и приемника:

CJNE A,dat8,rel

CJNE A,#dat8,rel

CJNE Rn,#dat8, rel

CJNE @Ri,#dat8,rel

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

Другая команда - DJNZ (Decrement and Jump if Not Zero означает «уменьшить и перейти, если не равно нулю») уменьшает содержимое первого операнда на единицу, если операнд не равен 0, то управление передается по указанномуадресу:

DJNZ Rn,rel

DJNZ dat8,rel

Эта команда удобна для программирования цикла по счетчику. Перед началом цикла по адресу приемника надо записать число, равное количеству повторений цикла. Если во втором операнде записать адрес начала цикла и не изменять содержимое первого операнда другими командами в цикле, то заданный участок программы будет повторен заданное количество раз.

Перейдем к командам безусловного перехода JuMP без возврата, Они используют адресацию всех трех дальностей:

SJMP rel

JUMP adr11

LJMP adr16

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

Команда безусловного перехода с индексной адресацией позволяет изменять адрес перехода по содержимому накопителя:

JMP @A+DPTR

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

Адрес пере­хода или метка, на которую нужно перейти обозначается в программе с помощью двоеточия, например:

……………

rel: DEC R1

JNZ rel

…………..


Дата добавления: 2015-07-20; просмотров: 59 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Группа арифметических команд| Директивы ассемблера ASM-51

mybiblioteka.su - 2015-2024 год. (0.007 сек.)