Hi, ich möchte die ersten Sektoren einer Diskette auslesen und mir dann angucken, was da drinne steht.
Es gibt ja einmal int 25h:
|
Source code
|
1
2
3
4
5
|
mov al,0 ;A:
mov bx,offset buffer
mov dx,0 ;Startsektor
mov cx,60 ;Sektoren
int 25h
|
Ich nutze den guten alten Norton Commander mit TASM und im Debugger hab ich Inspect Buffer gemacht und dann steht da:
[3] M
[4] S
[5] D
[6] O
[7] S
[54] F
[55] A
[56] T
[57] 1
[58] 2
und noch andere zeichen, aber das scheint ja schonmal ganz interessant zu sein.
Nun gibt es ja noch int 13h AH 02.
Wollte es folgendermaßen probieren:
|
Source code
|
1
2
3
4
5
6
7
8
9
|
mov ah,02
mov al,60
mov ch,0 ;Spur
mov cl,1 ;Startsektor
mov dl,0 ;A:
mov dh,0 ;Kopf
mov bx,offset buffer
mov es,bx
int 13h
|
Hab gelesen, dass Spur bei 0 anfängt und Sektor bei 1, stimmt das?
Nach einer Anleitung muss in:
ES = Segmentadresse des Puffers BX = Offsetadresse des Puffers
Ist das mit meinen letzten beiden Zeilen richtig (ich denke mal nicht). Was muss ich denn bei ES und BX angeben?
Wenn ich es so ausführe, stürzt mir der Debugger einfach ab. Hab es auch schon mit anderen Spuren, Kopf etc probiert, aber entweder kommt ein Absturz oder in Inspect Buffer ist alles leer.
Stimmt das, was in int 25h im Buffer steht (bzw muss ich da im Buffer gucken?) und wie mach ich das mit int13h 02?