Я попытался прочитать CPUID с помощью ассемблера на C++. Я знаю, что для этого есть функция, но мне нужен способ asm. Итак, после выполнения CPUID, он должен заполнить регистры eax, ebx, ecx с помощью кодированной строки ASCII. Но моя проблема в том, что я могу в asm-адресе только полный или половинный eax-регистр, как разбить эти 32 бита на 4 байта. Я использовал это:C++ word to bytes
#include <iostream>
#include <stdlib.h>
int main()
{
_asm
{
cpuid
/*There I need to mov values from eax,ebx and ecx to some propriate variables*/
}
system("PAUSE");
return(0);
}
Этот вопрос as-is может быть неправильно прочитан как «Как я могу программировать в сборке без обучения?» основываясь на том, что вы просили. Очевидным ответом является то, что вы узнаете, как сделать встроенную сборку _x86 для вашей предпочтительной среды (Visual C++, GCC на x86 Linux и т. Д.). – mctylr
Почему? Я на самом деле знаю сборку лучше, чем C. Эта реализация _asm {} хорошо работает в Visual C++. Я просто не знаю, как разделить эти 4 байта на 4 символа с помощью C++. – Vit