Mikrokontroler AVR memiliki 32 register bantu (R0-R31) dengan ukuran sebesar 8 bit (ATmega32) yang menempati alamat data $0000 - $001F. Register ini dapat digunakan langsung karena sudah tersedia fasilitas ALU (Aritmethic Logic Unit). Untuk R0 dan R1 berfungsi menampung hasil perhitungan aritmetika. Sedangkan R16-R31 untuk pengambilan data secara immediate.
Adapun tips untuk memudahkan penggunaan register bantu, lebih baik di awal program didefinisikan dulu dengan nama sesuai perintah assembly directive. Contoh: .def TEMPORARY = R16 yang artinya mendefinisikan R16 dengan nama register TEMPORARY.
Memori yang ada di dalam mikrokontroler ATmega 32 antara lain General Purpose Register sebanyak 32 byte, seperti yang ditunjukkan pada gambar berikut.
Register tersebut dinamai R1 sampai dengan R31 dari alamat $00 sampai dengan $1F. Untuk pengalamatan indirect harus menggunakan pointer register sebesar 16 bit yang dirangkai dari dua register masing-masing 8 bit, yaitu X -> XH=R27, XL=R26; Pointer Y->YH=R29, YL=R28; Ponter Z->ZH=R31, ZL=R30.