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 :

Séparation des lettres et des chiffres d'une chaîne


Sujet :

Assembleur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Séparation des lettres et des chiffres d'une chaîne
    Voila le but de l'exercice est de trier une chaine de caractere c'est a dire mettre les chiffre au debut et les les lettre de l'autre coter

    ex: "eg72d93v" doi donner ==> 7293egdv peut importe l'ordre.

    Voila ce ke j'ai fait mais ca tourne pas en tout cas pas comme je le veut :

    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
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    .386
    ASSUME  ss:pile,    cs:code,  DS:donnees
     
    pile  segment stack use16
     
          DB   1024   Dup(0)
     
    Pile  ends
     
    donnees segment use16
     
            acmsg DB "34ee2y7g5$"
     
    donnees ends
     
    code segment use16
    main:
     
     
    mov ax,donnees
    mov ds,ax
     
    push ax
    push 8
     
    call distinct_ch
    mov ah,9
    lea dx,acmsg
    int 21h
     
    mov ah,4ch
    int 21h
     
     
     
    distinct_ch:
     
    push bp 
    mov bp,sp
     
    mov bx,0
     
     
    debut:	
     
    cmp acmsg[bx],'$'
    je dist_fin
     
    cmp acmsg[bx],'9'
    jbe cond2
    jmp inversion
     
    cond2:
    cmp acmsg[bx],'0'
    jae incre
    jmp inversion
     
     
    incre:
     
    inc bx
    jmp debut
     
     
     
     
    inversion:
    mov ch,byte ptr acmsg[bx]
     
    mov si,bx
    mov di,si
    add di,1
    bcl_invers:
     
     
    cmp acmsg[di],'$'
    je fait_ret
     
    mov dh,byte ptr acmsg[di]
     
     
    mov byte ptr acmsg[si],dh
    inc si
    inc di
    jmp bcl_invers
     
    fait_ret:
     
    mov byte ptr acmsg[si],ch
    jmp debut
     
    dist_fin:
     
    pop bp
    ret 4
     
    code ends 
     
    end main

    Merci d'avance pour votre aide

  2. #2
    ALT
    ALT est déconnecté
    Membre émérite
    Avatar de ALT
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2002
    Messages
    1 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 234
    Points : 2 338
    Points
    2 338
    Par défaut
    Une première remarque : je vois plusieurs push, mais un seul pop. Est-ce normal ?
    « Un peuple qui est prêt à sacrifier un peu de liberté contre un peu de sécurité, ne mérite ni l'une, ni l'autre, et finira par perdre les deux. »
    Attribué indistinctement à :
    Thomas Jefferson
    Benjamin Franklin
    Albert Einstein !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par ALT
    Une première remarque : je vois plusieurs push, mais un seul pop. Est-ce normal ?

    oui parce que lorsque je fait un retour au programme appelant je fait un RET 4 donc je depile ce qu'il y a sur la pile

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/12/2014, 20h45
  2. Conversion des lettres par des lettres avec accent
    Par SamusStrife dans le forum Général Java
    Réponses: 6
    Dernier message: 28/10/2014, 15h44
  3. [RegEx] Remplacer des lettres ou des chiffres
    Par nicoreims dans le forum Langage
    Réponses: 5
    Dernier message: 17/07/2012, 14h06
  4. Réponses: 3
    Dernier message: 09/10/2009, 18h05
  5. [VB-Excel]Trier une valeur comprennant des lettres et des chiffres
    Par DomBourti dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2006, 21h51

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