PDA

Visualizza la versione completa : c++ - Assembler


FinalFantasy
28-10-2004, 23:02
Ufff....come si inseriscono delle istruzioni asm in un programma c++?
Ho provato sia con dev-c++ e con il buon vecchio Turbo C++, ma entrambi mi danno errore: il primo mi dice parse error e cose cos; il secondo mi dice declaration syntax error :dh:. Li metto dentro e/o fuori il main, ma nn va :cry: , ma cosa devo fare allora per inserire qualche mov qua e l?

gandalf45
28-10-2004, 23:15
sotto gcc(linux) o mingw(windows), dentro una funzione qualsiasi:

__asm("mov $0, %ebx")
__asm("mov $97, %cl");

oppure cos:

__asm("mov $0, %ebx\n" //nota \n
"mov $97, %cl");


Per assegnare una variabile (con le globali funziona, con le altre non ho provato) ad un registro usa il nome della variabile preceduto da '_'
Es una variabile var


__asm("mov %ebx, _var\n"

FinalFantasy
28-10-2004, 23:21
int main()
{
__asm("mov ax,5h");
return 0;
}

xke questo codice nn va???

gandalf45
28-10-2004, 23:24
Come ho detto questo codice funziona solo sotto mingw (http://www.mingw.org/) o gcc.

Cmq sia che errore ti da?

FinalFantasy
28-10-2004, 23:26
mi dice (dec-c++ non usa gcc?) too many memory references for mov

gandalf45
28-10-2004, 23:36
si, dev-c++ usa mingw(==gcc) :) credevi stessi provando con turbo C++.

Per quanto riguarda l'errore non so... non sono un esperto di assembly... il mio codice funziona?

Loading