Система команд микроконтроллеров
В семействе 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