AT90S8515

Manufacturer Part NumberAT90S8515
Description8-bit microcontroller with 8K bytes in-system programmable flash, 2.7-6.0V
ManufacturerATMEL Corporation
AT90S8515 datasheet
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
Page 101
102
Page 102
103
Page 103
104
Page 104
105
Page 105
106
Page 106
107
Page 107
108
Page 108
109
Page 109
110
Page 110
111
112
Page 106/112:

Instruction Set Summary

Download datasheet (3Mb)Embed
PrevNext

Instruction Set Summary

Mnemonic
Operands
Description
ARITHMETIC AND LOGIC INSTRUCTIONS
ADD
Rd, Rr
Add Two Registers
ADC
Rd, Rr
Add with Carry Two Registers
ADIW
Rdl, K
Add Immediate to Word
SUB
Rd, Rr
Subtract Two Registers
SUBI
Rd, K
Subtract Constant from Register
SBC
Rd, Rr
Subtract with Carry Two Registers
SBCI
Rd, K
Subtract with Carry Constant from Reg.
SBIW
Rdl, K
Subtract Immediate from Word
AND
Rd, Rr
Logical AND Registers
ANDI
Rd, K
Logical AND Register and Constant
OR
Rd, Rr
Logical OR Registers
ORI
Rd, K
Logical OR Register and Constant
EOR
Rd, Rr
Exclusive OR Registers
COM
Rd
One’s Complement
NEG
Rd
Two’s Complement
SBR
Rd, K
Set Bit(s) in Register
CBR
Rd, K
Clear Bit(s) in Register
INC
Rd
Increment
DEC
Rd
Decrement
TST
Rd
Test for Zero or Minus
CLR
Rd
Clear Register
SER
Rd
Set Register
BRANCH INSTRUCTIONS
RJMP
k
Relative Jump
IJMP
Indirect Jump to (Z)
RCALL
k
Relative Subroutine Call
ICALL
Indirect Call to (Z)
RET
Subroutine Return
RETI
Interrupt Return
CPSE
Rd, Rr
Compare, Skip if Equal
CP
Rd, Rr
Compare
CPC
Rd, Rr
Compare with Carry
CPI
Rd, K
Compare Register with Immediate
SBRC
Rr, b
Skip if Bit in Register Cleared
SBRS
Rr, b
Skip if Bit in Register is Set
SBIC
P, b
Skip if Bit in I/O Register Cleared
SBIS
P, b
Skip if Bit in I/O Register is Set
BRBS
s, k
Branch if Status Flag Set
BRBC
s, k
Branch if Status Flag Cleared
BREQ
k
Branch if Equal
BRNE
k
Branch if Not Equal
BRCS
k
Branch if Carry Set
BRCC
k
Branch if Carry Cleared
BRSH
k
Branch if Same or Higher
BRLO
k
Branch if Lower
BRMI
k
Branch if Minus
BRPL
k
Branch if Plus
BRGE
k
Branch if Greater or Equal, Signed
BRLT
k
Branch if Less Than Zero, Signed
BRHS
k
Branch if Half-carry Flag Set
BRHC
k
Branch if Half-carry Flag Cleared
BRTS
k
Branch if T-flag Set
BRTC
k
Branch if T-flag Cleared
BRVS
k
Branch if Overflow Flag is Set
BRVC
k
Branch if Overflow Flag is Cleared
BRIE
k
Branch if Interrupt Enabled
BRID
k
Branch if Interrupt Disabled
AT90S8515
106
Operation
Flags
Rd ← Rd + Rr
Z,C,N,V,H
Rd ← Rd + Rr + C
Z,C,N,V,H
Rdh:Rdl ← Rdh:Rdl + K
Z,C,N,V,S
Rd ← Rd - Rr
Z,C,N,V,H
Rd ← Rd - K
Z,C,N,V,H
Rd ← Rd - Rr - C
Z,C,N,V,H
Rd ← Rd - K - C
Z,C,N,V,H
Rdh:Rdl ← Rdh:Rdl - K
Z,C,N,V,S
Rd ←=Rd • Rr
Z,N,V
Rd ← Rd •=K
Z,N,V
Rd ← Rd v Rr
Z,N,V
Rd ←=Rd v K
Z,N,V
Rd ← Rd ⊕ Rr
Z,N,V
Rd ← $FF - Rd
Z,C,N,V
Rd ← $00 - Rd
Z,C,N,V,H
Rd ← Rd v K
Z,N,V
Rd ← Rd • ($FF - K)
Z,N,V
Rd ← Rd + 1
Z,N,V
Rd ← Rd - 1
Z,N,V
Rd ← Rd • Rd
Z,N,V
Rd ← Rd ⊕ Rd
Z,N,V
Rd ← $FF
None
PC=← PC + k + 1
None
PC ← Z
None
PC ← PC + k + 1
None
PC ← Z
None
PC ← STACK
None
PC ← STACK
I
if (Rd = Rr) PC=← PC + 2 or 3
None
Rd - Rr
Z,N,V,C,H
Rd - Rr - C
Z,N,V,C,H
Rd - K
Z,N,V,C,H
if (Rr(b) = 0) PC ← PC + 2 or 3
None
if (Rr(b) = 1) PC ← PC + 2 or 3
None
if (P(b) = 0) PC ← PC + 2 or 3
None
if (P(b) = 1) PC ← PC + 2 or 3
None
if (SREG(s) = 1) then PC ←=PC + k + 1
None
if (SREG(s) = 0) then PC ←=PC + k + 1
None
if (Z = 1) then PC ← PC + k + 1
None
if (Z = 0) then PC ← PC + k + 1
None
if (C = 1) then PC ← PC + k + 1
None
if (C = 0) then PC ← PC + k + 1
None
if (C = 0) then PC ← PC + k + 1
None
if (C = 1) then PC ← PC + k + 1
None
if (N = 1) then PC ← PC + k + 1
None
if (N = 0) then PC ← PC + k + 1
None
if (N ⊕ V = 0) then PC ← PC + k + 1
None
if (N ⊕ V = 1) then PC ← PC + k + 1
None
if (H = 1) then PC ← PC + k + 1
None
if (H = 0) then PC ← PC + k + 1
None
if (T = 1) then PC ← PC + k + 1
None
if (T = 0) then PC ← PC + k + 1
None
if (V = 1) then PC ← PC + k + 1
None
if (V = 0) then PC ← PC + k + 1
None
if (I = 1) then PC ← PC + k + 1
None
if (I = 0) then PC ← PC + k + 1
None
# Clocks
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
3
3
4
4
1/2/3
1
1
1
1/2/3
1/2/3
1/2/3
1/2/3
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
0841G–09/01