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