КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Команды передачи управления микроконтроллера 8051.
Группа представлена командами безусловного и условного переходов, командами вызова подпрограмм и командами возврата из подпрограмм.
В таблице также указаны тип команды (Т) в соответствии с таблицей, ее длина в байтах (Б) и время выполнения в машинных циклах (Ц).
Таблица.11.Команды передачи управления
Название команды
| Мнемокод
| КОП
| Т
| Б
| Ц
| Операция
| Длинный переход в полном объеме ПП
| LJMP ad16
|
|
|
|
| (PC) ad16
| Абсолютный переход внутри страницы в 2 Кб
| AJMP ad11
| a10a9a800001
|
|
|
| (PC) (PC) + 2, (PC0-10) ad11
| Короткий относительный переход внутри страницы в 256 байт
| SJMP rel
|
|
|
|
| (PC) (PC) + 2, (PC) (PC) +rel
| Косвенный относительный переход
| JMP @A+DPTR
|
|
|
|
| (PC) (A) + (DPTR)
| Переход, если аккумулятор равен нулю
| JZ rel
|
|
|
|
| (PC)(PC)+2, если (A)=0, то (PC)(PC)+rel
| Переход, если аккумулятор не равен нулю
| JNZ rel
|
|
|
|
| (PC)(PC)+2, если (A)≠0, то (PC)(PC)+rel
| Переход, если перенос равен единице
| JC rel
|
|
|
|
| (PC)(PC)+2, если (С)=1, то (PC)(PC)+rel
| Переход, если перенос равен нулю
| JNC rel
|
|
|
|
| (PC)(PC)+2, если (С)=0, то (PC)(PC)+rel
| Переход, если бит равен единице
| JB bit, rel
|
|
|
|
| (PC)(PC)+3, если (b)=l, то (PC)(PC)+rel
| Переход, если бит равен нулю
| JNB bit, rel
|
|
|
|
| (PC)(PC)+3, если (b)=0, то (PC)(PC)+rel
| Переход, если бит установлен, с последующим сбросом бита
| JBC bit, rel
|
|
|
|
| (PC) (PC) + 3, если (b)=1, то (b) 0 и (PC) (PC) + rel
| Декремент регистра и переход, если не нуль
| DJNZ Rn, rel
| 11011rrr
|
|
|
| (PC) (PC) + 2, (Rn) (Rn) - 1,
если (Rn) ≠ 0, то (PC) (PC) + rel
| Декремент прямоадресуемого байта и переход, если не нуль
| DJNZ ad, rel
|
|
|
|
| (PC) (PC) + 2, (ad) (ad) - 1, если (ad) ≠ 0, то (PC) (PC) + rel
| Сравнение аккумулятора с прямоадресуемым байтом и переход, если не равно
| CJNE A, ad, rel
|
|
|
|
| (PC) (PC) + 3,если (A) ≠ (ad), то (PC) (PC) + rel,если (A) < (ad), то (C) 1, иначе (C) 0
| Сравнение аккумулятора с константой и переход, если не равно
| CJNE A, #d, rel
|
|
|
|
| (PC) (PC) + 3,если (A) ≠ #d, то (PC) (PC) + rel,если (A) < #d, то (C) 1, иначе (С) 0
| Сравнение регистра с константой и переход, если не равно
| CJNE Rn, #d, rel
| 10111rrr
|
|
|
| (PC) (PC) + 3,если (Rn) ≠ #d, то (PC) (PC) + rel,если (Rn) < #d, то (C) 1, иначе (С) 0
| Сравнение байта в РПД с константой и переход, если не равно
| CJNE @Ri,#d,rel
| 1011011i
|
|
|
| (PC) (PC) + 3,если ((Ri)) ≠ #d, то (PC) (PC) + rel,если ((Ri)) < #d, то (C) 1, иначе (C) 0
| Длинный вызов подпрограммы
| LCALL adl6
|
|
|
|
| (PC) (PC) + 3, (SP) (SP) +1,
((SP)) (PC0…7), (SP) (SP) + 1,
((SP)) (PC8…15), (PC) ad16
| Абсолютный вызов подпрограммы в пределах страницы в 2 Кб
| ACALL ad11
| a10a9a810001
|
|
|
| (PC) (PC) + 2, (SP) (SP) + 1,
((SP)) (PC0…7), (SP) (SP) + 1,
((SP)) (PC8…15), (PC0-10) ad11
| Возврат из подпрограммы
| RET
|
|
|
|
| (PC8…15) ((SP)), (SP) (SP) - 1,
(PC0…7) ((SP)), (SP) (SP) – 1
| Возврат из подпрограммы обработки прерывания
| RETI
|
|
|
|
| (PC8…15) ((SP)), (SP) (SP) - 1,
(PC0…7) ((SP)), (SP) (SP) – 1
| Пустая операция
| NOP
|
|
|
|
| (PC) (PC) + 1
|
Команда безусловного перехода LJMP (L – long – длинный) осуществляет переход по абсолютному 16-битному адресу, указанному в теле команды, т. е. команда обеспечивает переход в любую точку памяти программ.
Командами условного перехода можно проверять следующие условия:
- JZ — аккумулятор содержит нулевое значение;
- JNZ — аккумулятор содержит не нулевое значение
- JC — бит переноса С установлен;
- JNC — бит переноса С не установлен;
- JB — прямо адресуемый бит равен 1
- JNB — прямо адресуемый бит равен 0;
- JBC — прямо адресуемый бит равен 1 и сбрасывается в нулевое значение при выполнении команды.
Заключение
В заключение следует отметить, что большинство Ассемблеров допускают обобщенную мнемонику JMP – для команд безусловного перехода и CALL – для команд вызова подпрограмм. Конкретный тип команды определяется Ассемблером, исходя из "длины" перехода или вызова.
Список литературы
1. http://dfe.karelia.ru/koi/posob/micropr/philips.htm#Микроконтроллеры семейства 80C51XA
2. //oemmndcbldboiebfnladdacbdfmadadm/http://allcomponents.ru/pdf/philips/80c51[3].pdf
3. http://gaw.ru/html.cgi/txt/ic/Philips/mcs-51.htm
|