我試圖用C++中的彙編器讀取CPUID。我知道它有功能,但我想要的方式。因此,在CPUID執行後,它應該用ASCII編碼的字符串填充eax,ebx,ecx寄存器。但我的問題是,因爲我可以在asm地址只有完整的,或半eax寄存器,如何將這32位分成4個字節。我用過這個:C++字到字節
#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);
}
這個問題可能被錯誤地理解爲「如何在沒有學習裝配的情況下在程序集中編程?」根據你的要求。顯而易見的答案是您要學習如何爲您的首選環境(Visual C++,x86 Linux上的GCC等)執行_x86內聯assembly_。 – mctylr 2010-03-10 21:34:33
爲什麼?我實際上比C更熟悉程序集。這個_asm {}實現在Visual C++中運行良好。我只是不知道如何使用C++將這些4字節分成4個字符。 – Vit 2010-03-10 21:52:13