IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Assembleur Discussion :

[Débutant] Ecrire sur disque dur avec int 13h


Sujet :

Assembleur

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 9
    Points : 7
    Points
    7
    Par défaut [Débutant] Ecrire sur disque dur avec int 13h
    Salut,

    Dans le cadre d'un cours système, je dois écrire un petit bout de programme assembleur x86 qui va tourner sous win32 (2k ou xp). Le probleme, c'est que l'assembleur m'est quelque peu hermétique.

    Voila ce qui m'a été demandé :

    A l'aide de l'interruption int13, réaliser un programme qui va écrire des zeros dans 128 secteurs consécutifs du disque dur à partir du secteur n° #X.
    Après moult recherches, j'ai trouvé les éléments suivants :
    AH recoit la valeur 03H (ecrire)
    AL recoit la valeur 80H (128 secteurs)
    DL recoit la valeur 80H (disque C:)
    1 secteur fait 512 byte

    mon algorithme est donc :

    affecter les valeurs AH, AL et DL
    appeler int13
    positionner la tete sur le secteur de depart #X
    pour i=1 a 128
    ecrire 0


    Merci par avance a ceux qui voudront (pourront ?) m'aider.

    Bregolhen

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Tu peux abandonner l'idée d'écrire sur le disque avec cette interruption BIOS : Win(2K/XP) empêche l'accès au matériel => emulateur avec du DOS pur (Bochs, qemu... -dosbox implémenterait ça ?-).

    En plus de ce que tu dis, il y a es:bx qui pointent vers le buffer de données à écrire, donc soit tu as alloué un buffer de 128*512 octets pour faire l'opération en une passe, soit tu as un buffer de 512 octets et tu répète l'opération 128 fois en incrémentant CL.

    N'oublies pas de vérifier CF après l'écriture et avant de reboucler

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 9
    Points : 7
    Points
    7
    Par défaut int 13
    Salut,


    Merci pour tout. mon probleme vient de se resoudre tout seul (ou presque).


    Bregolhen

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Juste pour ma petite culture personnelle, comment arrives-tu as écrire physiquement sur le disque avec 2K/XP en utilisant les int bios dans un programme DOS ?

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 9
    Points : 7
    Points
    7
    Par défaut ben c'est a dire....
    Salut,

    Ben, je ne sais pas et je n'ai plus besoin d'y arrivé. A cause des retards pris durant ces dernieres semaines (CPE, entre autre) la fac a contacté les etudiants pour nous faire savoir que les TD et TP etaient annulés pour etre remplacés par les cours qu'il faut rattraper.


    Du coup, plus de projet ASM et plus d'int13.

    Brego

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Ok, ça s'explique.

    J'ai fais des tests sur 2K après ta réponse qui disait que ton problème était résolu ; j'avais compris que tu avais réussi. Et comme prévu, Windows empêche l'accès matériel en affichant une gentille boite d'insulte.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sauvergarde sur disque dur avec fichiers
    Par piero53 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/02/2009, 18h59
  2. ecrire et lire sur disque dur
    Par united4life dans le forum C
    Réponses: 12
    Dernier message: 26/03/2007, 11h29
  3. Le miroring Sur disque dur S-ATA
    Par ecoinfo dans le forum Composants
    Réponses: 1
    Dernier message: 25/10/2005, 10h02
  4. Données perdues sur disque dur esclave ?
    Par maadadi dans le forum Composants
    Réponses: 11
    Dernier message: 18/10/2005, 20h51
  5. [Espace perdue sur disque dur]
    Par Abdul dans le forum Windows XP
    Réponses: 19
    Dernier message: 26/06/2005, 14h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo