section .text
global _start				;sekcja kodu
	_start:
	mov	eax, 3			;odczyt
	mov	ebx, 0			;z klawiatury
	mov	ecx, ile		;dokąd czytać?
	mov	edx, 1			;ile bajtów?
	int	80h			;WYKONAĆ!
	mov	ecx, [ile]
	sub	ecx,48
	
	_galaz:
	push	ecx			;NA STOS!v1
	_lisc:
		mov	eax, 4		;wczytaj z pliku
		mov	ebx, 1		;standardowe wyjście - ekran
		push	ecx		;NA STOS!v2
		mov	ecx, star	;wkładam tekst do ecx
		mov 	edx, [star_dl]	;wkładam do edx ile bajtów ma star
		int	80h		;wyświetlam
		pop	ecx		;wkładam waewrtość ecx z chwili NA STOS!v2
		dec 	ecx		;odejmuje 1 od ecx
		cmp	cl, 0		;jeśli exc =0 to...
		je	_konlisc	;skacze do kon lisc
		jmp	_lisc		;jeśli nie to skacze do lisc
	_konlisc:			;kończe pętle lisc
	mov	eax, 4			;wypisanie...
	mov	ebx, 1			;na ekranie
	mov 	ecx, konlin		;znaku końca linni
	mov	edx, [konlin_dl]	;o odpowiedniej długości
	int	80h			;WYKONAĆ!
	pop	ecx			;wkładam do ecx wartość z chweili NA STOS!v1
	dec	ecx			;ecx - 1
	cmp	cl, 0			;czy ecx =1? jeśli tak to...
	je	_koniec			;...jesli tak to skok do wyjścia
	jmp 	_galaz			;skok do pocz. pętli galaz
	_koniec:			;wyjście z petli galaz
	mov	eax, 1 			;func.sys - wyjście z programu
	int	80h			;wykonanie wyjścia z programu
	
section .data				;sekcja dnaych

	star		db	"*"		;co wyświetlić?
	star_dl		dd	$ - star	;długość star
	ile		dd	0		;zmienna ilości rzędów i gwazdek
	konlin		db	"0ah"		
	konlin_dl	dd	$ - konlin