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 :

[NASM][8086] Ecrire un caractère en couleur


Sujet :

x86 16-bits Assembleur

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 108
    Points : 109
    Points
    109
    Par défaut [NASM][8086] Ecrire un caractère en couleur
    Bonjour à tous !

    Bon voilà, j'aimerais bien savoir comment on affiche un caractère en couleur en mode 03h...(texte 16 couleurs).
    Petite précision : il ne faut pas utiliser les interruptions du DOS (seulement celles du BIOS).

    Merci !

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    La fonction 09h de l'interruption 10h devrait convenir :
    http://www.ctyme.com/intr/rb-0099.htm
    Le caractère dans AL et la couleur dans BL.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 108
    Points : 109
    Points
    109
    Par défaut
    Bonjour !

    Alors en fait dans AH je met 09h, dans AL le caractère à afficher, dans BL la couleur, mais dans BH et CX je met quoi ?

    Par contre, je suis en mode texte, et je lis dans la référence :
    Citation Envoyé par liste des interruptions ASM
    BL = attribute (text mode) or color (graphics mode)
    Faut-il absolument passer en un mode graphique pour pouvoir écrire en couleur ? (il y a marqué que en mode texte on met un attribut dans BL...)

  4. #4
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    En mode texte le registre BH est indéfini. Le registre CX contient le nombre de répétitions du caractère. Quant-à l'attribut du caractère, c'est sa couleur.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  5. #5
    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
    C'est pas un truc comme ça plutôt ?



    Edit : ah tiens en fait si on ne considère que la couleur du texte peut-être que tout le reste est à zéro donc on n'a pas à sen soucier.
    :wq

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 108
    Points : 109
    Points
    109
    Par défaut
    Alors une fonction qui affiche une chaîne de caractère en rouge doit se présenter comme ça ? :
    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
     
    ; Paramètres : DS:SI <- pointe sur la chaîne à afficher en rouge
    afficher :
      push ax
      push bx
      push cx
    .debut :
      lodsb
      cmp al, 0
      jz .fin
      mov ah, 09h
      mov cx, 1
      mov bl, 00000100b
      int 10h
      jmp .debut
    .fin :
      pop cx
      pop bx
      pop ax
      ret

  7. #7
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 225
    Points : 113
    Points
    113
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mov [0xB8000], 'X'
    mov [0xB8001], attribut
    ces deux lignes ne suffisent pas ? ( tu réduis la taille de ton binaire en plus )

    En plus si tu écris directement à la mémoire vidéo comme cela, ton code n'aura plus besoin des interruptions et pourra donc marcher en mode protégé aussi
    Forum Programmation d'OS - Tutoriel pour créer un petit noyau 32 bits .

    ( le développement de littlefoot86 est abandonné ... )

Discussions similaires

  1. [8086] Ecrire un mot en triangle
    Par houssembleur dans le forum Assembleur
    Réponses: 4
    Dernier message: 11/06/2007, 00h53
  2. Ecrire du texte en couleur en java.
    Par @omzo dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 27/05/2007, 23h31
  3. [VB.NET]Comment autoriser a ecrire le caractère ":" dans un XML?
    Par mustang-f27 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 24/11/2006, 20h39
  4. Ecrire un caractère grec ?
    Par MiJack dans le forum Delphi
    Réponses: 4
    Dernier message: 03/10/2006, 17h00
  5. Ecrire du texte en couleurs dans un composant
    Par wutang dans le forum Composants
    Réponses: 11
    Dernier message: 12/07/2004, 10h55

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