Bonjour tout le monde,
Voilà un petit bout de code qui génère un beau plantage sur mon ordi (memory could not be written) sans que je comprenne vraiment pourquoi. Cela fait-il la même chose chez vous ? Et avez-vous une explication ?
De plus :
- si j'enlève les deux premières lignes du code (lea ...), alors c'est un autre plantage que j'obtiens.
- si j'enlève la proc HexString du code, ça fonctionne. Pourtant HexString n'est jamais appelée dans la partie principale.
- si j'enlève les deux lignes repe et cmpsd alors ça fonctionne
Je n'y comprends rien.....
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 .486 .model flat,stdcall option casemap :none ; case sensitive include C:\masm32\include\windows.inc include C:\masm32\include\user32.inc include C:\masm32\include\kernel32.inc includelib C:\masm32\lib\user32.lib includelib C:\masm32\lib\kernel32.lib .data MonPremier db 0E0h MonDeuxieme db 010h MonTitre db "Titre",0 MaChaine db "Essai",0 .code start: lea edi,MonPremier lea esi,MonDeuxieme mov ecx,8 std repe cmpsd invoke ExitProcess,0 HexString Proc invoke MessageBox,0,ADDR MaChaine,ADDR MonTitre,MB_OK ret HexString EndP end start
Partager