cpuid.asm

来自「这是一个JPEG解码器,里面使用了MMX,SSE等汇编指令集」· 汇编 代码 · 共 54 行

ASM
54
字号
;// CPU identification

.686P
.MODEL FLAT, STDCALL
OPTION CASEMAP:NONE
OPTION PROLOGUE:NONE
OPTION EPILOGUE:NONE
.MMX

INCLUDE jpeg.inc

.CODE

;//=========================================================================
;// Detect mmx/sse/sse2/sse3 support
;// returns : eax : instruction set supported
;//=========================================================================

CPUID_Init PROC

        push        ebx

        ;// get feature information (crash if cpuid not supported)
        mov         eax, 1
        cpuid
        DBG_CPUID

        ;// assumes SSE3 means SSE2,SSE,MMX,CMOV support
        ;//         SSE2 means SSE,MMX,CMOV support
        ;//         SSE means MMX,CMOV support

        ;// test SSE3
        mov         eax, CPU_SSE3
        shr         ecx, 1
        jc          Done
        ;// test SSE2
        dec         eax
        shl         edx, 32-26
        jc          Done
        ;// test SSE
        dec         eax
        shl         edx, 1
        jc          Done
        ;// test MMX
        shl         edx, 1
        adc         eax, -2
Done:
        pop         ebx
        ret

CPUID_Init ENDP

END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?