WEB开发网
开发学院软件开发C++ Pentium III处理器的单指令多数据流扩展指令(3)... 阅读

Pentium III处理器的单指令多数据流扩展指令(3)

 2010-10-15 09:08:09 来源:Web开发网   
核心提示:2.4 侦测CPU使用SSE指令集需要有Pentium III处理器,应用程序一个首要的任务就是要去检查有没有Pentium III芯片.这可以用cpuid的指令完成.想要cpuid工作,需要把eax寄存器设置为特定的值.这里我们只想得到CPU的ID,需要把eax寄存器置为1然后调用cpuid指令. 下面给出检查Pen

2.4 侦测CPU

使用SSE指令集需要有Pentium III处理器,应用程序一个首要的任务就是要去检查有没有Pentium III芯片.这可以用cpuid的指令完成.

想要cpuid工作,需要把eax寄存器设置为特定的值.这里我们只想得到CPU的ID,需要把eax寄存器置为1然后调用cpuid指令. 下面给出检查PentiumIII处理器是否存在的代码.要想使下面的代码工作,还必须包含fvec.h头文件.

BOOL CheckP3HW()
{

BOOL SSEHW = FALSE;

_asm {

// Move the number 1 into eax - this will move the

// feature bits into EDX when a CPUID is issued, that

// is, EDX will then hold the key to the cpuid

mov eax, 1

// Does this processor have SSE support?

cpuid

// Perform CPUID (puts processor feature info in EDX)

// Shift the bits in edx to the right by 26, thus bit 25

// (SSE bit) is now in CF bit in EFLAGS register.

shr edx,0x1A

// If CF is not set, jump over next instruction

jnc nocarryflag

// set the return value to 1 if the CF flag is set

mov [SSEHW], 1

nocarryflag:

}

return SSEHW;
}

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Pentium III 处理器

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接