1 May
2004
1 May
'04
23:35
Am Son, 2004-05-02 um 00.12 schrieb Werner Schalk:
Hallo,
wieso erzeugt der folgende Code eine Fehlermeldung beim kompilieren?
int main() {
__asm__("
xor ebx,ebx mov al,1 int 0x80
");
}
Weil Du nicht die entsprechende Syntax angewand hast. Erstens verlangt gcc die AT&T-Syntax, die besagt, dass es %ebx und nicht ebx heißt. Und dann will gcc von Dir noch ein Paar Sachen wissen, wie Ein- und Ausgaberegister und die veränderten Register. Schau Dir mal die Seite 20ff. von http://www.linux-kernel.de/appendix/ap03.pdf an. Da steht das beschrieben. philipp