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 :

Ecriture en B8000h en mode protégé sous Linux


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 139
    Points : 35
    Points
    35
    Par défaut Ecriture en B8000h en mode protégé sous Linux
    Bonjour ,

    Ma question est simple.En fait , quand j'étais en dos , je faisais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    mov ax,0b800h
    mov es,ax
    mov ah,attributs
    mov al,'a'
    mov es:[0] , ax
    Et j'avais mon caractère qui s'affichait à l'écran. Mais bon, le prof nous demande comment écrire en b8000h mais cette fois en mode protégé sous Linux. J'ai eu beau chercher partout une réponse. Rien trouvé.

    Merci.

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 193
    Points : 277
    Points
    277
    Par défaut
    Peut être pas cherché avec les bons mots clés.
    Un assembleur supportant linux ou ....

  3. #3
    Membre confirmé Avatar de dapounet
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Points : 567
    Points
    567
    Par défaut
    Bonjour,

    Citation Envoyé par dark0502 Voir le message
    Ma question est simple.En fait , quand j'étais en dos , je faisais

    mov ax,0b800h
    mov es,ax
    mov ah,attributs
    mov al,'a'
    mov es:[0] , ax

    Et j'avais mon caractère qui s'affichait à l'écran.Mais bon , le prof nous demande comment écrire en b8000h mais cette fois en mode protégé sous linux.J'ai eu beau chercher partout une réponse .Rien trouvé.
    Un OS moderne ne permet plus à n'importe qui d'accéder au matériel.
    Une solution est proposée ici : http://board.flatassembler.net/topic.php?t=8807.
    :wq

  4. #4
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 139
    Points : 35
    Points
    35
    Par défaut
    J'ai été voir mais je n'ai pas trouvé de code assembleur en linux me permettant d'écrire en b8000h.

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    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 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Citation Envoyé par dark0502 Voir le message
    J'ai été voir mais je n'ai pas trouvé de code assembleur en linux me permettant d'écrire en b8000h.
    B8000H de quel segment ? Linux travaille en mode protégé 32 bits depuis le départ.

    Si tu parles de la mémoire physique après traitement par le processeur, pour aller écrire dans la mémoire vidéo directement, tu peux essayer /dev/mem mais ça n'a rien à voir avec l'assembleur. Ou alors, il faut écrire un module du noyau qui puisse passer en mode privilégié pour le faire directement. Tu vois le niveau ?

    À ceci, j'ajoute que tout ceci n'est bien sûr pas impossible, mais qu'il faut en outre que ta carte vidéo soit initialisée en mode texte (ok, tu passes sur une console virtuelle), et en mode texte RÉEL, pas en frame buffer. Enfin, à ce stade, il faut être sûr que le mode texte a bien été initialisé à cette adresse, car ce n'est plus statique, aujourd'hui.

    Vraie question : as-tu le sentiment que ton prof' veut t'emmener quelque part en particulier, ou est-ce qu'il t'a confié cette tâche pour le principe et parce que l'info serait bonne à savoir ?

  6. #6
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 139
    Points : 35
    Points
    35
    Par défaut
    En fait , je voulais écrire en b8000 à partir du segment es.

    Pour répondre à ta question , il nous demande ça pour le principe et que c'est indispensable de savoir comment faire.Il est exigeant.

    Je suis en 2e graduat d'analyste-programmeur.Je double.On a un cours de système où on voit le mode réel et le mode protégé ainsi que deux ou trois mots sur le mode 0(privilégié) et mode 3 du cpu.Nous devons pouvoir expliquer comment par exemple écrire en b8000h à l'aide de l'extra segment en mode réel ce qui n'est pas difficile.Mais je me souviens qu'il m'avait aussi demandé comment écrire au même endroit mais en mode protégé.Et là , j'ai calé.

  7. #7
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    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 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Citation Envoyé par dark0502 Voir le message
    En fait , je voulais écrire en b8000 à partir du segment es.
    Ça ne nous dit pas grand chose. C'est surtout le contenu de ES qui va être important.

    Je suis en 2e graduat d'analyste-programmeur.Je double.On a un cours de système où on voit le mode réel et le mode protégé ainsi que deux ou trois mots sur le mode 0(privilégié) et mode 3 du cpu.Nous devons pouvoir expliquer comment par exemple écrire en b8000h à l'aide de l'extra segment en mode réel ce qui n'est pas difficile.Mais je me souviens qu'il m'avait aussi demandé comment écrire au même endroit mais en mode protégé.Et là , j'ai calé.
    Il y a deux notions différentes : faire un accès mémoire en mode protégé, d'une part, et faire un accès arbitraire en mémoire depuis Linux qui, lui, fonctionne déja en mode protégé. Et c'est très différent !

    Dans le premier cas, ça veut dire que tu dois gérer le mode protégé. Tout cela en considérant toujours que tu travailles sur PC, bien sûr. Pour cela, il faut passer en mode protégé, puis initialiser une GDT quelque part, la charger et ensuite utiliser tes segments. Le plus simple étant d'en faire un seul gros qui couvre la totalité des 4 Gio adressables.

    Dans le second cas, il faut demander à Linux l'autorisation d'aller écrire en mémoire physique directement, et je ne sais pas s'il y a un appel système dédié pour obtenir un segment à la volée de cette manière. Par conséquent, il faut passer en mode privilégié pour pouvoir faire ce genre de choses, et donc écrire un module du noyau.

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/10/2011, 18h14
  2. gestion de touches en mode console sous linux
    Par rudyhadoux dans le forum Applications et environnements graphiques
    Réponses: 0
    Dernier message: 03/10/2008, 10h15
  3. ecriture d'un driver en C sous linux
    Par Ybocks dans le forum Linux
    Réponses: 6
    Dernier message: 09/04/2008, 12h45
  4. mode superviseur sous linux
    Par yashiro dans le forum Linux
    Réponses: 1
    Dernier message: 12/01/2007, 16h07
  5. [FreePascal] Mode graphique sous Linux
    Par boullery dans le forum Free Pascal
    Réponses: 2
    Dernier message: 16/03/2005, 15h20

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