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

Programmation d'OS Assembleur Discussion :

Comment récupérer le numéro de l'unité de boot


Sujet :

Programmation d'OS Assembleur

  1. #1
    Membre du Club
    Avatar de daniel06600
    Homme Profil pro
    Ingénieur Temps Réel et Android
    Inscrit en
    Décembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Temps Réel et Android
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 41
    Points : 46
    Points
    46
    Billets dans le blog
    1
    Par défaut Comment récupérer le numéro de l'unité de boot et les autres
    Bonjour à tous. Je voudrais savoir comment 'au moment du Boot' je peux récupérer le numéro de l'unité de boot. Y a t-il une adresse BIOS? Si ou laquelle? Merci pour vos réponses
    Président du Club Insitec.fr

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Mai 2009
    Messages : 36
    Points : 52
    Points
    52
    Par défaut
    Rien de plus simple. Avant d'exécuter ton secteur de boot (en sautant à l'adresse 0000:7C00), le BIOS stocke le numéro du disque de boot dans le registre DL. Les numéros 00h et 01h désigne les deux premiers lecteurs de disquettes (A: et B:). Les numéros 80h et suivants désignent les disques durs, lecteurs de CD-ROM, clefs USB...

  3. #3
    Membre du Club
    Avatar de daniel06600
    Homme Profil pro
    Ingénieur Temps Réel et Android
    Inscrit en
    Décembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Temps Réel et Android
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 41
    Points : 46
    Points
    46
    Billets dans le blog
    1
    Par défaut
    Merci tommy60 pour cette information, je vais ajouter 2/3 lignes de code pour verifier si sur mon portable le registre DL contient bien ce numéro. Je charge mon portable depuis un clé USB qui devrai être 0x82, car il y a 2 disques durs à l'intérieur. Daniel
    Président du Club Insitec.fr

  4. #4
    Membre du Club
    Avatar de daniel06600
    Homme Profil pro
    Ingénieur Temps Réel et Android
    Inscrit en
    Décembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Temps Réel et Android
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 41
    Points : 46
    Points
    46
    Billets dans le blog
    1
    Par défaut
    J'ai fait les essais sur mon portable mais ce n'est pas cela. La valeur de DL est 0x80. Voici le bout de code : voir MOV AX,DX
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    MAIN: CLI
        jmp MAIN_SUITE;jump à main suite
        dw    0000h, 0000h, 0000h, 0000h, 0000h, 0000h, 0000h, 0000h
        dw    0000h, 0000h, 0000h, 0000h, 0000h, 0000h, 0000h, 0000h
        dw    0000h, 0000h, 0000h, 0000h, 0000h, 0000h, 0000h, 0000h
        dw    0000h, 0000h, 0000h, 0000h, 0000h, 0000h, 0000h, 0000h
        dw    0000h, 0000h, 0000h, 0000h, 0000h, 0000h, 0000h, 0000h
        dw    0000h, 0000h, 0000h, 0000h, 0000h, 0000h, 0000h, 0000h
        dw    0000h, 0000h, 0000h, 0000h, 0000h, 0000h, 0000h, 0000h
    debut_stack:
    
    MAIN_SUITE:
    	mov	ax,cs			; Code segment
    	MOV	SS,AX			; Stack segment
    	MOV	SP,offset debut_stack	; set stack en debut de code
    	PUSH	AX
    	POP	ES			; Extended segment
    	PUSH	AX
    	POP	DS			; Data segment
    	STI
    
    	mov	ax,dx
    	call	print_ax
    	
    	mov	si,offset MESSSAGE1
    	call	LOGO			; Affiche logo et attend une touche pour continuer
    Si quelqu'un à une autre idée... Bonne journée. Daniel
    Président du Club Insitec.fr

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

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 314
    Points : 550
    Points
    550
    Par défaut
    c'est peu etre normal, le bios affecte surement ta clef usb en premier vu que ton ordi boot dessus

    essaye de verifier si le disque 80h est bien ta clef en relisant le premier secteur et si celui ci est le meme que celui chargé en 7C00h c'est que c'est bien ta clef

  6. #6
    Membre du Club
    Avatar de daniel06600
    Homme Profil pro
    Ingénieur Temps Réel et Android
    Inscrit en
    Décembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Temps Réel et Android
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 41
    Points : 46
    Points
    46
    Billets dans le blog
    1
    Par défaut
    HA oui c'est une idée "le bios affecte surement ta clef usb en premier" Mais alors où peut-on trouver la liste des autres périphériques?
    Oui c'est bien ma clé USB car j'exécute un soft spécial. Donc la question reste toujours la même
    Y a t-il une adresse BIOS où je peux trouver les informations sur les périphériques, celui de boot et tous les autres...
    Salutations. Daniel
    Président du Club Insitec.fr

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Mai 2009
    Messages : 36
    Points : 52
    Points
    52
    Par défaut
    La solution serait peut-être de tester l'éxistence des autres disques (en utilisant les autres numéros) et la fonction 0x08 de l'interruption 0x13 du BIOS.

Discussions similaires

  1. [C#] Comment récupérer le numéro de semaine d'une date ?
    Par farfadet dans le forum Windows Forms
    Réponses: 9
    Dernier message: 17/07/2013, 16h33
  2. Réponses: 2
    Dernier message: 12/09/2006, 17h48
  3. Réponses: 3
    Dernier message: 31/01/2006, 16h29
  4. [Delphi 2005] Comment récupérer le numéro du disque dur ?
    Par Harry dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 26/04/2005, 15h01
  5. Comment récupérer le numéro de la semaine ?
    Par claude dans le forum Langage
    Réponses: 7
    Dernier message: 25/06/2004, 15h06

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