La gestion de la pile dans masm32

Signaler
Messages postés
570
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
18 janvier 2021
-
Messages postés
225
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
30 juillet 2008
-
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

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
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++
Messages postés
570
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
18 janvier 2021
2
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
Messages postés
225
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
30 juillet 2008

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