UD — Undefined Instruction

Opcode Instruction Op/En 64-Bit Mode Compat/Leg Mode Description
0F FF /r UD01 r32, r/m32 RM Valid Valid Raise invalid opcode exception.
0F B9 /r UD1 r32, r/m32 RM Valid Valid Raise invalid opcode exception.
0F 0B UD2 ZO Valid Valid Raise invalid opcode exception.

1. Some processors decode the UD0 instruction without a ModR/M byte. As a result, those processors would deliver an invalid-opcode exception instead of a fault on instruction fetch when the instruction with a ModR/M byte (and any implied bytes) would cross a page or segment boundary.

Instruction Operand Encoding

Op/En Operand 1 Operand 2 Operand 3 Operand 4
ZO N/A N/A N/A N/A
RM ModRM:reg (r) ModRM:r/m (r) N/A N/A

Description

Generates an invalid opcode exception. This instruction is provided for software testing to explicitly generate an invalid opcode exception. The opcodes for this instruction are reserved for this purpose.

Other than raising the invalid opcode exception, this instruction has no effect on processor state or memory.

Even though it is the execution of the UD instruction that causes the invalid opcode exception, the instruction pointer saved by delivery of the exception references the UD instruction (and not the following instruction).

This instruction’s operation is the same in non-64-bit modes and 64-bit mode.

Operation

#UD (* Generates invalid opcode exception *);

Flags Affected

None.

Exceptions (All Operating Modes)

#UD Raises an invalid opcode exception in all operating modes.