Näide 3

Näide 3:

;Seadistada pordi B väljaviigud sisendiks ja proovida port B kaudu infot välja saata

;---------------------------------------------------------------------------------------------------------------------------------

ldi r16, 0x00        ;registrisse r16 laetakse 0x00 ehk 0b00000000

out 0x04,  r16    ;registri r16 sisu kopeeritakse registrisse 0x04 ehk DDRB registrisse

                       ;sisend-väljundpordi poole saab pöörduda out käsuga. Ldi käsuga ei saa otse DDRB registrisse 0x00’i laadida, sest igal käsul on kindel aadresside vahemik mille ulatuses saab seda käsku kasutada. Sisend-väljundregister DDRB ei kuulu aadressi vahemikku kus töötab käsk ldi.

                       ; nüüd on port B kõik väljaviigud sisendid

;-----------------------------------------------------------------------------------------------------------------------------------

ldi r16, 0x01       ;registrisse r16 laetakse 0x01 ehk 0b00000001

out 0x05,  r16    ;registri r16 sisu kopeeritakse registrisse 0x05 ehk PORTB registrisse

                       ;sisend-väljundpordi poole saab pöörduda out käsuga. Ldi käsuga ei saa otse DDRB registrisse 0x01’i laadida, sest igal käsul on kindel aadresside vahemik mille ulatuses saab seda käsku kasutada. Sisend-väljundregister PORTB ei kuulu aadressi vahemikku kus töötab käsk ldi.

;------------------------------------------------------------------------------------------------------------------------------------

Loop:                ;see programmi osa ei oma otseselt mingit mõtet, see on vajalik selleks, et oleks näha kuna ülemise programmi osa täitmine lõppeb, siia jääb programmi täitmine lihtsalt seisma.

rjmp Loop           ; see on lõputu tsükkel

;------------------------------------------------------------------------------------------------------------------------------------