Näide 2

Kuna E (enable) signaali on vaja anda iga kord, kui tahetakse infot salvestada LEDide ees olevasse registrisse, siis on mõttekas teha E signaali formeeriv programmi osa eraldi alamprogrammiks, mida on võimalik välja kutsuda, siis kui selleks on vajadus. Selline tegevus võimaldab suuremate programmide puhul tunduvalt kokku hoida programmi mälu ja annab võimaluse vajadusel kasutada olemasolevat programmi osa ilma seda uuesti kirjutamata.

 

Näide 2

;paneme esimese LEDi põlema ja ülejäänud kustu

;eeldame, et pordid on konfigureeritud õigesti ja vajalikud registrid defineeritud

;----------Info saatmine andmesiinile-------------------------------------------------------------

 

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

out portd, r16   ;registri r16 sisu saadetakse port d väljundregistrisse

rcall enableLED ;kutsutakse välja programmi osa mille nimi on „enableLED“ ehk hüpatakse                            ;programmis kohta nimetusega „enableLED ja hakatakse sealt programmi edasi                      ;täitma

                                                              

;---------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

 

;---registrile E signaali andmine-------------------------------------------------------------------

 

;seda tegevust on vaja selle jaoks, et formeerida registrile DD4 info                                               ;vastuvõtmist lubavasse sisendisse E impulss, kui E sisendisse ei tule lubavat impulssi, siis registri ;sisendis olevat infot register vastu ei võta, peale lubava impulsi saabumist sisendisse E salvestab ;register sisendis olema info

 

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

sbi portb, 7         ;pordi B seitsmes bitt pannakse üheks

cbi portb, 7         ;pordi B seitsmes bitt pannakse nulliks

ret                     ;selle käsuga pöördutakse tagasi sinna kohta programmis, kust eelnevalt call käsuga                          ;kutsuti välja „enableLED“