Atxmega má instrukce pro manipulaci s jednotlivými bity (CBI, SBI a podobně), ale ty nelze uplatnit na registry, které řídí porty. Z toho plyne že se k portům musí přistupovat komplikovanějšími istrukcemi (nejméně 2 strojové cykly) a ty zpomalují jejich ovládání. Někdy ale budete chtít ovládat porty co nejrychleji. V takovém případě si můžete celkem čtyři porty "namapovat" na takzvané virtuální porty. Virtuální porty už lze ovládat bitovými instrukcemi a práce s nimi může být rychlejší (1 srojový cyklus). Virtuální porty lze ovládat pomocí registrů DIR,OUT a IN. Na první pohled se vám může zdát, že absence registrů typu "SET" a "CLR" vás bude nutit k read-modify-write přístupu, který je sám o sobě pomalý. Kompilátor, ale přístup optimalizuje, takže zápis:
VPORT0.OUT |= PIN6_bm; VPORT0.OUT &= ~PIN6_bm;
SBI 0x11,6 Set bit in I/O register CBI 0x11,6 Clear bit in I/O register
PORTC.OUTSET = PIN6_bm; PORTC.OUTCLR = PIN6_bm;
STD Z+5,R24 Store indirect with displacement STD Z+6,R24 Store indirect with displacement