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

Смотрите на сайте матрасы ватные купить. | Бесплатные секс знакомства в днепропетровске. | Разборка тойота королла 􆾞, mazda источник. |

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


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

  • безусловный переход: , ,
  • Вызов и возврат из подпрограммы: , , ,
  • проверка содержимого аккумулятора: , , ,
  • проверка флага переноса С: ,
  • проверка содержимого любого бита в : , ,

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

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

Команды 11-разрядных переходов и вызовов подпрограмм позволяют сократить объем программы, но при этом обеспечивают переходы только внутри программного модуля 2 Кбайт. Эти команды принципиально могут приводить к необнаруживаемым транслятором ошибкам, когда программный модуль размещается на двух соседних 2 Кбайтовых сегментах памяти.

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

В системе команд имеются команды условных и безусловных переходов относительно начального адреса следующей команды в пределах от (РС)-127 до (РС)+127. Примеры команд:

SJMP Metka ;Переход к команде, расположенной по адресу обозначенному меткой ‘Metka’ JB P3.5, TstNxtUsl ;Если на 6 выводе порта P3 нулевой потенциал, ACALL Podprogramma ;то вызвать подпрограмму, обозначенную меткой ‘Podprogramma’ CJNE A, #5, TstNxtUsl ;Если в аккумуляторе содержится число 5, ACALL Podprogramma ;то вызвать подпрограмму, обозначенную меткой ‘Podprogramma’

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




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