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

x86 16-bits Assembleur Discussion :

Mon programme de boot ne marche pas


Sujet :

x86 16-bits Assembleur

  1. #1
    Membre régulier
    Femme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 73
    Points : 71
    Points
    71
    Par défaut Mon programme de boot ne marche pas
    Bonjour,

    j'ai écrit le programme suivant sur le premier secteur de mon flash disc (secteur 0 et j'ai essayé le 1) avec un éditeur hexa :

    B4 09 B0 41 B7 00 B3 02 B9 0A 00 CD 10 EB FE 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    ......
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA
    ça correspond à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    mov ah,09 ;fonction 9h affiche un caractère plusieurs fois
    mov al,'A'
    mov bh,00
    mov bl,02
    mov cx,10
    int 10h
    et: jmp et
    ça donne sous DOSBox (car windows 7, 64 bits!)
    AAAAAAAAAA

    mais ça donne rien quand je Boot de ma clés USB et mon Windows démarre
    j'ai:
    une clés USB Apacer 8G
    un portable TOSHIBA Intel core I5

    Merci d'avance pour toute aide.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 377
    Points : 23 663
    Points
    23 663
    Par défaut
    Bonjour,

    Avant toute chose, assure-toi d'avoir fait une sauvegarde de tout ce qui se trouve sur ton disque flash avant de bidouiller avec.

    Ensuite, vérifie que :

    • Ton BIOS est bien configuré pour démarrer sur des périphériques USB ;
    • Qu'il le soit de manière à ce que ces périphériques USB soient lancés AVANT le disque dur interne ;
    • Que ton amorce soit réellement écrite sur le premier secteur de ton disque et pas sur le premier secteur de sa première partition, si elle existe ;


    Et surtout :

    • Les PC récents fonctionnent désormais non plus avec le BIOS mais avec l'UEFI qui, elle, peut être configurée par défaut pour ne démarrer que les systèmes d'exploitation dûment signés. Il faudra peut-être désactiver cette fonctionnalité si c'est le cas.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut,

    Veuillez nous poster le code complet de votre Bootstrap.

  4. #4
    Membre confirmé Avatar de bifur
    passe le balais et l'aspirateur
    Inscrit en
    Mars 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : passe le balais et l'aspirateur

    Informations forums :
    Inscription : Mars 2008
    Messages : 314
    Points : 550
    Points
    550
    Par défaut
    par quel moyen avez vous modifié votre clef usb?

    si vous avez copier le code dans votre clef usb grace a votre éditeur hexa, il faut vérifier que l'éditeur n'as pas plutot modifié que le premier secteur de la partition au lieu de celui de la clef

    pour ça verifiez le partitionnement de votre clef, s'il n'y a plus rien c'est que vous avez bien écrasé le MBR sinon c'est que vous avez écrit dans le mauvais secteur

    et sinon comme a dit obsidian verifiez que le pc est bien configuré pour démarrer sur les clef usb (chose qui doit être désactivé par défaut d'ailleur)

  5. #5
    Membre régulier
    Femme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 73
    Points : 71
    Points
    71
    Par défaut
    Bonjour à tous,
    J’ai bien copié le code avec l’éditeur hexa, et quand j’essai d’accéder à ma clé USB après la copie mon ordi me die qu’elle n’est pas formaté.
    J’ai changé mon first boot pour FDD USB et second boot pour HDD...
    Mon bios est de version 1.6 et je n’ai pas de problème d’UEFI.
    Je travail avec FASM depuis peut et voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    org 0x7C00
    use16
    mov ah,09
    mov al,'A'
    mov bh,00
    mov bl,02
    mov cx,10
    int 10h
    et: jmp et

  6. #6
    Invité
    Invité(e)
    Par défaut
    Salut,
    Il vous reste d'ajouter à la fin de votre code la signature de boot: 0xAA55. Ajoutez les deux lignes suivantes à la fin de votre code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    times 510 - ($ - $$) db 0
    dw 0xAA55
    Les deux derniers octets (octets 510 et 511) d'un secteur de boot doivent contenir la valeur 0xAA55. C'est une convention IBM.

  7. #7
    Membre régulier
    Femme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 73
    Points : 71
    Points
    71
    Par défaut
    Bonjour,
    J’ai changé le programme pour celui là, j’ai enlevé le jmp je me suis dit c’est peut être une histoire d’adresse qui m’empêche de visualiser le résultât.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    org 0
    use16
    mov ah,09
    mov al,'A'
    mov bh,00
    mov bl,02
    mov cx,10
    int 10h
     
    mov ah,01; interuption DOS lecture du clavier:just pour l'attente
    int 21h
     
    mov ah,4ch; interuption DOS fin de programme
    int 21h
     
    times 510 - ($ - $$) db 0
    dw 0xAA55
    Voici l’éditeur héxa que j’ai utilisé, j’e l’ai déjà utilisé pour visualiser le secteur de boot de mon PC et d’un autre flash disque et j’ai vu les Bytes magiques AA55.
    http://mh-nexus.de/en/

    J’ai tenté l’expérience avec 3 ordinateurs et ça ne marche pas.

  8. #8
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    Alors pour les interruptions du DOS (21h) tu peux oublier car le système
    n'est pas en natif sur la machine

    Tu devrais essayer d'effacer l'écran en mode texte car rien ne dit que
    le PC est bien dans ce mode au démarrage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    mov ax,0003
    int 10h
    ensuite, tu devrais remettre ta boucle de fin pour bloquer le programme.

    Si ton ordi boote sur un autre disque, alors c'est que ton boot n'est
    n'est pas lu (sinon il ne pourrait pas sortir de la boucle de fin)
    et donc pas écrit au bon endroit

Discussions similaires

  1. Erreur dans mon programme que je n'arrive pas à corriger
    Par alex7443 dans le forum Débuter
    Réponses: 3
    Dernier message: 25/03/2009, 14h46
  2. Mon champ de recherche ne marche pas.
    Par jcsamalens dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 03/11/2008, 21h40
  3. mon exporteur d'OBJ ne marche pas
    Par bachir006 dans le forum OpenGL
    Réponses: 3
    Dernier message: 06/06/2008, 14h28
  4. Réponses: 0
    Dernier message: 10/04/2008, 00h45
  5. Réponses: 18
    Dernier message: 19/04/2007, 17h42

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