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 :

[Linux] Algorithme pour lire et afficher les nombres


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut [Linux] Algorithme pour lire et afficher les nombres
    Voilà je suis débutant en assembleur en linux, j'ai un exercice qui me posent un probleme
    En fait il s'agit de lire 10 nombres non signés au clavier et ensuite les enregistrer ds un tableau après les avoir trié et ensuite il faut mettre ces nombres séparés par des espaces dans un fichier de sortie.
    Donc j'ai essayé de debugger mon code, je pense que la faille se trouve dans la partie où il s'agit de lire 10 nombres l'un aprés l'autre
    Je sais que les commentaires ne sont pas tjr évidents à comprendre. Si vous avez fait des trucs similaires ou simplement vous savez où se trouvent mes erreurs et ce que je dois changer, svp, n'hésiter pas pour intervenir
    Merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    global main                       ;point d'entrée du pgm doit ê connu par Id.
    ;----------------------------------------------------------------------------------
     
     
    section .data                     ;section qui décrit les variables initialisées
    ;=============
    section .bss                      ;section qui décrit les variables non initialisées
    ;=============
    carac resw 1                      ;p le nbr de caractères réelement 
    vecteurchiffres resw 100          ;on reserve 100 word pour le vecteur
    ;=============
    section .code                    ;point d'entrée du pgm doit ê connu par Id.
    ;=============
     main:
    ;----
     lireNombre:
    ;----------
            mov eax,3               ;lecture
            mov ebx,0               ;au clavier
            mov ecx,carac           ;adresse qui contiendra le caractère lu
            mov edx,2              
            int 80h
     
            mov cx,0
            mov edi,0
        caractere1:                 ;lecture du premier caractère introduit
       ;----------
              mov dx,[carac]
              cmp dx,'10'              ;pour eviter que le 1er    caractère introduit au 
                                                ;clavier soit un passage à la ligne
              je lireNombre
              sub dx,48    
              cmp dx,'0'                 ;pour verifier si le nombre est un chiffre
              jl lireNombre
              cmp dx,'9'
              jg lireNombre
              add cx,1
              mov [vecteurchiffres+edi],dx  ;si le nbre lu au clavier est bien 1 chiffre
                                                    ;rajouté au tableau de du nombre
              add edi,2                      ;le descripteur de fichier
        caractere2etlasuite:                 ;pour lire le caractère suivant au clavier
       ;--------------------
              mov eax,3
              mov ebx,0
              mov ecx,carac
              mov edx,1
    	  int 80h 
              mov dx,[carac]
    	  cmp dx,10
    	  je exit
    	  sub dx,48
    	  cmp dx,'0'
    	  jl caractere2etlasuite
    	  cmp dx,'9'
              jg caractere2etlasuite
    	  add cx,1
    	  mov [vecteurchiffres+edi],dx
    	  add edi,2
      formatNombre: ;transformation des chiffres stockés ds le vecteur en nombre
      ;------------
    	  cmp cx,1
    	  jle exit
    	  mov eax,0
    	  mov eax,0
    	  mov ax,[vecteurchiffres+edi]
    	  add ax,48
    	  mov edi,0
    	  mov dx,10
        etape1:
       ;-------
    	  add edi,2
    	  mul dx
    	  mov bx,[vecteurchiffres+edi]
    	  add bx,48
    	  add ax,bx
              loop etape1
     
       exit:
      ;-----
              mov ebx,0               ;arguement 0
              mov eax,1               ;appel système N°1=exit
              int 80h                 ;appel système

Discussions similaires

  1. Une fonction implémentée en Java pour afficher les nombres premiers
    Par autran dans le forum Codes sources à télécharger
    Réponses: 2
    Dernier message: 01/05/2015, 16h45
  2. Réponses: 11
    Dernier message: 14/07/2008, 21h13
  3. Lire et afficher les donnée d'un fichier wav
    Par erkan37 dans le forum Multimédia
    Réponses: 4
    Dernier message: 08/04/2008, 15h08
  4. lire et afficher les enregistrements d'un fichier texte mod random
    Par intruder dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 28/08/2007, 00h06
  5. Ouvrir un répertoire pour y lister/afficher les fichiers.
    Par superjoe dans le forum Visual C++
    Réponses: 2
    Dernier message: 31/05/2007, 10h20

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