UD2

Un article de Wikipédia, l'encyclopédie libre.

Pour les articles homonymes, voir UD et 2 (nombre).

En langage assembleur x86 , l'instruction UD2 est un mnémonique pour Undefined instruction (traduction : Instruction non définie).

Sommaire

[modifier] Description

L'instruction UD2 produit un opcode invalide, c'est-à-dire, qu'elle mime exactement le même processus dans le cas où le processeur rencontrerait un opcode qu'il ne connaît pas. Cette instruction est à réserver à des fins de tests uniquement, afin de générer spécifiquement et uniquement une erreur d'opcode invalide. C'est le seul et unique but de cette instruction.

[modifier] Drapeaux affectés

Aucun drapeau n'est affecté.

[modifier] Exceptions générées

UD2 produit une exception de type UD (Undefined opcode, vecteur d'interruption numéro 6) et ce pour les trois modes d'opérations (Mode réel, Mode virtuel 8086, Mode protégé).

[modifier] Exemple d'utilisation

[modifier] Langages C ou C++

  • Microsoft Visual C++ (code non portable)
#include <windows.h>
#include <iostream>
 
bool __ud2(void)
{
        __try{
                __asm{UD2}
        }
    __except(GetExceptionCode() == EXCEPTION_ILLEGAL_INSTRUCTION ? 
             EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH)
        {
                return true;
        }
        return false;
 }
 
int main(void)
{
        if ( __ud2() )
                std::cout << "Exception d'opcode invalide rencontrée";
        else 
                std::cout << "Exception d'opcode invalide non rencontrée";
 
        return 0;
}

[modifier] Articles connexes