Система команд микроконтроллеров
В семействе 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
№ Операция Мнемокод команды Признаки результата H S V N Z C 32
ADIW
+ + + + + 33
SBIW
+ + + + + d = 24, 26, 28, 30, K = 0 – 63
Таблица 4
№ Операция Мнемокод команды № Операция Мнемокод команды 34
LSD
35
STS
d, r = 0 – 31, k – адрес из адресного пространства SRAM
Таблица 5
№ Операция Мнемокод команды № Операция Мнемокод команды 36
LD
37
ST
38
LD
39
ST
40
LD
41
ST
42
1
2
LD
43
1
2
ST
44
1
2
LD
45
1
2
ST
46
1
2
LD
47
1
2
ST
48
1
2
LD
49
1
2
ST
50
1
2
LD
51
1
2
ST
52
1
2
LD
53
1
2
ST
54
LDD
55
ST
56
LDD
57
ST
58
1
2
POP
59
1
2
PUSH
d, r = 0 – 31, q = 0 – 63
Таблица 6
№ Операция Мнемокод команды № Операция Мнемокод команды 60
IN
61
OUT
d, r = 0 – 31, P = 0 – 63 = $00-$3F
Таблица 7
№ Операция Мнемокод команды
(Z.15-1) – адрес в FlashROM
Z.0 = 0 – мл. ............