1. #1
    Invité de passage
    Inscrit en
    février 2013
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : février 2013
    Messages : 2
    Points : 0
    Points
    0

    Par défaut Transformation des minuscules en majuscules

    Bonsoir messieurs, mesdames, mesdemoiselles,

    Je débute totalement en assembleur, mais j'essaie de me démerder tant bien que mal. On m'a donné un exercice assez court à faire, pour lequel je sais à peu près comment faire une solution, mais je n'en tire rien.

    Je suis sous Ubuntu 12.04 et j'utilise NASM, avec PC HP.

    Mon exercice est (en résumé) : « Programmez une commande cat qui transforme les minuscules en majuscules ».

    J'ai déjà un code de cat en exemple. Je l'ai donc repris et y ai ajouté mes propres lignes. Voici ce à quoi je suis arrivé :

    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
    global main
    ;===========================
            section .bss
    ;===========================
    c       RESB    1               ; le caractère lu
    ;===========================
            section .text
    ;===========================
    main:
    .boucle:
            MOV     EAX,3           ; lecture
            MOV     EBX,0           ; au clavier
            MOV     ECX,c
            MOV     EDX,1
            INT     0x80
            CMP     EAX,0
            JE      .fin            ; il n'y a plus rien à lire
            CALL    majuscule
            MOV     EAX,4           ; écriture
            MOV     EBX,1           ; à l'écran
            MOV     ECX,c
            MOV     EDX,1
            INT     0x80
            JMP     .boucle
    .fin:   MOV     EAX,1
            MOV     EBX,0
            INT     0x80
            RET
    ; ==========================
    majuscule:       ; <= mon code à partir d'ici
    .comparaison:
            MOV     AL,[c]
            CMP     AL,'a'  ;vérifie que c a un code ASCII supérieur à celui de a
            JB      .fin
            CMP     AL,'z'  ;vérifie que c a un code ASCII inférieur à celui de z 
            JA      .fin
            SUB     AL,0x20 ;transforme la lettre de c en majuscule
            JMP     .fin
    .fin:
            RET
    Et quand je lance une démo', il n'y a rien qui change :/. y a-t-il un truc que je n'aurais pas compris ?

  2. #2
    Responsable Modération
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    septembre 2007
    Messages
    5 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2007
    Messages : 5 937
    Points : 16 534
    Points
    16 534

    Par défaut

    Hello,

    À ta dernière ligne, tu fais un « SUB AL,0x20 », mais tu ne replaces pas ce nouveau caractère dans [c].

  3. #3
    Invité de passage
    Inscrit en
    février 2013
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : février 2013
    Messages : 2
    Points : 0
    Points
    0

    Par défaut

    Citation Envoyé par Obsidian Voir le message
    Hello,

    À ta dernière ligne, tu fais un « SUB AL,0x20 », mais tu ne replaces pas ce nouveau caractère dans [c].
    o.o j'me sens ridicule. Le pire c'est que l'idée m'a traversé l'esprit mais je n'ai pas fouillé, persuadé que ce n'était pas ça. Merci beaucoup.

  4. #4
    Responsable Modération
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    septembre 2007
    Messages
    5 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2007
    Messages : 5 937
    Points : 16 534
    Points
    16 534

    Par défaut

    Citation Envoyé par maelarael Voir le message
    o.o j'me sens ridicule. Le pire c'est que l'idée m'a traversé l'esprit mais je n'ai pas fouillé, persuadé que ce n'était pas ça. Merci beaucoup.
    Ne t'inquiète pas. C'est le lot de tous les programmeurs, même les plus avertis.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 31/01/2014, 11h57
  2. Transformer des minuscules en majuscules
    Par qqoos dans le forum Cobol
    Réponses: 2
    Dernier message: 05/09/2008, 10h21
  3. Transformer du minuscule en MAJUSCULE
    Par moilou2 dans le forum IHM
    Réponses: 2
    Dernier message: 01/07/2008, 19h38
  4. Réponses: 3
    Dernier message: 29/09/2006, 22h48
  5. [String] passer des minuscules aux majuscules
    Par Lady_jade dans le forum Général Java
    Réponses: 5
    Dernier message: 19/10/2005, 10h03

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