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

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

Читайте также:
  1. I-7000 : устройства удаленного и распределенного сбора данных и управления
  2. I.2 Особенности управления тормозами грузовых поездов повышенного веса и длины
  3. I.3 Особенности управления тормозами в зимних условиях
  4. III. Основные функции Управления
  5. IV ДЕЙСТВИЯ ЛОКОМОТИВНОЙ БРИГАДЫ И ОСОБЕННОСТИ УПРАВЛЕНИЯ ТОРМОЗАМИ ПОЕЗДА ПРИ ПЕРЕХОДЕ НА РЕЗЕРВНОЕ УПРАВЛЕНИЕ ЭЛЕКТРОННЫМ КРАНОМ МАШИНИСТА
  6. IV ПОРЯДОК СМЕНЫ КАБИН УПРАВЛЕНИЯ НА ЛОКОМОТИВАХ И ПЕРЕКЛЮЧЕНИЕ ТОРМОЗНОГО ОБОРУДОВАНИЯ
  7. IV. Организация и обеспечение деятельности Управления

Таблица 5. Команды передачи управления (переходов, вызовов и возвратов подпрограмм)

 

Мнемоника Операнды Описание Операция Кол-во циклов
RJMP Adr12 Переход короткий PCPC+Adr12+1  
LJMP   Переход косвенный PCZ  
JMP Adr22 Переход длинный PCAdr22  
RCALL Adr12 Вызов подпрограммы короткий (SP) PCL, SP-1, (SP-1) PCH, SP-1, PCPC+Adr12+1  
ICALL   Вызов подпрограммы косвенный (SP) PCL, SP-1, (SP-1) PCH, PCZ  
CALL Adr16 Длинный вызов подпрограммы (SP) PCL, (SP-1) PCH, SP-1, PCAdr16  
RET   Возврат из подпрограммы SP+1, PCH (SP), SP+1, PCL (SP)  
RETI   Возврат из прерывания SP+1, PCH (SP), SP+1, PCL (SP)  
CPSE Rd,Rr Если равны, то пропуск следующей команды если Rd=Rr, то PCPC+2 (или3),иначе PC+1 1/2/3
SBRC Rr,b Если бит b в регистре РОН очищен, то пропуск следующей команды if Rr(b)=0 then PCPC+2 (or 3) else PC+1 1/2/3
SBRS Rr,b Пропуск следующей команды, если бит в регистре установлен if Rr(b)=1 then PCPC+2 (or 3) else PC+1 1/2/3
SBIS I/O,b Пропуск следующей команды, если бит в регистре I/O равен 1 if I/OP(b)=1 then PCPC+2 (or 3) else PC+1 1/2/3
SBIC I/O,b Пропуск следующей команды, если бит в регистре I/O очищен if I/OP(b)=0 then PCPC+2 (or 3) else PC+1 1/2/3
BRBS s,rel Переход, если в регистре SREG установлен бит s if SREG(s)=1 then PCPC+rel+1 1/2
BRBC s,rel Переход, если в регистре SREG очищен бит s if SREG(s)=0 then PCPC+rel+1 1/2
BREQ rel Переход, если результат равен нулю if Z=1 then PCPC+rel+1 1/2
BRNE rel Переход, если резуль- тат не равен нулю if Z=0 then PCPC+rel+1 1/2
BRCS rel Переход, если флаг переноса установлен if С=1 then PCPC+rel+1 1/2
BRCC rel Переход, если флаг переноса очищен if С=0 then PCPC+rel+1 1/2
BRMI rel Переход, если минус if N=1 then PCPC+rel+1 1/2
BRPL rel Переход, если плюс if N=0 then PCPC+rel+1 1/2
BRGE rel Переход, если больше или равно (с учетом знака) if NÅV=0 then PCPC+rel+1 1/2
BRLT rel Переход, если меньше (со знаком) if NÅV=1 then PCPC+rel+1 1/2
BRHS rel Переход, если флаг полупереноса установлен if H=1 then PCPC+rel+1 1/2
BRHC rel Переход, если флаг полупереноса очищен if H=0 then PCPC+rel+1 1/2
BRTS rel Переход, если флаг Т установлен if Т=1 then PCPC+rel+1 1/2
BRTC rel Переход, если флаг Т очищен if Т=0 then PCPC+rel+1 1/2
BRVS rel Переход, если флаг переполнения установлен if V=1 then PCPC+rel+1 1/2
BRVC rel Переход, если флаг переполнения очищен if V=0 then PCPC+rel+1 1/2
BRIE rel Переход, если гло- бальное прерывание разрешено if I=1 then PCPC+rel+1 1/2
BRID rel Переход, если гло- бальное прерывание запрещено if I=0 then PCPC+rel+1 1/2

 

 

