Atmel AVR Instruction Set - Instruction Encoding

Instruction Encoding

Bit assignments:

  • rrrrr = Source register
  • rrrr = Source register pair
  • ddddd = Destination register
  • dddd = destination register pair
  • hhhh = High register, R16–R31
  • pp = Register pair, W, X, Y or Z
  • y = Y/Z register pair bit (0=Z, 1=Y)
  • s = Store/load bit (0=load, 1=store)
  • c = call/jump (0=jump, 1=call)
  • aaaaaa = I/O space address
  • aaaaa = I/O space address (first 32 only)
  • bbb = Bit number
  • B = Bit value
  • kkkkkk = 6-bit unsigned constant
  • KKKKKKKK = 8-bit constant

The Atmel AVR uses many split fields, where bits are not contiguous in the instruction word. The load/store with offset instructions are the most extreme example. where a 6-bit offset is broken into 3 pieces.

Atmel AVR instruction set overview
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Instruction
0 0 0 0 0 0 0 1 d d d d r r r r MOVW Move register pair
0 0 0 0 0 0 1 d d d r r r Signed and fractional multiply (R16–R23 only)
0 0 0 0 0 1 r d d d d d r r r r 2-operand instructions
CPC, SBC, ADD, CPSE, CP,
SUB. ADC, AND, EOR, OR, MOV
0 0 0 0 1
0 0 0 1
0 0 1 0
0 0 1 1 K K K K h h h h K K K K Register-immediate instructions
CPI, SBCI, SUBI, ORI, ANDI
0 1
1 0 k 0 k k s d d d d d y k k k LDD/STD to Z+k or Y+k
1 0 0 1 0 0 s d d d d d LD/ST other
1 0 0 1 0 1 0 d d d d d 0 1-operand instructions (COM, NEG, SWAP, etc.)
1 0 0 1 0 1 0 0 B̅ b b b 1 0 0 0 SEx/CLx Status register clear/set bit
1 0 0 1 0 1 0 1 1 0 0 0 Misc instructions (RET, RETI, SLEEP, etc.)
1 0 0 1 0 1 0 c 0 0 0 1 0 0 1 Indirect jump/call to Z or EIND:Z
1 0 0 1 0 1 0 d d d d d 1 0 1 0 DEC Rd
1 0 0 1 0 1 0 0 k k k k 1 0 1 1 DES round k
1 0 0 1 0 1 0 k k k k k 1 1 c k JMP/CALL abs22
1 0 0 1 0 1 1 k k p p k k k k ADIW/SBIW Rp,uimm6
1 0 0 1 1 0 B a a a a a b b b I/O space bit operations
1 0 0 1 1 1 r d d d d d r r r r MUL, unsigned: R1:R0 = Rr×Rd
1 0 k 0 k k s d d d d d y k k k See 10k0 above
1 0 1 1 s a a d d d d d a a a a OUT/IN to I/O space
1 1 0 c 12 bit signed offset Relative jump/call to PC ± 2×simm12
1 1 1 0 K K K K h h h h K K K K LDI Rh,K
1 1 1 1 0 B̅ 7-bit signed offset b b b Conditional branch on status register bit
1 1 1 1 1 0 s d d d d d 0 b b b BLD/BST register bit to STATUS.T
1 1 1 1 1 1 B d d d d d 0 b b b SBRC/SBRS skip if register bit equals B

Read more about this topic:  Atmel AVR Instruction Set

Famous quotes containing the word instruction:

    “The care of a house, the conduct of a home, the management of children, the instruction and government of servants, are as deserving of scientific treatment and scientific professors and lectureships as are the care of farms, the management of manure and crops, and the raising and care of stock.”
    —Catherine E. Beecher (1800–1878)