,,Witam! Próbuje napisać program, który przepisuje argumenty wywołania do tablicy, a następnie wypisuje tą tablicę. Niestety, skończyły mi się pomysły co może być źle w tym co napisałem. Proszę o pomoc..

data 	segment

tablica		db	15 dup(?)

data	ends


code	segment
START:
	;STOS INIT
	mov		ax, seg w_stos
	mov		ss,	ax
	lea		sp, w_stos

	
	mov		ax,	seg tablica
	mov		es, ax
	mov		di, offset tablica
	
	
	xor		cx, cx
	mov		cl, byte ptr ds:[80h]
	mov		si, 82h

	
PETLA:
	push	cx
	push	si
	push	ds
	push	es
	push	di
	push	bx
	
	mov		bl, ds:[si]
	mov		es:[di], bl
	
	pop		bx
	pop		di
	pop		es
	pop		ds
	pop		si
	pop		cx
	
	inc		si
	inc 	di
	
	loop	PETLA

	mov		dx, offset tablica
	
	mov		ah, 9
	int		21h
	
KONIEC:	
	mov		ah,4ch
	int		21h
	
	
code	ends




stos1	segment stack
		dw	250 dup(?)
w_stos	dw	?
stos1	ends

end		start











 

EDIT:

Gdy dodam w segmencie danych $
tablica db 15 dup(?), '$'

to program drukuje to co chce ale wczesniej dodaje do tego linijke smieci + odstępy.
Co może być tego powodem?