INT 13 im C Programm
-
moin
Ich möchte in meinen C Programm eine Assembler Routine mit einbauen, zum Physikalischen lesen von der Diskette
hier die Assembler Routine
__asm { push es //mov ES:BX, test ???? mov ah, 2 mov al, 1 ; Anzahl Sectoren mov ch, 0 ; Spur mov cl, 1 ; Sector mov dh, 0 ; Seite mov dl, 0 ; Laufwerk int 13h pop es }
in ES:BX werden die Daten reingeschrieben (512 Byte)
mit Push/Pop habe ich versucht das Register ES zu sichern, funzt aber nicht so.......es gibt da einen Schweren Fehlerhat jemand eine Idee wie ich die Daten in den Buffer cBuffer[600]=""; reingeschrieben bekomme ?
MfG
-
Vielleicht so:
__asm { push es mov AX, seg Test mov ES, AX mov BX, offset Test mov ah, 2 mov al, 1 ; Anzahl Sectoren mov ch, 0 ; Spur mov cl, 1 ; Sector mov dh, 0 ; Seite mov dl, 0 ; Laufwerk int 13h pop es }
Das __asm keyword sieht mir nach visual c++ aus. Verwendest du ganz sicher einen 16bit compiler?
[ Dieser Beitrag wurde am 18.08.2002 um 12:12 Uhr von cd9000 editiert. ]
-
Das Problem an sich hat ja nicht viel mit dem int 13h zu tun, aber was solls...
Mit "offset" funktioniert das bei MS VC++ jedenfalls net, das habe ich schon probiert... Leider weiss ich auch net, wie man sonst das Offset herausbekommen koennte