Bonjour à tous,
Pour me faire la main en assembleur, j'ai voulu essayer d'accéder à mes clés USB branchées sur mon PC au moment du boot.
Pour cela j'ai récrit un secteur de boot trouvé sur internet, et j'ai utilisé la fonction d'écriture pour pouvoir éditer le premier secteur de ma clé.
Voici en extrait du code que j'utilise est le suivant
Il utilise la fonction 3 de l'interruption 0x13, en copiant les données pointées par [BASE_TAMPON:0] située sur NB_SECTEURS secteurs vers les secteurs commençant au numéro NUM_SECTEUR de la clé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 mov dl,0x82 mov ax, BASE_TAMPON mov es, ax mov bx, 0 mov ah, 3 mov al, NB_SECTEURS mov ch, 0 mov cl, NUM_SECTEUR mov dh, 0 int 0x13
Seulement voilà, au retour j'obtiens l'erreur cz=1 avec ah=0x0E.
D'après la doc trouvé à cet endroit , l'erreur indique "une marque de contrôle détectée" ou la version anglaise trouvée ici : "Control data address mark detected (hard disk)"
Et malgré de longues recherches sur le sujet, je ne trouve pas d'explications viables. De plus cette fonction marche très bien avec une autre clé.
Voilà tout,
En vous remerciant d'avance d'éclairer ma lanterne
PS : Pour ceux qui ne connaissent pas, le site gladir.com est (à mon goût tout du moins) une excellente compilation d'infos sur la programmation et en particulier sur les interruptions BIOS qui sont accessible par cette adresse
EDIT : J'ai rajouté l'initialisation de DL
Partager