10
8161AS–AVR–11/08
ATmega88PA
Note: 1. For compatibility with future devices, reserved bits should be written to zero if accessed. Reserved I/O memory addresses
should never be written.
2. I/O Registers within the address range 0x00 - 0x1F are directly bit-accessible using the SBI and CBI instructions. In these
registers, the value of single bits can be checked by using the SBIS and SBIC instructions.
3. Some of the Status Flags are cleared by writing a logical one to them. Note that, unlike most other AVRs, the CBI and SBI
instructions will only operate on the specified bit, and can therefore be used on registers containing such Status Flags. The
CBI and SBI instructions work with registers 0x00 to 0x1F only.
4. When using the I/O specific commands IN and OUT, the I/O addresses 0x00 - 0x3F must be used. When addressing I/O
Registers as data space using LD and ST instructions, 0x20 must be added to these addresses. The ATmega88PA is a com-
plex microcontroller with more peripheral units than can be supported within the 64 location reserved in Opcode for the IN
and OUT instructions. For the Extended I/O space from 0x60 - 0xFF in SRAM, only the ST/STS/STD and LD/LDS/LDD
instructions can be used.
5. Only valid for ATmega88PA/168PA.
6. Instruction Set Summary
0x1D (0x3D) EIMSK – – – –INT1INT0 64
0x1C (0x3C) EIFR INTF1 INTF0 64
0x1B (0x3B) PCIFR – – – – PCIF2 PCIF1 PCIF0
0x1A (0x3A) Reserved – – – – – –
0x19 (0x39) Reserved – – – – – –
0x18 (0x38) Reserved – – – – – –
0x17 (0x37) TIFR2 – – – OCF2B OCF2A TOV2 155
0x16 (0x36) TIFR1 –ICF1 OCF1B OCF1A TOV1 132
0x15 (0x35) TIFR0 – – – OCF0B OCF0A TOV0
0x14 (0x34) Reserved – – – – – –
0x13 (0x33) Reserved – – – – – –
0x12 (0x32) Reserved – – – – – –
0x11 (0x31) Reserved – – – – – –
0x10 (0x30) Reserved – – – – – –
0x0F (0x2F) Reserved – – – – – –
0x0E (0x2E) Reserved – – – – – –
0x0D (0x2D) Reserved – – – – – – –
0x0C (0x2C) Reserved – – – – – – –
0x0B (0x2B) PORTD PORTD7 PORTD6 PORTD5 PORTD4 PORTD3 PORTD2 PORTD1 PORTD0 85
0x0A (0x2A) DDRD DDD7 DDD6 DDD5 DDD4 DDD3 DDD2 DDD1 DDD0 85
0x09 (0x29) PIND PIND7 PIND6 PIND5 PIND4 PIND3 PIND2 PIND1 PIND0 85
0x08 (0x28) PORTC PORTC6 PORTC5 PORTC4 PORTC3 PORTC2 PORTC1 PORTC0 84
0x07 (0x27) DDRC DDC6 DDC5 DDC4 DDC3 DDC2 DDC1 DDC0 84
0x06 (0x26) PINC PINC6 PINC5 PINC4 PINC3 PINC2 PINC1 PINC0 84
0x05 (0x25) PORTB PORTB7 PORTB6 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0 84
0x04 (0x24) DDRB DDB7 DDB6 DDB5 DDB4 DDB3 DDB2 DDB1 DDB0 84
0x03 (0x23) PINB PINB7 PINB6 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0 84
0x02 (0x22) Reserved – – – – – –
0x01 (0x21) Reserved – – – – – –
0x0 (0x20) Reserved – – – – – – –
Mnemonics Operands Description Operation Flags #Clocks
ARITHMETIC AND LOGIC INSTRUCTIONS
ADD Rd, Rr Add two Registers Rd Rd + Rr Z,C,N,V,H 1
ADC Rd, Rr Add with Carry two Registers Rd Rd + Rr + C Z,C,N,V,H 1
ADIW Rdl,K Add Immediate to Word Rdh:Rdl Rdh:Rdl + K Z,C,N,V,S 2
SUB Rd, Rr Subtract two Registers Rd Rd - Rr Z,C,N,V,H 1
SUBI Rd, K Subtract Constant from Register Rd Rd - K Z,C,N,V,H 1
SBC Rd, Rr Subtract with Carry two Registers Rd Rd - Rr - C Z,C,N,V,H 1
SBCI Rd, K Subtract with Carry Constant from Reg. Rd Rd - K - C Z,C,N,V,H 1
SBIW Rdl,K Subtract Immediate from Word Rdh:Rdl Rdh:Rdl - K Z,C,N,V,S 2
AND Rd, Rr Logical AND Registers Rd Rd Rr Z,N,V 1
ANDI Rd, K Logical AND Register and Constant Rd Rd K Z,N,V 1
OR Rd, Rr Logical OR Registers Rd Rd v Rr Z,N,V 1
ORI Rd, K Logical OR Register and Constant Rd Rd v K Z,N,V 1
EOR Rd, Rr Exclusive OR Registers Rd Rd Rr Z,N,V 1
COM Rd One’s Complement Rd 0xFF Rd Z,C,N,V 1
Address Name Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Page