▪ 1 команда с обращением к FlashROM (команда № 62);
▪ 22 команды операций с битами в разрядах регистров общего назначения и регистров ввода-вывода (команды №№ 63-84);
▪ 34 команды управления ходом программы (команды №№ 85-118).
В систему команд микроконтроллеров типа t11, t12, t15, 1200, и t28, у которых нет SRAM, не входят команды с обращением по адресу в адресном пространстве SRAM за исключением команд с мнемокодами LDRd, Z (№ 40) и STZ, Rr (№ 41), по которым производится обращение к регистрам общего назначения и регистрам ввода-вывода с использованием косвенной адресации. В систему команд у этих микроконтроллеров не входят также 2 команды регистровых операций (№№ 32 и 33) и две команды управления ходом программы (№№ 86 и 88). У микроконтроллеров типа 1200 в систему команд не входит также команда с обращением к FlashROM, а у микроконтроллера типа m163, кроме того, с наличием аппаратного умножителя.
Таблица 2
№ | Операция | Мнемокод команды | Признаки результата | |||||||||
H | S | V | N | Z | C | |||||||
1 | $00→Rd ((Rd) (Rd) →Rd) | CKR Rd | 0 | 0 | 0 | 1 | ||||||
2 | (Rd) → Rd((Rd)^( Rd) → Rd) | TST Rd | + | 0 | + | + | ||||||
3 | (Rd) → Rd($FF-( Rd) → Rd) | COM Rd | + | 0 | + | + | 1 | |||||
4 | - (Rd) → Rd($00-( Rd) → Rd) | NEG Rd | + | + | + | + | + | + | ||||
5 | (Rd)+1→ Rd | INC Rd | + | + | + | + | ||||||
6 | (Rd)-1→ Rd | DEC Rd | + | + | + | + | ||||||
7 | 0→( Rd) →C | LSR Rd | + | + | 0 | + | + | |||||
8 | C←( Rd) ←0 | LSL Rd | + | + | + | + | + | + | ||||
9 | C→( Rd) →C | ROR Rd | + | + | + | + | + | |||||
10 | C←( Rd) ←C | ROL Rd | + | + | + | + | + | + | ||||
11 | Rd.7→( Rd.6- Rd.0) →C | ASR Rd | + | + | + | + | + | |||||
12 | Rd.4-7↔ Rd.0-3 | SWAP Rd | ||||||||||
13 | (Rr) → Rd | MOV Rd, Rr | ||||||||||
14 | (Rd)+(Rr) → Rd | ADD Rd, Rr | + | + | + | + | + | + | ||||
15 | (Rd)+(Rr)+C→ Rd | ADC Rd, Rr | + | + | + | + | + | + | ||||
16 | (Rd)-(Rr) → Rd | SUB Rd, Rr | + | + | + | + | + | + | ||||
17 | (Rd)-(Rr)-C→ Rd | SBC Rd, Rr | + | + | + | + | + | + | ||||
18 | (Rd)-(Rr) | CP Rd, Rr | + | + | + | + | + | + | ||||
19 | (Rd)-(Rr)-C | CPC Rd, Rr | + | + | + | + | + | + | ||||
20 | (Rd) ^(Rr) → Rd | AND Rd, Rr | + | 0 | + | + | + | |||||
21 | (Rd)˅(Rr) → Rd | OR Rd, Rr | + | 0 | + | + | ||||||
22 | (Rd) (Rr) → Rd | EOR Rd, Rr | + | 0 | + | + | ||||||
d=0-31; r=0-31 |
Таблица 3
№ | Операция | Мнемокод команды | Признаки результата | |||||
H | S | V | N | Z | C | |||
23 | $FF→ Rd | SER Rd | ||||||
24 | K→ Rd | LDI Rd, K | ||||||
25 | (Rd)-K→ Rd | SUBI Rd, K | + | + | + | + | + | + |
26 | (Rd)-K-C→ Rd | SBCI Rd, K | + | + | + | + | + | + |
27 | (Rd)-K | CPI Rd, K | + | + | + | + | + | + |
28 | (Rd) ^K→ Rd | ANDI Rd, K | + | 0 | + | + | ||
29 | (Rd) ^K→ Rd | CBR Rd, K | + | 0 | + | + | ||
30 | (Rd) ˅K→ Rd | ORI Rd, K | + | 0 | + | + | ||
31 | (Rd) ˅K→ Rd | SBR Rd, K | + | 0 | + | + | ||
d=16-31(!); K=0-255 |
Таблица 4
№ | Операция | Мнемокод команды | Признаки результата | |||||
H | S | V | N | Z | C | |||
32 | (Rd+1, Rd)+K→ Rd+1,Rd | ADIWRd, K | + | + | + | + | + | |
33 | (Rd+1,Rd)-K→ Rd+1,Rd | SBIW Rd, K | + | + | + | + | + | |
d=24, 26, 28,30; K=0-63 |
6.2 Система команд
Таблица 5
№ | Операция | Мнемокод команды | № | Операция | Мнемокод команды | |
34 | (Ячk) → Rd | LDS Rd, K | 35 | (Rr) →Ячk | STS k, Rr | |
d, r=0-31; k – адрес из адресного пространства SRAM |
Таблица 6
№ | Операция | Мнемокод команды | № | Операция | Мнемокод команды |
36 | (Яч(X)) → Rd | LD Rd, X | 37 | (Rr) →Яч(X) | ST X, Rr |
38 | (Яч(Y)) → Rd | LD Rd, Y | 39 | (Rr) →Яч(Y) | ST Y, Rr |
40 | (Яч(Z)) → Rd | LD Rd, Z | 41 | (Rr) →Яч(Z) | ST Z, Rr |
42 | 1.(Яч(X)) → Rd2. (X)+1→X | LD Rd, X+ | 43 | 1.(Rr)→Яч(X) 2.(X)+1→X | ST X+, Rr |
44 | 1.(Яч(Y)) → Rd2. (Y)+1→Y | LD Rd, Y+ | 45 | 1.(Rr)→Яч(Y) 2.(Y)+1→Y | ST Y+, Rr |
46 | 1.(Яч(Z)) → Rd2. (Z)+1→Z | LD Rd, Z+ | 47 | 1.(Rr)→Яч(Z) 2.(Z)+1→Z | ST Z+, Rr |
48 | 1.(X)-1→X 2. (Яч(X))→ Rd | LD Rd, -X | 49 | 1.(X)-1 →X 2.(Rr)→Яч(X) | ST -X, Rr |
50 | 1.(Y)-1→Y 2. (Яч(Y))→ Rd | LD Rd, -Y | 51 | 1.(Y)-1 →Y 2.(Rr)→Яч(Y) | ST -Y, Rr |
52 | 1.(Z)-1→Z 2. (Яч(Z))→ Rd | LD Rd, -Z | 53 | 1.(Z)-1 →Z 2.(Rr)→Яч(Z) | ST -Z, Rr |
54 | (Яч(Y)+q) → Rd | LDD Rd, Y+q | 55 | (Rr)→Яч(Y)+q | STDY+q, Rr |
56 | (Яч(Z)+q) → Rd | LDD Rd, Z+q | 57 | (Rr)→Яч(Z)+q | STDZ+q, Rr |
58 | 1.(SP)+1→SP 2. (СТЕК)→ Rd | POP Rd | 59 | 1.(Rr)-1→СТЕК 2.(SP)-1→SP | PUSH Rr |
d, r = 0-31; q=0-63 |
Таблица 7
№ | Операция | Мнемокод команды | № | Операция | Мнемокод команды | |
60 | (PrP) → Rd | IN Rd, P | 61 | (Pr) →PrP | OUT P,Pr | |
d, r = 0-31; P=0-63=S00-$3F |
Таблица 8
№ | Операция | Мнемокод команды | (Z.15-1) – адрес в FlashROMZ.0 = 0 – мл. байт; Z.0 =1 –ст. байт |
62 | (Яч(Z))→ R0 | LPM |
Таблица 9
№ | Операция | Мнемокод команды | № | Операция | Мнемокод команды | |
63 | T→ Rd.b | BLD Rd, b | 64 | Rr.b →T | BSTRr, b | |
65 | 0→ PrP.b | CBI P, b | 66 | 1→PrP.b | SBI P, b | |
67 | 0→ SREG.b | BLSR b | 68 | 1→SREG.b | SSET b | |
d, r = 0-31; P=0-31 (!); b= 0-7 |
Таблица 10
№ | Операция | Мнемокод команды | № | Операция | Мнемокод команды |
69 | 0→I | CLI Rd, X | 70 | 1 →I | SEI |
71 | 0 →T | CLT | 72 | 1 →T | SET |
73 | 0→H | CLH | 74 | 1 →H | SEH |
75 | 0→S | CLS | 76 | 1→S | SES |
77 | 0→V | CLV | 78 | 1→V | SEV |
79 | 0→N | CLN | 80 | 1→N | SEN |
81 | 0→Z | CLZ | 82 | 1→Z | SEZ |
83 | 0→C | CLC | 84 | 1→C | SEC |
Таблица 11
№ | Операция | Мнемокод команды | № | Операция | Мнемокод команды | |
85 | (PC)+1+k→PC | RJMP k | 86 | (Z) →PC | IJMP | |
87 | (PC)+→СТЕК(SP)-2→SP(PC)+1+k→PC | RCALL k | 88 | (PC)+1→СТЕК(SP)-2→SP(Z) →PC | ICALL | |
89 | (SP)+2→ SP(СТЕК) →PC | RET | 90 | (SP)+2→SP(СТЕК) →PC1→I | RETI | |
k= -2048 - +2047 |
Таблица 12
№ | Условие | Мнемокод команды | № | Условие | Мнемокод команды |
91 | I = 0 | BRID k | 92 | I = 1 | BRIE k |
93 | T = 0 | BRTC k | 94 | T = 1 | BRTS k |
95 | H = 0 | BRHC k | 96 | H = 1 | BRHS k |
97 | S = 02. (X)+1→X | BRGE k | 98 | S = 1 | BRLT k |
99 | V = 0 | BRVC | 100 | V = 1 | BRVS k |
101 | N = 0 | BRPL k | 102 | N = 1 | BRMI k |
103 | Z = 0 | BRNE k | 104 | Z = 1 | BREQ k |
105 | C = 0 | BRCC k | 106 | C = 1 | BRCS k |
107 | C = 0 | BRSH k | 108 | C = 1 | BRLO k |
109 | SREG.b = 0 | BRBC b, k | 110 | SREG.b = 1 | BRBS b, k |
k= -64 - +63; b = 0 - 7 |
Таблица 13
№ | Условие | Мнемокод команды | № | Условие | Мнемокод команды |
111 | Rr.b = 0 | SBRC Rr, b | 112 | Rrb = 1 | SBRS Rr, b |
113 | PrP.b = 0 | SBIC P, b | 114 | PrP.b = 1 | SPIS P, b |
115 | (Rd) = (Rr) | CPSE Rd, Rr | |||
d, r= 0 – 31; P = 0 – 31 (!); b = 0 - 7 |
Таблица 14
№ | Операция | Мнемокод команды |
116 | MK → режим энергосбережения | SLEEP |
117 | Перезапуск WDT | WDR |
118 | Нет | NOP |
6.3 Команды регистровых операций
В группу регистровых операций входят пересылочные, арифметические и логические операции. Команды регистровых операций описаны в табл. 2, 3 и 4 Машинные коды всех команд регистровых операций имеют формат «слово», команды №№ 1 – 31 выполняются за один такт, а команды №№ 32 и 33 – за два такта.
При описании операций в табл. 2 – 4 используются следующие обозначения:
▪ Rd, Rr – регистры общего назначения с номерами d и r соответственно;