Система команд микроконтроллеров
В семействе AVR система команд у микроконтроллеров разных типов содержат от 89 до 130 команд (табл. В1, колонка NK). У микроконтроллеров типа 2323, 2343, 2313, 4433, 8515 и 8535 в систему команд входят 118 команд. Эту систему команд будем называть базовой.
В табл. 1—13 описаны операции, выполняемые по командам базовой системы, и приведены мнемокоды команд, используемые при разработке программы на языке AVR Ассемблера. В таблицах дана сквозная нумерация команд, используемая далее в тексте.
Базовая система команд содержит:
■ 33 команды регистровых операций, при выполнении которых используются только регистры общего назначения (команды №№ 1—33);
■ 26 команд с обращением по адресу в адресном пространстве SRAM (команды №№ 34—59);
■ 2 команды с обращением к регистрам ввода-вывода (команды №№ 60 и 61);
■ 1 команда с обращением к FlashROM (команда № 62);
■ 22 команды операций с битами в разрядах регистров общего назначения и регистров ввода-вывода (команды №№ 63—84);
■ 34 команды управления ходом программы (команды №№ 85—118).
В систему команд микроконтроллеров типа t1l, t12, t15, 1200 и t28, у которых нет SRAM, не входят команды с обращением по адресу в адресном пространстве SRAM за исключением команд с мнемокодами LD Rd, Z (№ 40) и ST Z, Rr (№ 41), по которым производится обращение к регистрам общего назначения и регистрам ввода-вывода с использованием косвенной адресации. В систему команд у этих микроконтроллеров не входят также 2 команды регистровых операций (№№ 32 и 33) и две команды управления ходом программы (№№ 86 и 88). У микроконтроллеров типа 1200 в систему команд не входит также команда с обращением к FlashROM (№ 62).
В систему команд микроконтроллеров типа m163 и m10З входят дополнительные команды. Появление некоторых из них связано с увеличенным объемом FlashROM, а у микроконтроллера типа т163, кроме того, с наличием аппаратного умножителя.
При разработке программы работы микроконтроллера кроме мнемокодов команд используются директивы ассемблера и другие средства ассемблера. Особенности разработки программы на языке AVR Ассемблера фирмы Atmel рассмотрены в приложении П8.
Таблица 1
№ | Операция | Мнемокод команды | Признаки результата | |||||
H | S | V | N | Z | C | |||
1 | | CLR | 0 | 0 | 0 | 1 | ||
2 | | TST | + | 0 | + | + | ||
3 | | COM | + | 0 | + | + | 1 | |
4 | | NEG | + | + | + | + | + | + |
5 | | INC | + | + | + | + | ||
6 | | DEC | + | + | + | + | ||
7 | | LSR | + | + | 0 | + | + | |
8 | | LSL | + | + | + | + | + | + |
9 | | ROR | + | + | + | + | + | |
10 | | ROL | + | + | + | + | + | + |
11 | | ASR | + | + | + | + | + | |
12 | | SWAP | ||||||
13 | | MOV | ||||||
14 | | ADDV | + | + | + | + | + | + |
15 | | ADC | + | + | + | + | + | + |
16 | | SUB | + | + | + | + | + | + |
17 | | SBC | + | + | + | + | + | + |
18 | | CP | + | + | + | + | + | + |
19 | | CPC | + | + | + | + | + | + |
20 | | AND | + | 0 | + | + | + | |
21 | | OR | + | 0 | + | + | ||
22 | | EOR | + | 0 | + | + | ||
d = 0 – 31, r = 0 – 31 |
Таблица 2
№ | Операция | Мнемокод команды | Признаки результата | |||||
23 | | SER | H | S | V | N | Z | C |
24 | | LDI | ||||||
25 | | SUBI | + | + | + | + | + | + |
26 | | SBCI | + | + | + | + | + | + |
27 | | CPI | + | + | + | + | + | + |
28 | | ANDI | + | 0 | + | + | ||
29 | | CBR | + | 0 | + | + | ||
30 | | ORI | + | 0 | + | + | ||
31 | | SBR | + | 0 | + | + | ||
d = 16 – 31 (‘), K = 0 – 255 |
Таблица 3