Bonjour tout le monde,
Voila un petit bout de code qui genere un beau plantage sur mon ordi (memory could not be written) sans que je comprenne vraiment pourquoi. Cela fait il la meme chose chez vous? Et avez vous une explication?
De plus
si j'enleve les deux premieres lignes du code (lea ...), alors c'est un autre plantage que j'obtiens.
si j'enleve la proc HexString du code, ca fonctionne. Pourtant HexString n'est jamais appele dans la partie principale.
si j'enleve les deux lignes repe et cmpsd alors ca fonctionne
Je n'y comprends rien.....
; #########################################################################
.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
Luong