m820250814PORTDBlinkCount.asm

;; (C) David Vajda
;; 2025-08-12
;; AVR/ATMega8 LED out PORT D, Count Binary and blink with delay for human watching

.include "m8def.inc"

ldi r16, HIGH (RAMEND)
out SPH, r16
ldi r16, LOW (RAMEND)
out SPL, r16

ldi r16, 0xff
out DDRD, r16

ldi r16, 0xff
loop1:
;andi r16, 0x0f
com r16
out PORTD, r16
com r16
;rcall delay
dec r16
rjmp loop1

delay:
push r16
push r17
push r18
ldi r16, 0xff
loop2:
ldi r17, 0xff
loop3:
ldi r18, 0x08
loop4:
dec r18
brne loop4
dec r17
brne loop3
dec r16
brne loop2
pop r18
pop r17
pop r16
ret

oszishift:
push r16
push r17
push r18
ldi r16, 0xff
loop2:
ldi r17, 0xff
loop3:
ldi r18, 0x08
loop4:
dec r18
brne loop4
dec r17
brne loop3
dec r16
brne loop2
pop r18
pop r17
pop r16
ret