lunes, 5 de septiembre de 2011

Curso de programación: Capítulo 10. Excepciones


Hola a todos,

Aunque parezca imposible hay ocasiones en que nos interesa que el programa pruebe algo y espere a que funcione o no.

Un caso típico es cuando no sabemos si el procesador tiene un determinado juego de instrucciones (para el caso que más nos afecta : nos interesa saber si el procesador puede hacer funcionar instrucciones de SSE,SSE2,SSE3,SSE4,etc...) debido a que eso puede hacernos variar la forma de implementar ciertas funciones de forma dinámica.

El ejemplo más sencillo de todos seria saber si nuestro procesador es capaz de ejecutar instrucciones SSE, para ello, ejecutaremos una instrucción SSE sencilla y esperaremos a ver que nos dice el sistema sobre su ejecución.

El código es el siguiente:

#include "windows.h"
bool SoporteSO()
{

    __try{
        _asm xorps xmm0, xmm0
        }

    __except( EXCEPTION_EXECUTE_HANDLER)
    {
        if( _exception_code()==STATUS_ILLEGAL_INSTRUCTION)
            return false;
        return false;
    }
    return true;
}


int main (int argc, char* argv[])
{
    if( ! SoporteSO() )
    {
        cout << "SSE no soportado\n";
        return 0;
    }
}

Espero que os haya gustado y hayais aprendido.
Nos vemos
LordPakusBlog

0 comentarios :

Publicar un comentario

Entradas populares