Halt and Catch Fire

Halt and Catch Fire (ang. wstrzymaj wykonanie programu i stań w ogniu – znana pod mnemotechniczną nazwą HCF) – ogólna nazwa nieudokumentowanych i pół-mitycznych instrukcji języka maszynowego z destrukcyjnymi efektami ubocznymi[1], według popularnych miejskich legend obecnych w wielu znanych systemach począwszy od IBM System/360[2].

Motorola 6800 był pierwszym procesorem, którego instrukcja maszynowa (język maszynowy) "HCF" stała się powszechnie znana. Instrukcja ta powoduje, że w procesorze włącza się tryb testowania fabrycznego – rozpoczyna on nieustannie czytać zawartość pamięci z kolejnych komórek bez wykonywania żadnych rozkazów[3]. W takiej konfiguracji szyna adresowa zaczyna zachowywać się jak licznik co pozwala na szybkie zweryfikowanie czy wszystkie linie adresowe działają prawidłowo.

Przykłady

Assembler

halt:
hlt 
jmp halt

C

for (;;)
{
asm(hlt)
}

Przypisy

  1. Kevin Korb's Jokes: Assembler Opcodes that should exist, www.sanitarium.net [dostęp 2021-06-06].
  2. IBM, IBM System/360 Principles of Operation.
  3. R. Gary Daniels, William C. Bruce, Built-In Self-Test Trends in Motorola Microprocessors, IEEE, kwiecień 1985, DOI10.1109/MDT.1985.294865, ISSN 1558-1918.