C'est très con mais j'ai pas trouvé pourquoi dans certaines sources y'a des points d'exclamation avant les instructions asm.
Qqun pourrait m'éclairer là dessus ?
Point d'exclamation
Point d'exclamation
Vive le thread-safe !
Si tu mets un point d'exclamation devant la ligne asm, PB ne va pas y toucher, le code sera donc tel quel.
Si tu ne mets pas un !, PB va peut-être interpreter le pseudo code asm.
Un exemple vaut mieux qu'un grand discours.
Si on a une variable locale donc sur la pile qui s'appelle Var1.l
On accède à cette variable avec le registre esp comme ceci (par exemple)
Mais si esp a changé l'accès n'est plus le même (esp change très souvent). Par contre si on écrit
c'est du pseudo assembleur et PB va convertir correctement en fonction des variations de esp, raison pour laquelle il est préférable d'utiliser le pseudo code si on accède à des variables locales
Si tu ne mets pas un !, PB va peut-être interpreter le pseudo code asm.
Un exemple vaut mieux qu'un grand discours.
Si on a une variable locale donc sur la pile qui s'appelle Var1.l
On accède à cette variable avec le registre esp comme ceci (par exemple)
Code : Tout sélectionner
MOV eax, dword [esp]
Code : Tout sélectionner
MOV eax, Var
Je n'ai pas précisé ça me semblait évident mais bon, je précise
PB va corriger la valeur à ajouter à esp pour retomber juste mais uniquement en tenant compte des variations engendrée par le code PB pas par le code asm mis au travers qui changerait esp (c'est clair ?)
si tu modifies esp en asm par un PUSH, POP ou autre, PB l'ignore, il pourrait y avoir des erreurs.
PB va corriger la valeur à ajouter à esp pour retomber juste mais uniquement en tenant compte des variations engendrée par le code PB pas par le code asm mis au travers qui changerait esp (c'est clair ?)
si tu modifies esp en asm par un PUSH, POP ou autre, PB l'ignore, il pourrait y avoir des erreurs.