Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
'pointer': framepointer register 'register' gewijzigd door inline assemblycode
Opmerkingen
Er is een framepointerregister gewijzigd. U moet het register opslaan en herstellen in uw inline assemblyblok of framevariabele (lokaal of parameter, afhankelijk van het gewijzigde register) of uw code werkt mogelijk niet goed.
Example
In het volgende voorbeeld wordt C4731 gegenereerd:
// C4731.cpp
// compile with: /W1 /LD
// processor: x86
// C4731 expected
void bad(int p) {
__asm
{
mov ebp, 1
}
if (p == 1)
{
// ...
}
}
EBP is de framepointer (FPO is niet toegestaan) en wordt gewijzigd. Wanneer p er later naar wordt verwezen, wordt ernaar verwezen ten opzichte EBPvan . Maar EBP is overschreven door de code, dus het programma werkt niet goed en kan zelfs fouten.