AVR opcodes by Jeremy Brandon Most are single 16 bit words; four marked * have a second word to define an address or address extension (kkkk kkkk kkkk kkkk) d bits that specify an Rd (0..31 or 16..31 or 16..23 or 24..30) r bits that specify an Rr ( - ditto - ) k bits that specify a constant or an address q bits that specify an offset - bit that specifies pre-decrement mode: 0=no, 1=yes + bit that specifies post-decrement mode: 0=no, 1=yes x bit of any value s bits that specify a status bit (0..7) A bits that specify i/o memory b bits that define a bit (0..7) Note: all bits shown as . are the same as in the row above. 0000 0000 0000 0000 NOP .... 0001 dddd rrrr MOVW .... 0010 dddd rrrr MULS .... 0011 0ddd 0rrr MULSU .... .... 0... 1... FMUL .... .... 1... 0... FMULS .... .... 1... 1... FMULSU .... 01rd dddd rrrr CPC .... 10.. .... .... SBC .... 11.. .... .... ADD 0001 00.. .... .... CPSE .... 01.. .... .... CP .... 10.. .... .... SUB .... 11.. .... .... ADC 0010 00.. .... .... AND .... 01.. .... .... EOR .... 10.. .... .... OR .... 11.. .... .... MOV 0011 kkkk dddd kkkk CPI 0100 .... .... .... SBCI 0101 .... .... .... SUBI 0110 .... .... .... ORI 0111 .... .... .... ANDI 1000 000d dddd 0000 LD Z .... .... .... 1... LD Y 10q0 qq0d dddd 0qqq LDD Z .... .... .... 1... LDD Y .... ..1. .... 0... STD Z .... .... .... 1... STD Y 1001 000d dddd 0000 LDS * .... .... .... 00-+ LD -Z+ .... .... .... 010+ LPM Z .... .... .... 011+ ELPM Z .... .... .... 10-+ LD -Y+ .... .... .... 11-+ LD X .... .... .... 1111 POP .... 001r rrrr 0000 STS * .... .... .... 00-+ ST -Z+ .... .... .... 01xx ??? .... .... .... 10-+ ST -Y+ .... .... .... 11-+ ST X .... ...d dddd 1111 PUSH .... 010d dddd 0000 COM .... .... .... 0001 NEG .... .... .... 0010 SWAP .... .... .... 0011 INC .... .... .... 0100 ??? .... .... .... 0101 ASR .... .... .... 0110 LSR .... .... .... 0111 ROR .... .... .... 1010 DEC .... 0100 0sss 1000 BSET .... .... 1... .... BCLR .... .... 0000 1001 IJMP .... .... ...1 .... EIJMP .... 0101 0000 1000 RET .... .... .... 1001 ICALL .... .... 0001 1000 RETI .... .... .... 1001 EICALL .... .... 1000 1000 SLEEP .... .... 1001 .... BREAK .... .... 1010 .... WDR .... .... 1100 .... LPM .... .... 1101 .... ELPM .... .... 1110 .... SPM .... .... 1111 .... ESPM .... 010k kkkk 110k JMP * .... .... .... ..1. CALL * .... 0110 kkdd kkkk ADIW .... 0111 .... .... SBIW .... 1000 AAAA Abbb CBI .... 1001 .... .... SBIC .... 1010 .... .... SBI .... 1011 .... .... SBIS .... 11rd dddd rrrr MUL 1011 0AAd dddd AAAA IN .... 1..r rrrr .... OUT 1100 kkkk kkkk kkkk RJMP 1101 .... .... .... RCALL 1110 kkkk dddd kkkk LDI 1111 00kk kkkk ksss BRBS .... 01.. .... .... BRBC .... 100d dddd 0bbb BLD .... 101. .... .... BST .... 110r rrrr 0bbb SBRC .... 111. .... .... SBRS