ATmega328p register table (also ATmega8, 48, 88, 168.)
  Walking along the table below fills the bits of a Register
7654 3210
---- ----
/0123456789ABCDEF/
0R0R1R2R3R4R5R6R7R8R9R10R11R12R13R14R150
1R16R17R18R19R20R21R22R23R24R25R26R27R28R29R30R311
2PINADDRAPORTAPINBDDRBPORTBPINCDDRCPORTCPINDDDRDPORTDPINEDDREPORTEPINF2
3DDRFPORTFPINGDDRGPORTGTIFR0TIFR1TIFR2TIFR3PCIFREIFREIMSKGPIOR0EECR3
4EEDREEAR(L)EEARHGTCCRTCCR0ATCCR0B
*TCCR0
TCNT0
*TIMER0
*COUNTER0
OCR0A
*PWM0A
*COMPARE0A
OCR0B
*PWM0B
COMPARE0B
GPIOR1GPIOR2SPCRSPSRSPDR4
5ACSRSMCRMCUSR
*MCUCSR
MCUCRSPMCSR
*SPMCR
RAMPZ*SP(L)*SPH*SREG5
6WDTCSR
*WDTCR
CLKPRPRROSCCALPCICREICRAEICRBPCMSK0PCMSK1PCMSK2TIMSK0
*TIMSK
TIMSK16
7TIMSK2TIMSK3XMCRAXMCRBADC(L,W)ADCHADCSRA
*ADCSR
ADCSRBADMUXDIDR0DIDR17
8TCCR1ATCCR1BTCCR1CTCNT1(L)
*TIMER1A
TCNT1HICR1(L)
*CAPTURE1
ICR1HOCR1A(L)
*COMPARE1A
OCR1AHOCR1B(L)
*COMPARE1B
OCR1BHOCR1C
OCR1CL
OCR1CH8
9TCCR3ATCCR3BTCCR3CTCNT3
TCNT3L
TCNT3HICR3
ICR3L
ICR3HOCR3A
OCR3AL
OCR3AHOCR3B
OCR3BL
OCR3BHOCR3C
OCR3CL
OCR3CH9
AA
BTCCR2ATCCR2B
*TCCR2
TCNT2
*TIMER2
*COUNTER2
OCR2A
*PWM2A
*COMPARE2A
OCR2B
*PWM2B
*COMPARE2B
ASSRTWBRTWSRTWARTWDRTWCRTWAMRB
CUCSR0A
*USR
UCSR0B
*UCR
UCSR0C
*UCSRC
UBRR0(L)
*UBRR(L)
UBRR0H
*UBRRH(I)
UDR0
*UDR
UCSR1AUCSR1BUCSR1CUBRR1
UBRR1L
UBRR1HUDR1C
DD
EE
FF
/0123456789ABCDEF/

Source for the register table are files m328pdef.dat from BASCOM and iom328P.h from GCC.Most of the register names are identical for BASCOM and GCC. BASCOM has more synonyms,they are only known by BASCOM and these names are marked with an asterisk at the begin.The register address consists of row and column hexadecimal digits. Address of registerTIMSK1, for instance is 0x6F.

Walking along the register table puts the bit pattern of the register in the register window. Bit names of the registers are taken from GCC file and they are mostly compliant with BASCOM. There are some other register names in pale gray used by other Atmel controllers.