halt and catch fire (HCF)
loreprogrammingops culture
A jokingly named machine instruction said to make a CPU seize up - and, on some chips, a real undocumented opcode that does.
HCF began as programmer humor for an instruction that would do something catastrophic like set the processor on fire, but the Motorola 6800 really had undocumented opcodes that locked the CPU into a runaway read cycle, and the nickname stuck to them. The name is folklore; the lock-up behavior on those chips is real.
Halt and Catch Fire is a joke instruction name, describing a hypothetical operation that stops the processor and destroys the hardware. The joke acquired substance when real undocumented instruction sequences were found that could put processors into states requiring a physical reset, and on some hardware could cause genuine damage.
The underlying reality it points at is that processors have undocumented behaviour. Instruction decoders accept sequences the documentation does not describe, some of those do interesting things, and researchers have systematically searched instruction space to find them. Some undocumented instructions turned out to be useful, some crash the machine, and the discovery process is closer to archaeology than to reading a manual.
The security dimension became serious rather than theoretical over the last decade. Speculative execution vulnerabilities showed that documented instructions can leak information through microarchitectural side channels that no instruction set reference mentions, because the reference describes the architecture rather than the implementation. The gap between what a processor is specified to do and what it actually does is where a great deal of modern security research lives, and the joke instruction turned out to be pointing at something real.
Disputed / commonly mistold A popular version of this story is inaccurate - see the note above.
Also known as: HCF, halt and catch fire
Sources
- The Jargon File - HCF
- Motorola 6800 undocumented opcodes