Problem mit Assembler bei tcc
-
Hallo,
Ich habe folgende Funktion geschrieben:
void setlpt(int no) { switch(no) { case '0':no=0x01; break; case '1':no=0x02; break; case '2':no=0x04; break; case '3':no=0x08; break; case '4':no=0x10; break; case '5':no=0x20; break; case '6':no=0x40; break; case '7':no=0x80; break; } asm( mov ax,no mov dx,0x378 /* 0x378 für LPT1 */ out dx,ax /* Senden */ ); return; }
...um ein Signal an die Parallele Schnittstelle (LPT1) zu senden. Wenn ich das nun aber compiliere (Turbo C++) bekomme ich folgende Meldungen:
tcc schrieb:
Turbo C++ Version 1.01 Copyright (c) 1990 Borland International
output.c:
Warning output.c 16: Restarting compile using assembly in function setlpt
Error output.c 17: Undefined symbol 'mov' in function setlpt
Error output.c 17: Statement missing ; in function setlpt
*** 2 errors in Compile ***Was mach' ich falsch??? Ich kompiliere mit: tcc -c output.c
Danke im Voraus.
-
nimm für asm die geschweifte klammer und nicht die runde. nach asm {} kommt auch kein semikolon.
void setlpt(int no) { switch(no) { case '0':no=0x01; break; case '1':no=0x02; break; case '2':no=0x04; break; case '3':no=0x08; break; case '4':no=0x10; break; case '5':no=0x20; break; case '6':no=0x40; break; case '7':no=0x80; break; } asm { mov ax,no mov dx,0x378 /* 0x378 für LPT1 */ out dx,ax /* Senden */ } return; }