Problème à l'exécution d'un programme C++ : bug assembleur
Bonjour à tous, suite à des déboires rencontrés dans l'exécution d'un programme C++ que je développe (la compilation se déroulant très bien) je me suis dit pourquoi ne pas regarder l'endroit du code assembleur où le programme plante.
Voici donc la partie du code concernée, apparemment le programme a un problème ligne 00403F77
Au début de l'exécution ecx =0 et eax = 208896 (soit 33000 en hexa)
Du coup arrivée ligne 00403F77 eax = 204800.
Code:
1 2 3 4 5 6 7 8 9 10 11
| 00403F64 cmp ecx,eax
00403F66 jb 00403F72
00403F68 mov eax,ecx
00403F6A pop ecx
00403F6B xchg eax,esp
00403F6C mov eax,dword ptr [eax]
00403F6E mov dword ptr [esp],eax
00403F71 ret
00403F72 sub eax,1000h
00403F77 test dword ptr [eax],eax
00403F79 jmp 00403F64 |
Et le programme s'arrête avec en message de débugage :
Citation:
Exception non gérée à 0x00403f77 dans prog.exe*: 0xC00000FD: Stack overflow.
Si quelqu'un pouvait me lancer sur le bug que ça donne... je comprend pas trop cet histoire de test dword .... il sevrait pas y avoir un branchement conditionnel derrière, à quoi sert exactement le test s'il est suivi d'un jmp ?
Voilà en espérant que vous pourrez m'aider ...
Merci