• [^] # Re: L'asm, le DOS, les démos, le mode X, love them !

    Posté par . En réponse au message Assembleur inline dans gcc. Évalué à 2.

    J'aimerais bien faire appel à un vecteur d'interruption bateau pour voir si ça plante aussi, mais je ne sais pas lequel je suis autorisé à appeler...


    Ça plantera, crois-moi sur parole ! :-)

    J'avoue que je ne sais pas comment fonctionne le mode protégé du processeur


    http://charles.moostik.net/pmode/index.php3?page=Introductio(...)

    mais il doit bien y avoir une autre manière que celles que tu as indiqué quand meme ?


    Il y en a une, mais ce n'est pas riant : écrire un module du noyau.

    Note que le problème resterait exactement le même sous Windows ou sous tout autre OS multitâche. Le bon coté, c'est que le boulot à faire est relativement simple (pas comme si on faisait un pilote de disque ou vidéo). Le mauvais, c'est que si ton programme plante, c'est pas une segfault que va affronter, mais un plantage général du système.

    La vraie difficulté, à mon avis, viendra du fait qu'il faudra probablement repasser en mode réel pour appeler la fonction du BIOS, puis revenir en mode protégé et restaurer tout l'état du système.

    Le plus triste, c'est que cette interruption doit probablement se contenter de faire un out bien placé vers un port d'entrée/sortie et que pour faire la même chose sous Linux, un bête ioperm suffit à un processus utilisateur ordinaire (root) pour faire le boulot ! :-)