Näide

Näide 1

;eeldame, et pordid on konfigureeritud õigesti ja vajalikud registrid defineeritud ning viide on eelnevalt ;valmis kirjutatud

;----------Nupu skaneerimine-------------------------------------------------------------------

 

ldi r16, 0xfe                        ;registrisse r16 pannakse number 0xfe ehk 0b11111110

 

 

Tsykkel:                           ;märgend programmis, mille järgi on võimalik pöörduda siia kohta                                               ;programmis

out portd, r16                   ;registri r16 sisu saadetakse port D väljundisse

in r17, pinc                       ;port c sisendis olev info pannakse registrisse r17

andi r17, 0x02                   ;registri r17 sisule tehakse and tehe numbriga 00000010, selline mask                                       ;võimaldab kontrollida ainult PC1 sisendit

breq Loop                         ;kui sisendis PC1 oli null, siis hüpatakse kohta Loop, kui PC1 oli üks, siis                                       ;täidetakse järgmine käsk

in r17, pinc                       ;port c sisendis olev info pannakse registrisse r17, teistkordne lugemine on                                       ;vajalik, kuna and tehte tulemus kirjutatakse r17 registrisse

andi r17, 0x04                   ; registri r17 sisule tehakse and tehe numbriga 00000100, selline mask                                       ;võimaldab kontrollida ainult PC2 sisendit

breq Loop                         ;kui sisendis PC2 oli null, siis hüpatakse kohta Loop, kui PC2 oli üks, siis                                       ;täidetakse järgmine käsk

sec                                 ;staatusregistri lipp mis näitab registri ületäitumist pannakse üheks, sest                                       ;rol käsk toimub läbi ületäitumise biti

rol r16                              ;registri r16 sisu nuhutatakse ühe võrra vasakule

rjmp Tsykkel                      ;hüpatakse programmis kohta nimega Tsykkel

 

;---------Lõputu tsükkel --------------------------------------------------------------------

Loop:                               ;tegu on lõputu tsükliga

rjmp Loop                          ;see on tehtud selleks, et programmi täitmine jääks siia pidama