Problem mit GCC-Inline-Asm
-
Hallo!
Bei der folgenden Zeile GCC-Inline-Asm gibt GCC 17 mal den Fehler invalid `asm': operand number missing after %-letter aus:
asm( "pushadl\n\t" "movl $0, %eax\n\t" "cpuid\n\t" "movl %eax, $_ea\n\t" "mov %bl, $_vid[0]\n\t" "movb %bh, $_vid[1]\n\t" "roll $16, %ebx\n\t" "movb %bl, $_vid[2]\n\t" "movb %bh, $_vid[3]\n\t" "movb %dl, $_vid[4]\n\t" "movb %dh, $_vid[5]\n\t" "roll $16, %edx\n\t" "movb %dl, $_vid[6]\n\t" "movb %dh, $_vid[7]\n\t" "movb %cl, $_vid[8]\n\t" "movb %ch, $_vid[9]\n\t" "roll $16, %ecx\n\t" "movb %cl, $_vid[10]\n\t" "movb %ch, $_vid[11]\n\t" "movb $0, $_vid[12]\n\t" "popadl\n\t" : /*none*/ : /*none*/ : "memory" );
Wo liegt der Fehler?
PS: das $_vid[...] bezieht sich auf char vid[13];.
-
Mal versucht, die Register mit nem doppeltem % anzusteuern?
(sobald die erweiterte inline-asm-Syntax benutzt ist das notwendig)