.include "C:\appnotes\tn2313def.inc"

          .def     Tiny=R16
          .def     Tiny1=R17
          .def     Tiny2=R18
          .def     Tiny3=R19
          .def     Tiny4=R20

.cseg
.org 0

          ldi Tiny,RamEnd      ;инициализация стёка
          out SPL,Tiny


          ldi Tiny,0b11111111  ;настройка портов
          out DDRB,Tiny        ;вывод


Begin:    ldi Tiny,0b00000001  ;загрузка начального значения (влево)	


Shift:    rcall Delay          ;вызов подпрограммы задержки
          cpi Tiny,0b10000000  ;сравнить Tiny с крайним значением
          breq Begin1          ;если равно - перейти ко второму циклу (вправо)a


          lsl Tiny             ;если не равно - сдвиг влево
          rjmp Shift           ;перейти в начало цикла Shift


Begin1:   ldi Tiny,0b10000000  ;загрузка начального значения (вправо)


Shift1:   rcall Delay          ;вызов подпрограммы задержки
          cpi Tiny,0b00000001  ;сравнить Tiny с крайним значением
          
          breq Begin           ;если равно - перейти к первому циклу (влево)


          lsr Tiny             ;если не равно - сдвиг вправо
          rjmp Shift1          ;перейти в начало цикла Shift1
 

;************************ПОДПРОГРАММА***********************
;Задержка


Delay:    out PortB,Tiny


          ldi Tiny1,0
          ldi Tiny2,0
          ldi Tiny3,4

Loop:     dec Tiny1
          brne Loop

          dec Tiny2
          brne Loop

          dec Tiny3
          brne Loop


          ret

          