Code: Select all
AVR Instruction Set Summary
===========================
Several updates of the AVR CPU during its lifetime has resulted in different flavors of the instruction set, especially for the timing of the instructions. Machine code level of compatibility is intact for all CPU versions with a very few exceptions related to the Reduced Core (AVRrc), though not all instructions are included in the instruction set for all devices. The table below contains the major versions of the AVR 8-bit CPUs. In addition to the different versions, there are differences dependent of the size of the device memory map. Typically these differences are handled by a C/EC++ compiler, but users that are porting code should be aware that the code execution can vary slightly in number of clock cycles.
Name Device Description
Series
AVR AT90 Original instruction set from 1995.
AVRe megaAVR® Multiply (xMULxx), Move Word (MOVW), and enhanced Load Program Memory (LPM) added to the AVR instruction set. No timing differences.
AVRe tinyAVR® Multiply not included, but else equal to AVRe for megaAVR.
AVRxm XMEGA® Significantly different timing compared to AVR(e). The Read Modify Write (RMW) and DES encryption instructions are unique to this version.
AVRxt (AVR) AVR 2016 and onwards. This variant is based on AVRe and AVRxm. Closer related to AVRe, but with improved timing.
AVRrc tinyAVR The Reduced Core AVR CPU was developed for ultra-low pinout (6-pin) size constrained devices.
The AVRrc therefore only has a 16 registers register-file (R31-R16) and a limited instruction set.