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;
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage