Hi,
Ich versuche so den 2. Sektor meiner (Boot-)Diskette auszulesen. 
[ORG 0x7C00]
; ...
    mov ax,0x7E00 
    mov es,ax   
    xor bx,bx           ; Daten nach 0x7E000 bzw 7E00:0000 lesen
    
    mov al, 1           ; 1 Sektor
    mov ch, 1          ; Spur 1
    mov cl, 1           ; 1 = 2. Sektor ?! (1. Sektor = 0?)
    mov dh, 1         ; Kopf
    mov dl, 0          ; Laufwerk 0 ==> Diskettenlaufwerk
    mov ah, 0x02 
    int 13h
; ...
Das eax-Register hat nach dem Aufruf den Wert 00000001h. Also müsste eigentlich alles funktioniert haben und al = 1 Sektor gelesen worden sein.
Das Ende meines Codes sieht so aus:
times 510-($-$$) db 0
db 0x55
db 0xAA
test db "Hallo Int13!",0
Wenn ich allerdings nach int13 ein jmp $ setze und dann mit QEMU schaue, was bei 0x7E000 steht, dann wird mir angezeigt, dass da eine 0 steht. Eigentlich müsste es ja 0x48 sein...