UD2

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

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

Description[modifier | modifier le code]

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.

Drapeaux affectés[modifier | modifier le code]

Aucun drapeau n'est affecté.

Exceptions générées[modifier | modifier le code]

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é).

Exemple d'utilisation[modifier | modifier le code]

Langages C ou C++[modifier | modifier le code]

  • 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;
}

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]