Articles of assemblage de

Pointeurs et version de build dans Visual Studio

J’ai un problème étrange lorsque je crée une version avec Visual Studio 2008. Je me demandais si l’un de vous pouvait m’aider à comprendre ce qui se passait. Description: j’ai une fonction membre de la classe qui renvoie un pointeur sur une structure stockée dans la classe: const MyStruct * Myclass::getPointer() { return mystruct_variable; // […]

L’insertion d’un commentaire dans __asm ​​entraîne une erreur C2400 (VS2012)

J’essayais de vérifier l’assembleur compilé de certains codes dans VS 2012. J’ai ajouté deux lignes (avant et après mon code) comme telles: __asm ; it begins here! // My code __asm ; it ends here! Cependant, VS n’a pas aimé ça. j’ai eu error C2400: erreur de syntaxe de l’assembleur inline dans ‘opcode’; trouvé ‘mauvais […]

appeler asm sqrtsd sous un c ++

Sous Visual 2012, comment appeler la fonction sqrtsd asm dans un projet c ++ Je ne le trouve pas via google quelque chose comme : double mySqrt(double val) { __asm { … sqrstd… } } MODIFIER: en mode 32 bits

Échec de vérification au moment de l’exécution n ° 0 dans le code asm intégré

Je suis un peu nouveau dans l’assembleur, mais j’essaie de rechercher les parameters à partir d’une méthode C ++ dans la stack esp , en utilisant du code assembleur intégré. Jusqu’à présent, je n’ai même pas été en mesure de copier le pointeur esp sur ebp afin de pouvoir conserver la stack (au cas où […]

Comment activer l’instruction stepping dans eclipse-cdt (Eclipse pour C ++) par défaut?

Je débogue plusieurs fois un programme dans Eclipse CDT en mode pas à pas, c’est-à-dire qu’un “pas à pas” provoque l’exécution de la prochaine instruction de code assembleur / machine plutôt que la ligne suivante du code C / C ++. Parce que je le fais encore et encore, je suis obligé d’appuyer à nouveau […]

Comment localiser une erreur dans un appel de méthode «PackageManager.AddPackageAsync»?

Je débogue actuellement un exemple d’application qui déploie un package Windows Metro App (fichier “.Appx”). Il appelle une méthode WinRT ” PackageManager.AddPackageAsync ” qui échoue avec un texte de code d’erreur détaillé (extrait de la valeur de retour de l’appel une fois l’opération terminée): erreur 0x80070002: Windows ne peut pas inscrire le package en raison […]

Lire le registre eax

J’aimerais savoir s’il est possible de lire le registre eax d’un autre processus immédiatement après l’exécution d’une instruction d’assemblage. Dans mon cas, j’ai le code d’assemblage suivant: mov byte ptr ss:[EBP-4] call dword ptr ds:[] add esp, 4 L’idée est d’obtenir la valeur eax juste après l’instruction “call dword ptr ds: []” “. En effet, […]

OllyDbg ne peut pas déboguer Visual Studio Exe

Je viens de créer un nouveau fichier exe vc ++ avec ce code simple: #include #include #include int ExceptionHandler(void); int main(int argc,char *argv[]){ char temp[512]; printf(“Application launched”); try { throw “error”; } catch (… ) { ExceptionHandler(); } return 0; } int ExceptionHandler(void) { printf(“Exception”); return 0; } L’application est extrêmement simple et un fichier […]

Un cadre de stack est-il réellement poussé sur la stack lorsqu’une fonction est appelée?

La façon dont on m’enseigne depuis un certain temps est que, lorsque j’exécute un programme, la première chose qui va immédiatement sur la stack est un frame de stack pour la méthode principale. Et si j’appelle une fonction appelée foo () depuis main, un cadre de stack représentant la taille des variables locales (objects automatiques) […]

Accès au pointeur C ++ similaire à l’assemblage

Parfois, je vois différents styles d’access aux tableaux en C ++ et je pensais que cela pouvait être relatif à un mode d’adressage d’assembly: C ++: int * aa=new int[2]; 0[aa]=15; //a little different than aa[0] 1[aa]=15; aa[0]=15; aa[1]=15; printf(“%d %d \n”,aa[0],aa[1]); Assemblée: __asm { mov aa[0],ebx mov aa[1],eax mov 0[aa],ebx mov 1[aa],eax } Cette […]