Assembler dane w buforze

0

Witam!
Zacząłem zabawę z assemblerem, i chciałbym zapytac czy jest sposobów na pobranie kodu ascii jednej litery z bufora ?
Ogolnie to mam pętle która z każdą iteracją pobiera jedna litere z pliku txt i ją wypisuje, lecz gdy ją wypisuje w rejestrze znajduje się cały czas ta sama wartość.
Czy jest sposob abym dostał wartość ascii z tej liczby? Na dole podsyłam kod:

petla:
    		mov ax,4200h
    		int 21h

    		mov dx,offset Text
    		mov cx,1	; ilosc liter przy iteracji
    		mov ah,3fh  		
    		int 21h  

          	mov dx,offset Text
            	mov ah,9h           ;napisz zawartość bufora TEXT na ekranie
            	int 21h

            	mov dx,offset Text
           	mov Ton,dl	    ; tutaj chce kod ascii
           	call Sound          ; ODTWARZANIE DZWIEKU

  	        inc licznik
        	mov dx,licznik
       		mov cx,0
       	   	cmp dx,Dlugosc
       		JNZ petla

ogolnie chce aby kod ascii znalazl sie w momencie mov Ton,dl

a tak wyglada segment danych

dane            segment
		Plik db 'odczyt.txt',0
    		Dlugosc      dw ?    	;długość pliku jeszcze nie znana
            	Licznik      dw ?       ;
    	   	Text db 30000 dup ('$') ;
            	Ton     DB  0

dane            ends
1

Interesuję się bardziej notacją AT&T asemblera, ale z tego, co zauważyłem, problem może być w argumentach do funkcji 42h (ustaw pozycję w pliku). Nie ma nigdzie podane, jaka to ma być pozycja od początku pliku.
http://bogdro.evai.pl/dos/dos_int.htm#int21h

Natomiast zawartość bajtu o adresie w dx można dostać:

mov al, byte ptr [dx]

https://stackoverflow.com/questions/1669662/what-does-offset-in-16-bit-assembly-code-mean

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