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 32-bits / 64-bits Assembleur Discussion :

Programme asm x86 bootable sur SSD et HDD


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #21
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Citation Envoyé par Factorisable Voir le message
    Plus haut on me dit que la table de partition n'est pas obligatoire, il faudrait savoir. Si elle est indispensable pour que ça boot, comment en créer une, avez-vous un lien tuto ? Enfin le problème ne pourrait-il pas venir d'un mauvais paramétrage du bios ? Comment y remédier si tel est le cas ?
    La table de partitions n'est pas obligatoire si t'as pas besoin de partition sur ton disque dur. Cependant Windows ne saura pas lire un disque sans partition et te proposera de le reformater.

    Et comme tu le dis, "formater le disque en NTFS", va entre autres rajouter une entrée à la table des partitions, pour définir l'intervalle de secteurs à utiliser pour la dite partition NTFS (en plus d'écrire les métadonnées nécessaires au bon fonctionnement du système de fichier).

    Citation Envoyé par Factorisable Voir le message
    En fait c'est un uefi que j'ai, cela change t'il quelque chose ?
    Oui l'UEFI change quelque chose, vu que la procédure de boot n'est absolument pas la même. Néanmoins tu peux passer en option "Legacy mode" ou une dénomination similaire dans ton BIOS, afin de pouvoir démarrer sur ton disque dur comme tu souhaites le faire (en veillant à modifier l'ordre de boot pour ne pas démarrer sur ton système principal). Il te faudra peut-être désactiver le Secure Boot avant, néanmoins.
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  2. #22
    Provisoirement toléré
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2016
    Messages : 120
    Points : 0
    Points
    0
    Par défaut
    J'ai le EZ mode (mode simplifié), l'advanced mode (mode avancé) et l'OC, lequel pourrait être similaire au legacy mode ?

    Dans boot mode j'ai uniquement le choix entre [UEFI] ou [LEGACY+UEFI], il était déjà mis sur la deuxième option.

    Je viens de trouver comment sélectionner mon disque dur, je pars tester ça. Petite interrogation, comment se fait-il qu'en redémarrant mon pc le secteur 0 de mon disque dur où j'avais écrit le code soit se vide complètement, soit est modifié par du code aléatoire ?

  3. #23
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Citation Envoyé par Factorisable Voir le message
    Je viens de trouver comment sélectionner mon disque dur, je pars tester ça. Petite interrogation, comment se fait-il qu'en redémarrant mon pc le secteur 0 de mon disque dur où j'avais écrit le code soit se vide complètement, soit est modifié par du code aléatoire ?
    Tu pourrais fournir un dump de ton secteur 0 par le plus grand des hasards ? . Sinon t'as une fonction "Éditer" sur le forum qui permet de mettre à jour ton message sans avoir à en poster un deuxième juste après le premier.
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  4. #24
    Provisoirement toléré
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2016
    Messages : 120
    Points : 0
    Points
    0
    Par défaut
    Supersnail à me prendre pour un idiot tu te montres encore plus idiot, c'est totalement puéril comme réaction, muri un peu.

    J'ai réussi à booter sur mon disque dur, aucun message de s'affiche mais j'ai un underscore qui clignote en bas à gauche de l'écran. une fois revenu sur Windows je regarde le secteur 0, le code est celui que j'avais mis à un détail prêt. A l'offset 1B0 j'étais censé avoir que des zéros mais j'obtiens cette ligne 00 00 00 00 00 00 ED 8F 7F 88 00 00 00 00, que je rempli de zéros, puis je reboot sur le disque, même résultat qu'avant, juste un underscore, je reviens sur Windows et je vois la même ligne qui s'est rempli toute seule mais cette fois les 4 octets ici 9C BB 2D 7D. Ensuite je ne touche pas à ces octets, je reboot sur le disque avec l'underscore, je reviens sur Windows et le secteur 0 est resté le même que je l'ai laissé avec ces octets 9C BB 2D 7D.

    Où est le problème ? Pourquoi mon disque dur se rempli tout seul quand les 4 octets décrits plus haut sont vides ?

  5. #25
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    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 368
    Points : 23 620
    Points
    23 620
    Par défaut
    Citation Envoyé par Factorisable Voir le message
    Supersnail à me prendre pour un idiot tu te montres encore plus idiot, c'est totalement puéril comme réaction, muri un peu.
    Supersnail ne t'a pas pris pour un idiot. Tout ce qu'il dit est vrai et pertinent. Un dump est ici un « dump hexadécimal ». Comme http://www.sevenforums.com/attachmen...ion-sg-1tb.jpg. Et au passage, cette capture te montre ce dont il s'agit probablement : une signature disque Windows (ce qui est encore une bonne raison pour ne pas utiliser Windows, selon moi).

    J'ai réussi à booter sur mon disque dur, aucun message de s'affiche mais j'ai un underscore qui clignote en bas à gauche de l'écran. une fois revenu sur Windows je regarde le secteur 0, le code est celui que j'avais mis à un détail prêt. A l'offset 1B0 j'étais censé avoir que des zéros mais j'obtiens cette ligne 00 00 00 00 00 00 ED 8F 7F 88 00 00 00 00, que je rempli de zéros, puis je reboot sur le disque, même résultat qu'avant, juste un underscore, je reviens sur Windows et je vois la même ligne qui s'est rempli toute seule mais cette fois les 4 octets ici 9C BB 2D 7D. Ensuite je ne touche pas à ces octets, je reboot sur le disque avec l'underscore, je reviens sur Windows et le secteur 0 est resté le même que je l'ai laissé avec ces octets 9C BB 2D 7D.
    Le fait que tu aies « juste un underscore » n'est à mon avis pas lié à la signature disque. Je pense plutôt que ton programme plante, tout simplement. La gestion du curseur est indépendante du logiciel en cours d'exécution et est géré directement par le hardware de la carte graphique, donc il clignotera quoi qu'il advienne (à condition bien sûr d'être dans un vrai mode texte).

    Il est possible que le registre de segment DS soit non-initialisé en entrant dans ton programme (ce qui serait surprenant mais pas impossible). Essaie d'ajouter :


    … en début de programme.

  6. #26
    Provisoirement toléré
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2016
    Messages : 120
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par supersnail Voir le message
    Tu pourrais fournir un dump de ton secteur 0 par le plus grand des hasards ? . Sinon t'as une fonction "Éditer" sur le forum qui permet de mettre à jour ton message sans avoir à en poster un deuxième juste après le premier.
    Ce n'est pas me prendre pour un idiot ça ? Autrement je te demanderais de bien vouloir relire ces mots qui mis ensembles forment ce que l'on appelle une phrase, si par le plus grand des hasards tu comprenais les mots employés.

    Merci beaucoup Obsidian, le Hello world s'est bien affiché. Comment se fait-il que le registre ds qui est pourtant absent de mon programme influence le bon déroulement de celui-ci ? Et pourquoi le registre cs est d'office initialisé (mis à zéro ?) ?

  7. #27
    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
    Citation Envoyé par Factorisable Voir le message
    Ce n'est pas me prendre pour un idiot ça ? Autrement je te demanderais de bien vouloir relire ces mots qui mis ensembles forment ce que l'on appelle une phrase, si par le plus grand des hasards tu comprenais les mots employés.
    En même temps tu n'as pas l'air de le savoir
    Insulter les mecs qui veulent encore t'aider (et ils ne sons pas très nombreux) c'est pas super malin

    pour ce qui est des registres CS et DS :
    CS = Code Segment
    DS = Data Segment

    Si CS = 0000h c'est qu'il faut bien savoir où commence le code
    et DS est toujours utilisé pour les données, sauf indication contraire

  8. #28
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    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 368
    Points : 23 620
    Points
    23 620
    Par défaut
    Citation Envoyé par Factorisable Voir le message
    Ce n'est pas me prendre pour un idiot ça ? Autrement je te demanderais de bien vouloir relire ces mots qui mis ensembles forment ce que l'on appelle une phrase, si par le plus grand des hasards tu comprenais les mots employés.
    Il t'a d'une part demandé de nous montrer le contenu de ton secteur, ce qui était une vraie question parce que les symptômes étaient étranges, et il t'a ensuite signalé que tu pouvais éditer un message parce que tu en as posté deux d'affilée. Ce n'est pas interdit mais si ton souhait est de corriger ou compléter une information donnée en attendant d'avoir une réponse, tu peux le faire pendant 72 heures après la publication de ton message. C'est le rôle du bouton « Modifier le message » qui apparaît en bas à droite de tes commentaires les plus récents.

    Merci beaucoup Obsidian, le Hello world s'est bien affiché. Comment se fait-il que le registre ds qui est pourtant absent de mon programme influence le bon déroulement de celui-ci ? Et pourquoi le registre cs est d'office initialisé (mis à zéro ?) ?
    Citation Envoyé par Forthman Voir le message
    pour ce qui est des registres CS et DS :
    CS = Code Segment
    DS = Data Segment

    Si CS = 0000h c'est qu'il faut bien savoir où commence le code
    et DS est toujours utilisé pour les données, sauf indication contraire
    … plus précisément. Les registres de segment sont toujours utilisés, et ce de manière implicite lorsqu'ils ne sont pas spécifiés par le programmeur.

    • Quand tu fais un saut vers next_character, tu écris jmp next_character, et jamais jmp CS:next_character parce qu'il est évident que c'est dans le segment de code courant ;
    • Quand tu fais une lecture avec mov al,[si], il faut bien que la lecture se fasse dans un segment car autrement, si c'était toujours à partir de 0000, tu ne pourrais accéder qu'aux 64 premiers kilo-octets de ta mémoire. Ton instruction est donc implicitement équivalente à mov al,ds:[si].


    Cela signifie également qu'à l'exécution du programme, le micro-processeur lit toujours l'instruction située en CS:[IP]. Donc si ton programme s'exécute, ton registre de segment de code CS ne peut pas ne pas être initialisé. Quand tu fais un saut local, la valeur de CS reste inchangée, mais est toujours valide.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Disque Dur] Dual boot Windows 7 & Linux sur SSD & HDD
    Par Vespiras dans le forum Composants
    Réponses: 5
    Dernier message: 15/05/2014, 11h24
  2. Programmation d'un menu sur clé bootable
    Par The Jos dans le forum Windows
    Réponses: 3
    Dernier message: 18/11/2011, 21h54
  3. Programme ASM compilé en .EXE pour amorcer sur HDD
    Par SebioHazard dans le forum x86 16-bits
    Réponses: 30
    Dernier message: 21/01/2008, 00h30
  4. [Programmation distribuée] Votre avis sur une archi
    Par Acarp47 dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 7
    Dernier message: 29/06/2005, 14h01
  5. [Applet][Exec programme] Est ce possible sur un serveur ?
    Par gandalf_le_blanc dans le forum Applets
    Réponses: 31
    Dernier message: 11/05/2004, 14h15

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