Wie erkennt man den Typ der CPU-Architektur zur Laufzeit mit GCC und Inline-ASM?
Ich muss den Architekturtyp einer CPU finden. Ich habe keinen Zugriff auf / proc / cpuinfo, da auf dem Computer Syslinux ausgeführt wird. Ich weiß, dass es eine Möglichkeit gibt, dies mit Inline-ASM zu tun. Ich glaube jedoch, dass meine Syntax falsch ist, da meine Variable iedx nicht richtig festgelegt wird.
Ich mache mit ASM rum und bin auf keinen Fall ein Experte. Wenn jemand irgendwelche Tipps hat oder mich in die richtige Richtung weisen kann, wäre ich sehr dankbar.
static int is64Bit(void) {
int iedx = 0;
asm("mov %eax, 0x80000001");
asm("cpuid");
asm("mov %0, %%eax" : : "a" (iedx));
if ((iedx) && (1 << 29))
{
return 1;
}
return 0;
}