		.org 0

		jmp start

		.cseg
str_1: 	.db "Ahoj ", 0
		.dseg
		.org 0x100
		str_1c: .byte 32
		str: .byte 32
		.cseg
start:
lstr1:	ldi r30, low(str_1<<1)
		ldi r31, high(str_1<<1)
		ldi r28, low(str_1c)
		ldi r29, high(str_1c)
cycle1:	lpm
        st Y+, r0
		adiw r30, 1
		tst r0
		brne cycle1

lstr2:	ldi r30, low(str_2<<1)
		ldi r31, high(str_2<<1)
		ldi r28, low(str_2c)
		ldi r29, high(str_2c)
cycle2:	lpm
        st Y+, r0
		adiw r30, 1
		tst r0
		brne cycle2

		ldi r26, low(str_1c)
		ldi r27, high(str_1c)
		ldi r30, low(str)
		ldi r31, high(str)
cycle3: ld r0, X+
		st Z+, r0
		tst r0
		brne cycle3

		ldi r28, low(str_2c)
		ldi r29, high(str_2c)
		sbiw r30, 1

cycle4: ld r0, Y+
		st Z+, r0
		tst r0
		brne cycle4

zacatek:
		jmp zacatek
	
============================================

		.org 0

		jmp start

		.cseg
str_1: 	.db "Ahoj", 0
		.dseg
		.org 0x100
		str_1c: .byte 32
		str: .byte 32
		.cseg
start:
lstr1:	ldi r30, low(str_1<<1)
		ldi r31, high(str_1<<1)
		ldi r28, low(str_1c)
		ldi r29, high(str_1c)
cycle1:	lpm
        st Y+, r0
		adiw r30, 1
		tst r0
		brne cycle1

		ldi r26, low(str_1c)
		ldi r27, high(str_1c)
		ldi r30, low(str)
		ldi r31, high(str)
nadcykl:
		mov	r28, r26
		mov	r29, r27
cycle3: ld r0, Y+
		st Z+, r0
		tst r0
		brne cycle3
		sbiw r30, 1

		ld	r0, X+
		tst r0
		brne nadcykl


		
zacatek:
		jmp zacatek
	
==========================================================
Volání ... zásobník

.org 0
.include "m169def.inc" ; definujeme, ze budem pouzivat stack

	ldi r16, 0x00 ;nutne pro stack
	out SPL, r16 ;nutne pro stack
	ldi r16, 0x04 ;nutne pro stack
	out SPH, r16 ;nutne pro stack

	ldi r16, 0x00
	ldi r17, 0x80
	ldi r18, 0x00
	ldi r19, 0x01
	call add16

	call add16
konec: jmp konec

add16: 	add r16, r18
		adc r17, r19
    	ret
===========================================================
.org 0
.include "m169def.inc" ; definujeme, ze budem pouzivat stack

	jmp start

	.cseg
vstup:	.db "Ahoj lidi", 0
	.dseg
	.org 0x100
	kopie: .byte 32

	.cseg

start:

	; inicializace stacku
	ldi r16, 0x00 ;nutne pro stack
	out SPL, r16 ;nutne pro stack
	ldi r16, 0x04 ;nutne pro stack
	out SPH, r16 ;nutne pro stack

	; nahraju to
	ldi r30, low(vstup<<1)
	ldi r31, high(vstup<<1)
	ldi r28, low(kopie)
	ldi r29, high(kopie)
kopiruj:
	lpm
    st Y+, r0
	adiw r30, 1
	tst r0
	brne kopiruj

	; go
	call strlen
konec: jmp konec



	; do r20 spocita delku kopie
strlen:
	ldi r26, low(kopie)
	ldi r27, high(kopie)
	ldi r20, 0
cycle3:
	ld r0, X+
	inc r20
	tst r0
	brne cycle3
	dec r20
   	ret

