Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





CPUID y pijaditas

Iniciado por Zaelsius, 03 de Diciembre de 2002, 10:11:31 AM

« anterior - próximo »

Zaelsius

Pues sólo pido un buen link a una página de programación en ensamblador, pero con iformación sobre los últimos procesadores(y ya he visitado intel.com y amd.com) en la que haya ejemplos de instrucciones como CPUID.

Esta instrucción la he visto en varios ejemplos y ya sé como detectar 3D Now!, MMX y alguna cosa más, pero aún no sé como se obtienen las cadenas tipo "Authetic AMD™" o la supuesta velocidad del micro.
Creo que con un documento tardaré menos en averiguarlo que utilizando el W32Dasm para ver qué hacen algunos programas que he visto x ahí.

La razón es autodetectar el tipo de CPU para mostrarlo al arrancar un juego, que aunque sólo sea una pijadita siempre mola y da un toque de professionalidá, y de paso, pues aprendo algo más de assembler.

synchrnzr

                                No me acuerdo mucho del tema, pero antes había tocado cosas y creo que CPUID te devolvía sólo un carácter, por ejemplo "A" para "Authentic AMD" o "G" para "Genuine Intel"

Sync                                

fiero

                                En esta dirección de amd te puedes bajar unas funciones que están muy bien:
http://www.amd.com/us-en/Processors/Develo...71_2364,00.html

En cuanto a lo que comentais de obtener la cadena del micro, devuelve 4 caracteres en cada registro. Este código está sacado de esas funciones de amd:



   case CPU_MFG:

       __asm {

           // Query manufacturer string

           // function 0 = manufacturer string

           mov     eax,0          

           CPUID



// These tests could probably just check the 'ebx' part of the string,

// but the entire string is checked for completeness.  Plus, this function

// should not be used in time-critical code, because the CPUID instruction

// serializes the processor. (That is, it flushes out the instruction pipeline.)



           // Test for 'AuthenticAMD'

           cmp     ebx,'htuA'

           jne     short not_amd

           cmp     edx,'itne'

           jne     short not_amd

           cmp     ecx,'DMAc'

           jne     short not_amd

           mov     eax,MFG_AMD

           jmp     short next_test



           // Test for 'GenuineIntel'

        not_amd:

           cmp     ebx,'uneG'

           jne     short not_intel

           cmp     edx,'Ieni'

           jne     short not_intel

           cmp     ecx,'letn'

           jne     short not_intel

           mov     eax,MFG_INTEL

           jmp     short next_test



un saludo                                
www.videopanoramas.com Videopanoramas 3D player






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.