К этой группе команд относятся команды вызовов и возвратов из подпрограмм и переходов. Команды безусловных переходов и вызовов подпрограмм имеют прямой, относительный и косвенный способы адресации. Командами JMP и CALL обеспечиваются безусловный переход и вызов подпрограммы в пределах всего адресного пространства программной памяти 4М байт микроконтроллеров старших моделей семейства AVR. Длина этих команд составляет два слова (команда занимает две ячейки памяти).

Команды RJMP и RCALL обеспечивают переход и вызов подпрограммы в пределах 2К байт адресного пространства программной памяти. При выполнении этих команд 12-разрядное смещение адреса (Adr12) добавляется к содержимому программного счетчика РС. Формат команд составляет 1 слово.

Команды IJMP и ICALL обеспечивают косвенный переход и вызов подпрограммы по адресу, размещенному в регистре Z (содержимое регистра Z помещается в счетчик команд). Формат команд составляет 1 слово.

В составе команд условных переходов имеется 5 команд, по которым выполняется операция пропуска следующей команды при выполнении условия в команде. В зависимости от выполнения или невыполнения условия, а также от длины пропускаемой следующей команды эти команды могут иметь от одного до трех циклов. Второй цикл необходим для считывания двухбайтной команды, размещенной по адресу перехода. Если длина пропускаемой команды составляет два слова, то при выполнении условия команда выполняется за три цикла. Условия пропуска следующей команды: равенство содержимого двух регистров общего назначения и состояние бита в любом регистре. Обычно в качестве следующей команды используется команда безусловного перехода.

“Классические” условные переходы представлены командами коротких переходов в соответствии с состояниями любого из разрядов регистра состояния SREG. Например: по команде BRNE rel осуществляется переход, если результат операции не равен нулю, т.е. если флаг Z имеет нулевое значение. Если результат операции равен нулю(флаг Z=1), то будет выполняться следующая команда. Условные переходы осуществляются в пределах смещения rel =– 64 ÷ +63 от текущего состояния счетчика команд.

Для обеспечения более длинных переходов по адресу перехода помещают команду безусловного перехода.

 

2.6.3 Команды арифметики и логики (вычислительные)

Таблица 6. Арифметические и логические команды

 

