První řádek vynuluje hodnotu zadaného bitu. Vlnovka "~" je logická negace bitu (NOT) a operátor "&" je logický součin AND. Pokud byla v registru speciální funkce (Special Function Registers) nastavena u daného bitu hodnota "1", tento příkaz hodnotu bitu vynuluje, tj. nastaví na "0".
Druhý řádek naopak nastaví hodnotu bitu na "1" pomocí operátoru "|", což je logický součet OR. Nezávisle na původní hodnotě bitu "0" nebo "1" bude bit nastaven na hodnotu "1".
#define, definuje funkci cbi(sfr, bit) kterou makro (_SFR_BYTE...) přeloží jako vynuluj hodnotu bitu v zadaném IO registru.
Funkce sbi pak nastaví hodnotu bitu v zadaném IO registru na "1".
Pokud bych chtěl např. vynulovat hodnotu bitu č. 2 (0000 0100b) IO registru 0x03 použil bych příkaz:
cbi(0x03, 2)
"cbi" je instrukce assembleru, clear bit in I/O register
Většinou se ale nepracuje přímo s adresou registru. Při programování konkrétního mikrokontroléru jsou adresy speciálních registrů již také definovány funkcí (v hlavičkových souborech *.h daného MCU), tj. příkaz pak bude vypadat např. takto:
cbi(PORTA.DIR, 2)
Při programování mikrokontrolérů není ale většinou nutné výše uvedené makro použít. Např. při programování MCU ATtiny202 ve vývojovém prostředí MPLAB X IDE použiji následující příkaz pro aktivaci slave SPI zařízení (MAX6675), nastavení signálu (SS - Slave Select) na hodnotu "0" a tím mu dám pokyn, aby mi začal posílat přes rozhraní SPI data (změřenou teplotu z
termočlánku typu K pomocí převodníku MAX6675).
PORTA.OUTCLR = PIN7_bm; // Set SS pin value to LOW