Käsustik

ATmega88 on RISC arhitektuuril põhinev mikrokontroller, millel on 131 käsku.

  • Käsud jaotuvad alljärgnevalt:
  • Aritmeetika ja loogika käsud
  • Biti ja biti kontrolli käsud
  • Andmete liigutamise käsud
  • Hargnemiskäsud
  • MCU käsud (juhtkäsud)

Enamiku lihtsamate käskude täitmiseks kulub mikrokontrolleril üks takt, samas keerukamate käskude puhul võib kuluda ka 2, 3 või 4 takti.

Käsud kirjutatakse programmis mnemoonilisel kujul, see tähendab, et näiteks käsk Set Register (pane registrisse kõik ühed) kirjutatakse programmis SER. Igale mnemoonilisel kujul kirjutatud käsule järgnevad operandid, need on elemendid, millega tehakse tehteid. Osal käskudest, näiteks liitmisel, järgneb käsule kindlasti kaks operandi, samas kui näiteks käsule inc (liida üks) järgneb ainult üks operand.

Selleks, et osata lugeda käskude tabeleid, on vaja teada, kuidas operande tähistatakse.

Operandide tähistused:

Rd - register, millesse pannakse tehte tulemus

Rr - register, millest võetakse andmed tehte tegemiseks, aga teda ennast ei muudeta

K - konstant, suvaline number, 8-bitilise registri puhul vahemikus 0-255

b - biti järjekorranumber registris, mille sisu muudetakse

P - sisend- / väljundpordi aadress

k - mälu aadress, mis on tavaliselt programmis tähistatud märgendiga

X - 16 bitiline register, mis koosneb kahest 8 bitilisest registrist r26 ja r27

Y - 16 bitiline register, mis koosneb kahest 8 bitilisest registrist r28 ja r29

Z - 16 bitiline register, mis koosneb kahest 8 bitilisest registrist r30 ja r31

Ühed käsud muudavad lipuregistri ehk staatusregistri (SREG) sisu, kuid teised mitte. Selles registris peetakse meeles tehte erilisi tunnuseid, nagu näiteks, kas eelmise tehte tulemus oli null (siis pannakse Z lipp üheks), negatiivne (siis pannakse N lipp üheks), toimus registri ülekanne (siis pannakse C lipp üheks), toimus poole baidi ülekanne (H), katkestus (I) jne.

Lisaks mikrokontrolleri käskudele on vahel mõistlik kasutada kompilaatori käske, mis teevad programmeerimise kohati mugavamaks.

Kompilaatori käsud võivad olla erinevatel programmeerimise keskkondadel erinevad. AVR Studios on sellisteks käskudeks näiteks:

.db - tabeli algus

.equ - selle käsuga saab muuta registrite nimesid