Мнемоника Операнды Описание Операция Флаги Циклов
ADD Rd,Rr Сложить регистры без переноса Rd Rd + Rr Z,C,N,V,H  
ADC Rd,Rr Сложить регистры с переносом RdRd + Rr + C Z,C,N,V,H  
ADIW Rd,D6 Сложить операнд D6 со словом Rdh:Rdl Rdh:Rdl+D6 Z,C,N,V  
SUB Rd,Rr Вычесть регистры без заема RdRd – Rr Z,C,N,V,H  
SUBI * Rd,D8 Вычесть байт D8 R16 Rd R31 RdRd - D8   Z,C,N,V,H  
SBC Rd,Rr Вычесть с заемом RdRd – Rr - С Z,C,N,V,H  
SBСI * Rd,D8 Вычесть байт D8 R16 Rd R31 RdRd - D8 - С   Z,C,N,V,H  
SBIW Rd,D6 Вычесть операнд D6 из слова Rdh:Rdl Rdh:Rdl - D6 Z,C,N,V  
MUL Rd,Rr Умножение беззнаковых целых R1:R0Rd x Rr Z,C  
MULS* Rd,Rr Умножение целых со знаком R1:R0Rd x Rr Z,C  
MULSU* Rd,Rr Умножение беззнакового на знаковое R1:R0Rd x Rr Z,C  
FMUL* Rd,Rr Умножение дробных беззнаковых R1:R0Rd x Rr Z,C  
FMULS* Rd,Rr Умножение дробных знаковых R1:R0Rd x Rr Z,C  
FMULSU* Rd,Rr Умножение беззнакового на знаковое дробных R1:R0Rd x Rr Z,C  
AND Rd,Rr Логическое И RdRd & Rr Z,N,V  
ANDI* Rd,D8 Операция И с байтом D8 RdRd & D8   Z,N,V  
OR Rd,Rr Логическое ИЛИ RdRd v Rr Z,N,V  
ORI* Rd,D8 Логическое ИЛИ с байтом D8 RdRd v D8   Z,N,V  
EOR Rd,Rr Исключающее ИЛИ RdRd Å Rr Z,N,V  
COM Rd Инверсия Rd$FF - Rd Z,C,N,V  
NEG Rd Дополнительный код Rd$00 - Rd Z,C,N,V  
SBR * Rd,D8 Установить биты в Rd по байту D8 RdRd v D8   Z,N,V  
CBR* Rd,D8 Очистить биты в регистре по байту D8 RdRd & ($FF-D8)   Z,N,V  
INC Rd Инкрементировать RdRd +1 Z,N,V  
DEC Rd Декрементировать RdRd -1 Z,N,V  
TST Rd Проверить на ноль RdRd & Rd Z,N,V  
CLR Rd Очистить регистр RdRd Å Rd Z,N,V  
SER* Rd Установить все биты регистра Rd$FF      
CP Rd,Rr Сравнить регистры Rd - Rr Z,C,N,V,H  
CPC Rd,Rr Сравнить с учетом переноса Rd – Rr - С Z,C,N,V,H  
CPI Rd,D8 Сравнить с байтом D8 Rd - D8 Z,C,N,V,H  

 

Команды, выполняющие операции с непосредственным операндом (в аббревиатуре команд присутствует буква I, а также команды SBR,CBR и SER используют только верхние регистры R16-R31. Эти команды помечены в таблице знаком *. В командах умножения (кроме команды MUL) в качестве операндов могут использоваться только регистры R16 – R23. Эти команды отмечены знаком **.

В основном, операции выполняются над 8-разрядными операндами. Однако командами ADIW и SBIW выполняются операции над словами (два байта), причем эти команды являются командами с непосредственным операндом, предельное значение которого равно 63. Первый операнд в этих командах может размещаться в одной из 4-х пар самых верхних регистров общего назначения R25-R24, R27-R26, R29-R28, R31-R30. В аббревиатуре команды записывают только младший регистр пары. Например: ADIW R24,50 – сложить содержимое регистров R25 и R24 со значением 50.

При выполнении арифметических и логических команд устанавливаются признаки результатов операций (флаги) регистра состояний SREG.

Некоторые команды выполняют одинаковые операции (имеют одинаковый код), но имеют разную мнемонику. Например, команды ORI и SBR. Это улучшает читаемость команд, например, SBR R17,$55 – установить биты в регистре R17 по байту $55.

Команды сравнения CP,CPC и CPI выполняются вычитанием операндов, однако результат операции не сохраняется, а устанавливаются признаки ее.

 


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


Читайте в этой же книге: УПРАВЛЯЮЩИЕ СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ. | Особенности микроконтроллеров | Условное графическое обозначение микроконтроллера | Организация программной памяти | Организация памяти данных | Арифметико-логическое устройство и регистр состояния процессора | Методы адресации. Форматы команд | Система команд | Встроенные устройства | Подсистема прерываний микроконтроллера |
<== предыдущая страница | следующая страница ==>
Команды передачи данных (пересылки)| Команды сдвигов и операций с битами

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