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 :)
Version imprimable
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 :)
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
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:chercher une chaîne dans une phrase
.........................................................................................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
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