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
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.