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


Система команд MCS-51 - часть 5


Эти команды принципиально могут приводить к необнаруживаемым транслятором ошибкам, когда программный модуль размещается на двух соседних 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 могут быть использованы для реализации проверки различных условий. При этом содержимое не изменяется, то есть если требуется произвести несколько проверок одной и той же переменной, то повторно заносить значение этой переменной в аккумулятор не нужно. Например:

MOV A, 34 ;Если в переменной, хранящейся в ячейке внутренней памяти 34 JNB ACC_7, TstEQ5 ;число меньше нуля, CALL Podprogramma ;то вызвать подпрограмму, обозначенную меткой ‘Podprogramma’ TstEQ5 ;------------------------------------------------------------------------------------------------------ CJNE A,#5,TstLT5 ;Если в переменной, хранящейся в ячейке внутренней памяти 34 занесено число 5, CALL Podpr5 ;то вызвать подпрограмму, обозначенную меткой ‘Podpr5’ TstLT5 ;------------------------------------------------------------------------------------------------------ JNС TstGE5 ;Если в переменной, хранящейся в ячейке внутренней памяти 34 занесено число, меньшее 5, CALL PodprLT5 ;то вызвать подпрограмму, обозначенную меткой ‘PodprLT5’ TstGE5 ;--------------------------------------------------------------------------------- JC TstNxtUsl ;Если в переменной, хранящейся в ячейке внутренней памяти 34 занесено число, большее или равное 5, CALL PodprGE5 ;то вызвать подпрограмму, обозначенную меткой ‘PodprGE5’ TstGT5 ;------------------------------------------------------------------------------------------------------ CJNE A,#6,$+3 ;Если в переменной, хранящейся в ячейке внутренней памяти 34 JC TstNxtUsl ;занесено число, большее 5, CALL PodprGT5 ;то вызвать подпрограмму, обозначенную меткой ‘PodprGT5’ ;--------------------------------------------------------------------------------- JNC TstNxtUsl ;Если в переменной, хранящейся в ячейке внутренней памяти 34 занесено число, меньшее или равное 5, CALL PodprLE5 ;то вызвать подпрограмму, обозначенную меткой ‘PodprLE5’

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




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



Книжный магазин