Witam, męczę się z napisaniem najprostszego programu, który zaświeci mi diodę podpiętą do LPT, jednak napotkałem problem ze wstawkami asemblerowymi. Używam Nokia QT Creator, który z kolei używa kompilatora mingw. Wyczytałem, że mingw obsługuje wstawki asemblerowe w składni AT&T, a wstawki podane niżej są w składni Intel'a.
Wstawki 'oryginalnie' wyglądają tak:
asm
{
push ax
push dx
mov dx,tAdres
mov al,Value
out dx,al
pop dx
pop ax
}
//...
asm
{
push ax
push dx
mov dx,tAdres
in al,dx
mov Got,al
pop dx
pop ax
}
"Przerobiłem" je w taki sposób, że kompilator już się nie pluje:
asm
("push ax\n"
"push dx\n"
"mov dx,tAdres\n"
"mov al,Value\n"
"out dx,al\n"
"pop dx\n"
"pop ax\n");
}
//...
asm
("push ax\n"
"push dx\n"
"mov dx,tAdres\n"
"in al,dx\n"
"mov Got,al\n"
"pop dx\n"
"pop ax\n");
Jednak wtedy dostaję błędy typu: C:\DOCUME~1\**\USTAWI~1\Temp\**:247: error: Error: too many memory references for
mov'`
Domyślam się, że to z powodu tego, że wstawki są w składni Intel'a a powinny być w składni AT&T.
Z racji tego, że kompletnie nie znam się na asemblerze będę wdzięczny za jakąkolwiek pomoc.