Précédent   Forum du club des développeurs et IT Pro > Autres langages > Assembleur > x86 32-bits / 64-bits
x86 32-bits / 64-bits Architectures x86 32/64 bits et leurs outils (assembleurs, debuggers, émulateurs...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 13/11/2012, 11h05   #1
raed sahli
Invité de passage
 
Homme
Inscription : novembre 2012
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : novembre 2012
Messages : 3
Points : 0
Points : 0
Par défaut chaine de caractere dans une autre

salut,

j'ai besoin d'un exemple qui me permet de chercher une chaine de caractere dans une autre en utilisant masm32
comme il faut utilisé les commandes
* scasb
* cmpsb


et merci
raed sahli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 17h06   #2
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 612
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

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

Informations forums :
Inscription : septembre 2007
Messages : 4 612
Points : 11 081
Points : 11 081
Bonjour,

C'est fort simple, mais on ne fera pas ton travail à ta place. En premier lieu, as-tu bien compris comment fonctionnent ces commandes ?
Obsidian est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 17h57   #3
raed sahli
Invité de passage
 
Homme
Inscription : novembre 2012
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : novembre 2012
Messages : 3
Points : 0
Points : 0
Citation:
Envoyé par Obsidian Voir le message
Bonjour,

C'est fort simple, mais on ne fera pas ton travail à ta place. En premier lieu, as-tu bien compris comment fonctionnent ces commandes ?

oui biensur je compris comment fonctionne ces commandes

repne scasb: l’élément existe "test d'un seul caractère"
repe scab: si l’élément n’existe pas

cmpsb: pour la comparaison

je fait une essai, mais la problème est que je suis débutant en assembleur
je fait la programation comme avec c++
mais je ne trouve pas comment je traduit le en langage assembleur sur masm
pour cela je peut voir un exemple
raed sahli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2012, 22h29   #4
raed sahli
Invité de passage
 
Homme
Inscription : novembre 2012
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : novembre 2012
Messages : 3
Points : 0
Points : 0
salut
S.V.P vous pouvez me corriger cet essai en assembleur sous masm 32 ?
C'est un programme qui permet de chercher une chaîne dans une phrase
leur principe est de tester un caractère de la 2ème chaîne par le premier caractère dans la première chaîne dans la phrase,
lors d'un espace, le pointeur se déplace dans la deuxième chaîne de la phrase
et commence le test de nouveau caractère par caractère

Code masm32 :
chercher une chaîne dans une phrase
..............................................................................
Code masm32 :
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
41
42
.586
.model flat,stdcall 
option casemap:none
include WINDOWS.INC
include user32.inc
include masm32.inc
include kernel32.inc
includelib USER32.LIB
includelib KERNEL32.LIB
includelib masm32.lib
.data
Msg0 BYTE "recheche d'une chaine",0
Msg1 BYTE "la chaine trouver",0
Msg2 BYTE " la chaine n'exisiste pas ",0
chaine1 db "recherche d'une chaine dans une autre",0
chaine2 db "chaine",0
chaine3 db " ",0
.code 
start:
mov bl,chaine3 
mov edi,offset chaine1
mov esi,offset chaine2
mov ecx, sizeof chaine2
etape1:
mov al,chaine1[edi]
.if (al== chaine2[esi])
inc esi
inc edi
.if (esi== ecx-1)
invoke MessageBox,NULL,addr Msg1, addr Msg0,MB_OK
.else
mov esi,0
inc edi 
mov al, sizeof chaine1
.if (al!= edi-1)
cmp bl,chaine1[edi]
je etape1
.else 
invoke MessageBox,NULL,addr Msg2, addr Msg0,MB_OK
.endif
invoke ExitProcess,0
end start
.........................................................................................

et merci
raed sahli est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h03.


 
 
 
 
Partenaires

Hébergement Web