Ich versuche, einen Zahlenwert zu erhöhen, indem Sie eine Inline-Assembly in C++ verwenden. Der Grund, warum ich es so mache, ist meine "Inline Assembly" Fähigkeiten zu üben.Ändern eines Zahlenwerts mithilfe einer Inline-Assembly in C++
Nun ist das, was ich bisher getan:
void main()
{
int x;
cout << "Please enter a number ";
cin >> x;
cout << "The number you entered is: " << x << "\n";
foo(&x);
cout << "The new number is: " << x;
cin >> x;
}
void foo(int *x)
{
__asm
{
inc [x]
};
}
Und der Wert nie geändert.
Welchen Compiler benutzen Sie? MSVC? – Cameron
Microsoft Visual Studio 2012 –
Möglicherweise möchten Sie den kompilierten Code zerlegen und sehen, ob es das tut, was Sie erwarten. Ich habe gesehen, dass diese Art von Dingen wegen zu wenig oder zu viel Indirekt falsch läuft. Sie können "x" anstatt "x" erhöhen. –