Witam, mam problem. Rozpocząłem zabawę z plikami w assemblerze, chciałem sobie wczytać do bufora jeden wiersz z pliku, jednak pojawiły mi się jakieś śmieci, nie wiem czym, są one spowodowane.
Wczytałem sobie jeden wiersz z mojego pliku tekst.txt
Cały bufor jest wyświetlany, ale pojawiły się właśnie te “śmieci”.
Oto mój kod:
Progr segment
assume cs:Progr, ds:dane, ss:stosik
start:
mov ax,dane
mov ds,ax
mov ax,seg Plik
mov ds,ax
mov dx,offset Plik ;adres DS:DX zawiera nazwę pliku
mov cx,0
mov ax,stosik
mov ss,ax
mov sp,offset szczyt
mov ah,3Dh ;funkcja otwórz plik
mov al,2 ;Tryb otwarcia: prawo do odczytu i zapisu
int 21h
mov bx,ax ;uchwyt idzie do BX
lea dx, nuty
mov cx,57 ;ile bajtów odczytac
mov ah,3fh ;funkcja odczyt do dojścia
int 21h ;wywołaj funkcje DOS
lea dx,nuty
mov ah,09h
int 21h
mov ah,3eh ;zamknij plik w BX-uchwyt
int 21h ;
ZakonczProgram:
mov ax,4C01h
int 21h
Progr ends
dane segment
Plik db 'tekst.txt',0
nuty db 0
oktawy db 0
czasy db 0
dane ends
stosik segment
dw 100h dup(0)
szczyt Label word
stosik ends
end start
Proszę również o podpowiedź/pomoc w odczytaniu 2 wiersza do oktawy, a trzeciego do czasy.