UD2
Apparence
(Redirigé depuis UD-2)
En langage assembleur x86, l'instruction UD2 est un mnémonique pour Undefined instruction (traduction : Instruction non définie).
- L'instruction fut ajoutée au processeur Pentium Pro.
- Son opcode est 0F 0B.
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;
}