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

Assembleur Discussion :

Conversion nombre vers texte


Sujet :

Assembleur

  1. #1
    Provisoirement toléré
    Profil pro
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Points : 17
    Points
    17
    Par défaut Conversion nombre vers texte
    Bonjour !

    Je n'ai pas compris ces 2 lignes de ce programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       MUL   un               ; Je multiplie AX par 1 pour eviter les divisions pas 0
        DIV   dix              ; Je divise AX par 10 pour recuper le chiffre dans DL
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    .model small
    .stack 100h
    .486
     
    .data
    ; Je déclare le nombre en word
    nb    DW     139
    ; La chaîne de caractère à imprimer à l'écran
    affnb DB    '   ','$'
    un    DW    1
    dix   DW    10
     
    .code
    main proc
     
      MOV   AX,@data
      MOV   DS,AX
     
      CALL  imprnb
     
      MOV AH,04CH
      INT 21H
     
    main endp
     
    imprnb proc
      MOV   BX,offset affnb    ; Je lui passe une chaine de 3 caracteres
      ADD   BX,2               ; J'ai 3 chiffre mais j'avance de 2 pour pas ecraser le caractere de fin de chaine '$'
      MOV   AX,nb              ; Je recupere le nb dans AX
      MOV   CX,3               ; CX sert de compteur pour la boucle
      @@chiffreSuivant:
        PUSH  CX
        MUL   un               ; Je multiplie AX par 1 pour eviter les divisions pas 0
        DIV   dix              ; Je divise AX par 10 pour recuper le chiffre dans DL
        ADD   DL,48            ; J'additionne 48 au chiffre pour avoir le code ascii
        MOV   [BX],DL          ; Je deplace la reponse dans la chaine
        DEC   BX               ; Je me deplace dans la chaine
        POP   CX
      LOOP @@chiffreSuivant
     ; J'affiche a l'ecran la chaine qui contient le score
      MOV   AH,09h
      MOV   DX,offset affnb
      INT   21h
      RET
    imprnb endp
     
    end main

  2. #2
    Membre actif Avatar de Nyarlathotep
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 174
    Points : 217
    Points
    217
    Par défaut
    Euh....
    Je pense que ce code multiplie AX par 1 puis le divise par 10.
    Mais en aucun cas cela n'empêche les divisions par 0 : 0x1=0

    En fait, ce code simplement sépare les chiffres d'un nombre pour former une chaîne de caractères.
    ex 118%10 = 8 -> 8 + 48 = '8'
    11%10 = 1 -> 1+ 48 = '1'
    etc...
    "That is not dead which can eternal lie
    And with strange aeons even death may die"

    The Call of Cthulhu

Discussions similaires

  1. conversion nombre en texte avec Format
    Par LaPanic dans le forum VBScript
    Réponses: 2
    Dernier message: 28/04/2010, 01h16
  2. filtre avec conversion numérique vers texte
    Par petitbison dans le forum VBA Access
    Réponses: 7
    Dernier message: 13/07/2009, 08h15
  3. Conversion Nombre en Texte
    Par le_dilem dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/06/2009, 14h18
  4. Algorithme conversion PDU vers Texte
    Par begyves dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 16/02/2009, 15h10
  5. [Windev Mobile 10] Conversion RTF vers Texte
    Par LordBob dans le forum Windev Mobile
    Réponses: 2
    Dernier message: 12/07/2006, 14h37

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