Курс лекций - Микропроцессоры


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


Команды ветвления позволяют реализовывать условные операторы и операторы циклов. В микроконтроллерах семейства MCS-48 доступны следующие команды:

  • безусловный переход:
  • Вызов и возврат из подпрограммы: , , RETR
  • проверка содержимого аккумулятора: , , , ...
  • проверка флага переноса С: ,
  • проверка сигнала на ножке T0: ,
  • проверка сигнала на ножке T1:  ,
  • проверка сигнала на ножке INT:
  • Проверка состояния флагов пользователя ,

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

;Переход к команде, расположенной по адресу обозначенному меткой ‘Metka’ CALL Podprogramma ;Вызов подпрограммы по адресу, обозначенному меткой ‘Podprogramma’

В системе команд имеются команды условных переходов. Эти команды позволяют осуществлять переход в пределах страницы 256 байт.

Примеры использования команд условного перехода:

JB5 TstNxtUsl ;Если в 6 бите аккумулятора нулевое значение, CALL Podprogramma ;то вызвать подпрограмму, обозначенную меткой ‘Podprogramma’ JNZ A, #5, TstNxtUsl ;Если в аккумуляторе содержится нулевое значение, CALL Podprogramma ;то вызвать подпрограмму, обозначенную меткой ‘Podprogramma’

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

MOV A, 34 ;Если в переменной, хранящейся в ячейке внутренней памяти 34 JB7 TstNxtUsl ;число меньше нуля, CALL Podprogramma ;то вызвать подпрограмму, обозначенную меткой ‘Podprogramma’ ;--------------------------------------------------------------------------------- MOV A, 34 ;Если в переменной, ADD A, -5 ;хранящейся в ячейке внутренней памяти 34 JZ TstNxtUsl ;занесено число 5, CALL Podpr5 ;то вызвать подпрограмму, обозначенную меткой ‘Podpr5’ ;--------------------------------------------------------------------------------- MOV A, 34 ;Если в переменной, ADD A, -5 ;хранящейся в ячейке внутренней памяти 34 JNС TstNxtUsl ;занесено число, меньшее 5, CALL PodprLT5 ;то вызвать подпрограмму, обозначенную меткой ‘PodprLT5’ ;--------------------------------------------------------------------------------- MOV A, 34 ;Если в переменной, ADD A, -6 ;хранящейся в ячейке внутренней памяти 34 JC TstNxtUsl ;занесено число, большее 5, CALL PodprGT5 ;то вызвать подпрограмму, обозначенную меткой ‘PodprGT5’ ;--------------------------------------------------------------------------------- MOV A, 34 ;Если в переменной, ADD A, -5 ;хранящейся в ячейке внутренней памяти 34 JC TstNxtUsl ;занесено число, большее или равное 5, CALL PodprGE5 ;то вызвать подпрограмму, обозначенную меткой ‘PodprGE5’ ;--------------------------------------------------------------------------------- MOV A, 34 ;Если в переменной, ADD A, -6 ;хранящейся в ячейке внутренней памяти 34 JNC TstNxtUsl ;занесено число, меньшее или равное 5, CALL PodprLE5 ;то вызвать подпрограмму, обозначенную меткой ‘PodprLE5’

Косвенный переход JMPP @A в системе команд микроконтроллера обеспечивает ветвление программы по содержимому аккумулятора А.


- Начало -  - Назад -  - Вперед -