1
4

2 に答える 2

3

経験則として、movインライン asm を記述したことがある場合は、おそらく間違っています :) コンパイラは独自に値をロード/保存できます。

int dummy;
union {
    char text[12];
    struct {
        int ebx;
        int edx;
        int ecx;
    };
} vendorname;
__asm__(
    "cpuid \n"
    : "=b" (vendorname.ebx), "=d" (vendorname.edx), "=c" (vendorname.ecx), "=a" (dummy)
    : "a" (0)
);

3 つの dword を文字列として解釈する必要があるため、ケースが複雑であることに注意してください。

于 2013-10-16T19:44:38.477 に答える