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).
- L'instruction fut ajoutée au processeur Pentium Pro.
- Son opcode est 0F 0BEn 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.
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 connait pas. Il est à noter que 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
![]() |
Portail de l'informatique – Accédez aux articles de Wikipédia concernant l’informatique. |
.
[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 connait pas. Il est à noter que 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 produites
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
![]() |
Portail de l'informatique – Accédez aux articles de Wikipédia concernant l’informatique. |