I'd like to express the A and B values(binary) in decimal numbers. please tell me what to do !!!! thank you !!
#include <stdio.h>
void do_cpuid(int, int*);
int main() {
int addr = 0;
int cnt = 32;
do_cpuid(0x80000008, &addr);
int i, j,k;
int result[20];
for (i = 0; addr > 0; i++)
{
result[i] = addr % 2;
addr = addr / 2;
}
printf("A: ");
for (j = i - 1; j >= 0; j--)
{
if (j >= 0 && j < 8) {
printf(" %d", result[j]);
}
}
printf("\n");
printf("B: ");
for (k = i - 1; k >= 0; k--)
{
if (k >= 8 && k < 16) {
printf(" %d", result[k]);
}
}
}
void do_cpuid(int input, int* addr) {
int reg_ax;
__asm {
mov eax, input;
cpuid;
mov reg_ax, eax;
}
*addr = reg_ax;
}
User contributions licensed under CC BY-SA 3.0