ze5400 Skrevet 16. mai 2006 Skrevet 16. mai 2006 #include <iostream> using namespace std; int pluss2(int tall){ _asm{ mov eax, tall; add eax, 2; mov tall, eax; } return tall; } int main(){ cout << pluss2(5) << endl; Jeg er ny i c++, og prøver å inkludere asm kode i c++ i en c++ fil (det er ikke operasjonensom blir gjort i dette tilfellet, det er prinsippet). Hva er galt med denne koden? Jeg bruker Ubuntu Dapper Drake som OS. og Anjuta som IDE, som igjen bruker g++ som kompilator. Har også prøvd samme koden i VS2005 uten at det virket Noen ideer?
Mokki Skrevet 16. mai 2006 Skrevet 16. mai 2006 (endret) Har ikke prøvd inline assembly i c++, men tror du trenger dobbelt underline foran asm: __asm istedenfor _asm Endret 16. mai 2006 av Joy Toy
Peter Skrevet 16. mai 2006 Skrevet 16. mai 2006 (endret) Fungerer fint her, med både én og to underscores: #include <iostream> using namespace std; int pluss2(int tall){ __asm{ mov eax, tall; add eax, 2; mov tall, eax; } return tall; } int main() { cout << pluss2(5) << endl; std::cin.get(); return 0; } (Jeg la til alt under std::cin.get(), da kompilatoren klagde over dette;. \main.cpp(43) : fatal error C1075: end of file found before the left brace '{' at '.\main.cpp(15)' was matched main.cpp(15) = int main() { I fremtiden er det greit om du gir feilmeldingen, så vi slipper å gjette på egenhånd... Endret 16. mai 2006 av Nazgul
ze5400 Skrevet 17. mai 2006 Forfatter Skrevet 17. mai 2006 (endret) Takk! Nå virka det i VS2005! *Tester på linux nå* Hmm, i linux får jeg fortsatt feil C++ og ASM.cc: In function ‘int pluss2(int)’:C++ og ASM.cc:6: error: expected `(' before ‘{’ token C++ og ASM.cc:7: error: ‘mov’ was not declared in this scope C++ og ASM.cc:7: error: expected `;' before ‘eax’ C++ og ASM.cc:8: error: ‘add’ was not declared in this scope C++ og ASM.cc:8: error: expected `;' before ‘eax’ C++ og ASM.cc:9: error: expected `;' before ‘tall’ #include <iostream> using namespace std; int pluss2(int tall){ __asm{ mov eax, tall; add eax, 2; mov tall, eax; } return tall;} int main() { cout << pluss2(5) << endl; getchar(); return 0; } Endret 17. mai 2006 av ze5400
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå