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 :

Liste complète des interruptions BIOS


Sujet :

x86 16-bits Assembleur

  1. #1
    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 Liste complète des interruptions BIOS
    Bonjour,

    comme laisse présager le titre, je cherche la liste complète des interruptions de mon BIOS, savez-vous où je peux la trouver ?

  2. #2
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 939
    Points : 23 253
    Points
    23 253
    Billets dans le blog
    10
    Par défaut
    Bonjour

    Si je me souviens bien le BIOS ne gère encore que les interruptions créées à l'origine par le DOS il y en à 46h en hexadécimal bien sur donc 70 en décimal.

    Il y a en réalité 33 interruptions de documentées.

    Mais elles ne sont pas toutes employées.

    Je crois mais il faudrait vérifier de ce que je me souviens :

    01h =mode pas à pas
    02h = erreur mémoire
    03h = point d'arrêt
    04h = dépassement de capacité
    05h = impression d'écran
    08h = mise à jour du compteur d'heure
    09h = gestion du clavier
    10h = routine de gestion vidéo
    12h = détermination de la mémoire disponible
    13h = gestion des unités de disque
    14h = gestion du port série
    16h = gestion du clavier
    17h = gestion de l'imprimante
    19h = redémarrage de l'ordinateur
    1Ah = gestion de l'heure et de la date
    1Bh = gestion du Ctrl-Break
    1Ch = incrémentation de l'heure
    1Dh = paramètres vidéo
    1Eh = paramètre disquette
    1Fh = caractères graphiques vidéo
    20h = routine de terminaison
    21h = appel à MSDOS
    22h = adresse de la routine de terminaison
    23h = adresse de la routine de gestion du Ctrl + C
    24h = adresse de la routine de gestion des erreurs critiques
    25h et 26h = lecture et écriture absolue sur disque
    27h = installation d'un programme en mode résident
    28h = MSDOS en attente
    2Fh = impression en tâche de fond (spooler)
    33h = gestion de la souris
    41h et 42h = paramètres des disques durs

    Je pense qu'un BIOS moderne gère encore tout ça, il doit peut être en gérer plus, mais là je ne programme plus en assembleur depuis longtemps.
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  3. #3
    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
    Merci beaucoup pour ce début, n'existe t'il pas justement une interruption qui m'afficherait à l'écran toutes les interruptions que gère le BIOS ? Parce que vous parlez de l'OS MS-DOS pouvez-vous me confirmer que les interruptions citées sont bien indépendantes de tout OS ?

  4. #4
    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
    Bonjour,

    La seule interruption MS-DOS ici est l'interruption 21h, donc si tu ne l'utilises pas, logiquement ces instructions sont supportées par tous les BIOS (modulo fantaisies du constructeur de la carte mère comme toujours ).

    Au passage, y'a un outil formidable qui s'appelle , qu'il serait bon ton d'utiliser de temps en temps au lieu de poser une question aussi triviale.
    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

  5. #5
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 106
    Points
    43 106
    Par défaut
    Vu les recherches que tu effectue et les questions que tu pose, ça m'étonnes que tu ne connaisse pas osdev.org.

    http://wiki.osdev.org/BIOS
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  6. #6
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 939
    Points : 23 253
    Points
    23 253
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    Vu les recherches que tu effectue et les questions que tu pose, ça m'étonnes que tu ne connaisse pas osdev.org.

    http://wiki.osdev.org/BIOS
    Si je te suis chrtophe le BIOS n'utiliserait que 4 interruptions ?

    INT 0x10 = Video display functions (including VESA/VBE)
    INT 0x13 = mass storage (disk, floppy) access
    INT 0x15 = memory size functions
    INT 0x16 = keyboard functions

    Je ne me suis jamais posé la question, car je n'ai que très rarement touché le BIOS en assembleur 8086 avec Debug.

    Je me souviens du temps où je formatais le disque dur avec Debug.

    Lorsque je faisais des formations en entreprise (SNCF) pour des BTS informatiques industrielles de l'école d'Aurillac dans le Cantal, je leur apprenais surtout à détourner les interruptions matérielles.

    Le must étant l'INT 10h vidéo et l'INT 16h clavier, mais surtout à détourner le Ctrl Break et le Crtl C.
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  7. #7
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 106
    Points
    43 106
    Par défaut
    Si je te suis chrtophe le BIOS n'utiliserait que 4 interruptions ?
    Non, ce sont les principales.

    De mémoire int 0x08 à 0xf - irq 0 à 7 (je ne me rappelle plus les vecteurs d'interruption pour les irq 8 à 15)
    int 0x14 - port série
    int 0x11 - informations sur le matériel
    int 0x19 - reboot
    int 0x18 - lançait le basic sur les premiers PC qui en intégrait un dans le bios

    d'autres vecteurs stockent des infos et ne sont donc pas vraiment des interruptions, mais ne sont pas libres à l'utilisation par un OS.

    pour plus d'informations, tu as tout en bas de la page un lien vers toutes les int possibles, y compris les fonctions int ajoutées par DOS, Windows et autre applis connues.

    Il y a 256 interruptions possibles (du moins en mode réel, en mode protégé c'est géré différemment).

    edit :

    dans ton message, les int égales ou supérieures à 0x20 sont des int DOS, non BIOS à l'exception des 0x41/42 qui sont des données BIOS.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  8. #8
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 939
    Points : 23 253
    Points
    23 253
    Billets dans le blog
    10
    Par défaut
    Je ne peux pas te dire exactement pour les interruptions utilisées par le BIOS mais de toute façon il est aussi obligé d'utiliser la 25h et la 26h pour gérer le disque dur.

    Il existe aussi des fonctions de l'INT 21h qui gère le disque dur par exemple :

    La 0Dh qui réinitialise le tampons de fichier.

    La 0Eh qui sélectionne le disque

    La 0Fh ouverture d'un fichier avec FCB

    La 10h fermeture d'un fichier avec FCB

    La 11h trouve le premier fichier d'un répertoire

    La 12h trouve le fichier suivant

    La 14h lecture séquentielle

    La 15h écriture séquentielle

    La 16h création d'un fichier avec FCB

    La 17h renomme un fichier

    La 19h lecture du disque courant

    La 1Ah spécifie la DTA

    La 1Bh lecture des paramètres du disque courant

    La 1Ch lecture des paramètres d'un disque quelconque

    La 21h lecture relative FCB

    La 22h écriture relative

    La 23h lecture de la taille d'un fichier FCB

    La 24h sélection d'un enregistrement relatif

    La 25h écriture d'une adresse dans le vecteur d'interruption

    La 26h création d'un nouveau PSP

    La 27h lecture relative d'un bloc d'enregistrement

    La 28h écriture relative d'un bloc d'enregistrement

    La 29h analyse d'un nom de fichier

    Il ne s'agit là que des fonctions de l'INT 21h pas des interruptions
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  9. #9
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 106
    Points
    43 106
    Par défaut
    Non les interruptions 0x25 et 0x26 sont des interruptions DOS qui appellent l'int 0x13. La différence est que les int 0x25 et 0x26 appellent des secteurs logiques qui se suivent le secteur 0 étant si je me rappelle bien le 1er secteur après les FAT. Elles évitent de devoir calculer la correspondance numéro secteur/tête/piste. Un peu comme le LBA.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  10. #10
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 939
    Points : 23 253
    Points
    23 253
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    Non les interruptions 0x25 et 0x26 sont des interruptions DOS qui appellent l'int 0x13. La différence est que les int 0x25 et 0x26 appellent des secteurs logiques qui se suivent le secteur 0 étant si je me rappelle bien le 1er secteur après les FAT. Elles évitent de devoir calculer la correspondance numéro secteur/tête/piste. Un peu comme le LBA.
    C'est loin tout cela, j'ai arrêté de programmer en assembleur lorsque j'ai fait mon Burn-Out en Avril 1992.

    Mon dernier programme était un créateur de fichier texte CF.exe, il bloquait l'Edit du DOS en nombre de ligne.

    Ce programme utilisait l'INT 16h ce qui permettait de faire un fichier DOS avec le caractère Alt 255 et la barre espace dans le nom du fichier.

    Un fichier créé avec dans le nom du fichier la barre espace comme caractère était ineffaçable par le DOS, qui accepte le caractère Alt 255 mais pas la barre espace.
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  11. #11
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Il faut quand même rester prudent quand on manipule les interruptions car une erreur et c'est le crash assuré

  12. #12
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 939
    Points : 23 253
    Points
    23 253
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par Auteur Voir le message
    Il faut quand même rester prudent quand on manipule les interruptions car une erreur et c'est le crash assuré
    Je pense que plus personne ne manipule les interruptions maintenant ?

    Les Outils qu'utilisent les programmeurs de maintenant ne descendent pas jusqu'aux interruptions directement je pense.
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  13. #13
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    En assembleur, on les manipule directement, non ? Je me souviens d'appels à des fonctions avant l'appel de l'interruption. En C, ou même en Pascal, je me souviens d'avoir appelé des routines d'interruptions pour gérer la souris par exemple (pour des programmes DOS).

  14. #14
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 106
    Points
    43 106
    Par défaut
    Avec le mode protégé, on ne peut plus les manipuler comme ça.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  15. #15
    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
    Merci beaucoup pour ce lien http://www.ctyme.com/intr/int.htm

  16. #16
    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
    Encore une question, ces interruptions sont-elles identiques sur tous les pc ?

  17. #17
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 106
    Points
    43 106
    Par défaut
    oui.

    Mais attention, elles sont valables en mode réel, en mode protégé sur les systèmes récents, c'est géré différemment.

    Sous MS-DOS, on utilisait l'int 0x21 pour appeler les fonctions système.
    Sous Linux, on utilise l'int 0x80 pour accéder aux fonctions système avec passage des paramètres dans les registres CPU, voir si c'est le même principe en 64 bits, j'ai jamais testé.
    Sous Windows, on utilise pas les int pour accéder aux fonctions systèmes mais empilement des paramètre et appel de la fonction par un call.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  18. #18
    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
    Merci, dans le cas d'un pc sans ces OS, mais avec un programme bootable fait maison, que je sois en mode protégé ou long, Pourrais-je toujours utiliser l'entièrté des interruptions bios disponibles en mode réel ?

  19. #19
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 106
    Points
    43 106
    Par défaut
    Non, il te faudra créer tes propres interruptions en mode protégé.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

Discussions similaires

  1. imprimante RICOH listes complètes des codes PJL
    Par cpf2006 dans le forum Autres systèmes
    Réponses: 1
    Dernier message: 12/11/2013, 10h34
  2. regex-Liste complète des commandes
    Par rambc dans le forum Général Python
    Réponses: 4
    Dernier message: 16/07/2011, 10h10
  3. liste complète des clefs pour UIManager
    Par michel18 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 12/01/2008, 00h12

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