hi,
warum gibt der gnu assembler 2.18.0 bei folgendem code die nachfolgenden fehlermeldung aus?
__asm__("movl %%cr0, %%eax\n\t"
"or $0x80000000, %%eax\n\t"
"mov %%eax, %%cr0\n\t"::);
fehlermeldung:
gcc -ffreestanding -c -O3 -o mem.o mem.c
/tmp/ccIHvtLl.s: Assembler messages:
/tmp/ccIHvtLl.s:21: Error: suffix or operands invalid for `mov'
/tmp/ccIHvtLl.s:23: Error: suffix or operands invalid for `mov'
make: *** [compile] Fehler
wohingegen dieser code anstandslos übersetzt wird:
__asm__("mov %0, %%cr3\n\t"::"r" (value));
gruß Cheebi