begin process at 2012 05 25 11:44:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Divers

 > 

Débutant(e)

 > 

Pangramme


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pangramme

mercredi 21 avril 2010 à 12:01:28 | Pangramme

vifo2008



Bjr je suis un débutant en programmation assembleur et et je voudrai 1 programme qui teste si toutes les lettres de l'alphabet sont présentes dans une chaine de caractères.
simple
mercredi 21 avril 2010 à 17:17:35 | Re : Pangramme

BruNews

Administrateur CodeS-SourceS
Fait sur Win7 x64, tu adapteras en 32 bits si besoin.


L'alphabet dans un buffer: BYTE btALPHA[256]

Voila qui permet de changer l'alphabet pendant l'exécution:
On y met des 1 ou 0.
; void __fastcall bnMakeAlpha(RCX = BYTE *pAlpha, RDX = char* szAlpha);
bnMakeAlpha PROC
xor eax, eax
mov r8d, 248 ; OFFSET DU DERNIER QWORD dans pAlpha
goZERO: ; 256 OCTETS A METTRE A ZERO
mov [rcx + r8], rax
sub r8d, 8
jns short goZERO
goSZALPHA:
mov al, byte ptr[rdx]
mov byte ptr[rcx + rax], 1
add rdx, 1
test al, al
jne short goSZALPHA
mov byte ptr[rcx], 0
ret 0
bnMakeAlpha ENDP

La fonction dessous retourn 0 ou 1 si le texte contient toutes les lettres de l'alphabet (btALPHA).
; DWORD __fastcall bnIsFullAlpha(RCX = BYTE *pAlpha, RDX = char* szText)
bnIsFullAlpha PROC
; COPIE DE pAlpha SOUS LE POINTEUR STACK SANS LE DEPLACER
mov r8d, 248 ; OFFSET DU DERNIER QWORD dans pAlpha
lea r9, [rsp - 256]
cpyALPHA:
mov rax, [rcx + r8]
mov [r9 + r8], rax
sub r8d, 8
jns short cpyALPHA
; METTRE ZERO CHAQUE OCTET DE TABLE LOCALE pAlpha->szText[i]
xor eax, eax
mov r8d, 248 ; (pour verifALPHA) OFFSET DU DERNIER QWORD dans pAlpha
goTEXT:
mov al, byte ptr[rdx]
mov byte ptr[r9 + rax], 0
add rdx, 1
test al, al
jne short goTEXT
verifALPHA:
or rax, [r9 + r8]
sub r8d, 8
jns short verifALPHA
test rax, rax
sete al
and eax, 1
ret 0
bnIsFullAlpha ENDP



ciao...
BruNews, MVP VC++


Cette discussion est classée dans : pangramme


Répondre à ce message

Sujets en rapport avec ce message

Est un pangramme ? [ par Guetux ] Bonjour, J'aimerai réaliser un programme qui vérifie si une chaine de caractère contient toutes les lettres de l'alphabet. (Les lettres peuvent êtres


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales