Force une chaine en majuscule avec and

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 165 fois - Téléchargée 29 fois

Contenu du snippet

Conversion d'une chaine en majuscule
Adresse de la chaine dans EDX avant l'appel de la routine
Aucune valeur de retour
La routine modifie la chaine, aucune copie!

Système de la conversion avec l'exemple du caractère 'a' :

code ASCII du 'a' 61h soit 01100001b
code ASCII du 'A' 41h soit 01000001b

La seule différence est le 5e bit qu'il faut forcer à 0 pour obtenir la majuscule à partir de la minuscule

AND caractere, 11011111b ; conserve tous les bits sauf le 5e forcés à 0

Bye
Bigbang

Source / Exemple :


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
; 
min2maj PROC 
; 
; Convertit une chaine de caractère  en Majuscules 
; 
; Paramètre:   EDX pointe sur la chaine 
; Retour:      (rien) 
; 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 

debut:    
   mov   al, BYTE PTR [edx] 

   cmp   al,0 
   je   short fin 
    
   cmp   al, 61h 
   jb   short inter 

   cmp   al, 7Ah 
   ja   short inter 

   and   al, 0DFh 
   mov  BYTE PTR [edx], al
inter: 
   inc   edx 
   jmp   short debut 
fin: 
   RET 

min2maj ENDP

Conclusion :


Je débute encore en ASM, alors merci de dire ce que vous pensez de cette routine.

Bigbang

A voir également

Ajouter un commentaire

Commentaires

Messages postés
196
Date d'inscription
vendredi 21 décembre 2001
Statut
Membre
Dernière intervention
25 juillet 2006

MASM

cya
Bigbang
Messages postés
442
Date d'inscription
samedi 23 novembre 2002
Statut
Membre
Dernière intervention
19 octobre 2005

Quel prog utilise tu pour faire de l'ASM ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.