x86의 정의되지 않은 명령어는 왜 ud2일까? 숫자 2의 비밀

Why is the x86 undefined instruction called ud2? Why 2?

x86 컴파일러 출력에서 종종 보이는 ud2 명령어는 의도적으로 invalid opcode 예외를 발생시킨다. 원래는 0F FF와 0F B9 두 바이트 시퀀스가 각각 사용되었으나, Intel이 새 프로세서에서 이들이 더 이상 예외를 일으키지 않도록 바꾸면서 문제가 생겼다. 이에 Intel은 두 방식을 각각 ud0, ud1로 소급 명명하고, 파라미터가 없는 2바이트 명령어 ud2를 공식 정의되지 않은 명령어로 채택했다.

충분히 많은 사용자가 있다면, 모든 관찰 가능한 동작은 누군가에 의해 의존된다.

이 날의 다른 글

2026-09-13