Команда cpuid
не делает то, что вы думаете.
См. Статья в Википедии CPUID .
Первый столбец (тот, который в основном считается) - это значение в eax
до выполнения инструкции cpuid
, остальные столбцы - это значения соответствующих регистров после этого. Следовательно, значения в регистрах представляют ту же информацию об идентификаторе, которую вы получаете при запуске cpuid
без -r
, и поэтому не изменятся, если вы не измените процессор.
Из Википедии:
EAX = 1:… EBX [биты 31:24]) используется для идентификации выполняющегося логического процессора ».
{{ 1}}
[Если он показывает n различных состояний и у вас n ядер, тогда это будет иметь смысл.]
Примечание : это не ответ о том, как делать то, что вы хотите, а о почему то, что вы делаете, не делает того, что вы хотите. Смотрите мой другой ответ, чтобы узнать, как делать то, что вы хотите.