Une instruction non documentée (en anglais, undocumented instruction ou illegal opcode) est une instruction-machine destinée à une unité centrale qui n'est pas mentionnée dans une documentation officielle publiée par le concepteur ou le fabricant de l'unité centrale, mais qui a néanmoins un effet. Les instructions non documentées étaient courantes sur les anciens processeurs conçus dans les années 1970, tels que le MOS Technology 6502, l'Intel 8086 et le Zilog Z80. Sur ces anciens processeurs, plusieurs instructions non documentées sont des effets secondaires du câblage des transistors dans l'unité centrale, et combinent généralement des fonctions de l'unité centrale qui n'étaient pas destinées à être combinées. Elles incluent la simplification du décodage des instructions par le processeur où certains bits du code d'instruction peuvent être ignorés. Les instructions concernées ont alors plusieurs codes possibles (des alias non officiels), mais un seul d'entre eux est officiellement documenté. Sur les processeurs anciens et modernes, il existe également des instructions intentionnellement incluses dans le processeur par le fabricant, mais qui ne sont documentées dans aucune documentation officielle. Certains programmes se servent d'instructions non documentées pour détecter la révision exacte du processeur. Si la plupart des instructions non documentées accidentelles ont des effets inutiles, voire hautement indésirables (comme le plantage de l'ordinateur), quelques-unes peuvent, par accident, faire quelque chose qui peut être utile dans certaines situations. De telles instructions ont parfois été exploitées dans les jeux sur ordinateur personnel des années 1970 et 1980 pour accélérer certaines opérations critiques. Ces instructions ont également été utilisées dans la lutte permanente entre la mise en œuvre de la protection contre la copie et le craquage. Dans ce cas, elles constituaient une forme de sécurité par l'obscurité et leur secret ne durait généralement pas très longtemps.
John Richard Thome, Jackson Braz Marcinichen, Nicolas Lamaison
Mirjana Stojilovic, Dina Gamaleldin Ahmed Shawky Mahmoud, David Dervishi