Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  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 :
    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
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    septembre 2007
    Messages
    5 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    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 308
    Points : 12 254
    Points
    12 254

    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
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    septembre 2007
    Messages
    5 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    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 308
    Points : 12 254
    Points
    12 254

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •