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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    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
    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 expérimenté Avatar de Nyarlathotep
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 174
    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...

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