La gestion de la pile dans masm32

ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 décembre 2022 - 3 avril 2004 à 16:29
Bombela Messages postés 225 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 30 juillet 2008 - 11 avril 2004 à 12:00
Par défaut la pile d'un programme masm32 est fixé a 4096 octets soit une page.je sais comment modifier cette taille au link mais je ne sais pas comment la modifier dynamiquement.Microsoft dit que l'on peut le faire en rajoutant des pages.Les fonctions a utiliser sont probalement en virtual...
Quelqu'un pourrait'il m'en dire plus ?
ToutEnmasm

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 avril 2004 à 21:42
La source la plus fiable sur le sujet est Richter:

http://brunews.free.fr/brunews/download/JR4.zip
http://brunews.free.fr/brunews/download/JR4Sources.zip

Explications completes sur plusieurs chapitres, documentees en C mais bien entendu idem pour ASM.

ciao...
BruNews, Admin CS, MVP Visual C++
0
ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 décembre 2022 3
6 avril 2004 à 15:24
j'ai testé avec succès
invoke VirtualAlloc,NULL,4096,MEM_RESERVE or MEM_COMMIT,PAGE_EXECUTE_READWRITE ;PAGE_READWRITE
.if eax == 0
invoke MessageBox,NULL,SADD("Failed"),SADD("VirtualAlloc"),MB_OK
.else
mov BlocMemoire,eax
.endif

mais la suite :
invoke VirtualQuery,BlocMemoire,addr memoirepile,sizeof memoirepile

s'obstine a ne pas vouloir fonctionner
TouTenmasm
0
Bombela Messages postés 225 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 30 juillet 2008
11 avril 2004 à 12:00
Heu... d'après ce que je sais, il faut demander à Windows de bloquer la page avec VirtualLock...

J'ai jamais utilisé c'est fonctions mais ayant parcouru MSDN, c'est ce que j'ai lu.

Voilà. Bye.

BOMBELA
0
Rejoignez-nous