Błędy w zapisie do pliku, MASM

0

Procedura ma za zadanie, zamienić tablicę komórka po komórce tablicę dw na stringi i zapisać ją do pliku, niestety, tablica na początku wypełniona jest zerami, gdy jakaś wartość jest zmieniona to w pliku zamiast wartości poprzedniej komórki zapisują się jakieś błędne dane. Za pewne problem jest gdzieś w pętli, ale sam nie jestem w stanie go znaleźć.
Pozdrawiam

writefile proc near
mov si, 0

start:
	xor ax, ax
	xor bx, bx
	xor cx, cx
	xor dl, dl
	xor ah, ah

	mov di, 0
	
retemp:	
	mov temp[di], ' '
	inc di
	cmp di, 10
jne retemp
	
	mov ax, bytes[si]          
	mov cx, 0               
	mov bx, 10
	             


repeat:       
	mov dx, 0               
	div bx                 
	add dx, '0'            
	push dx                
	inc cx                 
	cmp ax, 0               
jne repeat               

mov bx, offset temp
	 
mov ax, cx	 

loadstring:
	pop dx                 
	mov [bx], dl            
	inc bx                 
	dec cx                 
	cmp cx, 0               
jne loadstring           
	          
	mov dx, offset temp
	
	mov di, ax
	mov temp[di + 1], 10
	mov temp[di + 2], 13
	add ax, 2
	mov	cx, ax
	mov	ah, 40h
	mov	bx, handle
	int	21h
	jc	writerr
	
	inc si
	inc si
	cmp si, 512
jne start
	ret
;------------------------------------- 
 
writerr:
	lea dx,wfmsg       
	mov	ah, 9           
    int	21h            
	stc                 
	ret
;------------------------------------- 

writefile endp
0

zamienić tablicę komórka po komórce tablicę dw na stringi i zapisać ją do pliku

Co?

0

Ta procedura zapisuję do pliku tablicę z liczbami całkowitymi które są w tablicy DW, najpierw zamienia liczbę na string a później zapisuje ją do pliku. Problem polega na tym, że gdy któraś z komórek tablicy jest różna od zera to znikąd w poprzedniej komórce - a raczej w pliku na miejscu poprzedniej komórki pojawiają się jakieś śmieci a właściwie to liczba o wartości +- 255

1 użytkowników online, w tym zalogowanych: 0, gości: 1