<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wx="http://ilps.science.uva.nl/WikiXML/wx" xml:lang="pt" lang="pt">
<head>
<title>Halt and Catch Fire</title>
<meta name="wx_namespace" content="0"/>
<meta name="wx_pagename" content="Halt_and_Catch_Fire"/>
<meta name="wx_page_id" content="1730706"/>
</head>
<body>
<div id="wx_article">
<wx:section level="1" title="Halt and Catch Fire" id="wxsec1"><h1 class="pagetitle" id="wx1">Halt and Catch Fire</h1>

<p id="wx2"><b id="wx3">Halt and Catch Fire</b> ("pare e pegue fogo"), mais conhecida pelo <a href="/wpt/Mnem%C3%B4nico" title="Mnemônico" wx:linktype="known" wx:pagename="Mnemônico" wx:page_id="131976" id="wx4">mnemônico</a> <b id="wx5">HCF</b>, era originalmente uma <a href="/wpt/Instru%C3%A7%C3%A3o_%28inform%C3%A1tica%29" title="Instrução (informática)" wx:linktype="known" wx:pagename="Instrução_(informática)" wx:page_id="1707435" id="wx6">instrução</a> fictícia de <a href="/wpt/C%C3%B3digo_de_m%C3%A1quina" title="Código de máquina" wx:linktype="known" wx:pagename="Código_de_máquina" wx:page_id="15994" id="wx7">código de máquina</a> a qual se afirmava estar em desenvolvimento na <a href="/wpt/IBM" title="IBM" wx:linktype="known" wx:pagename="IBM" wx:page_id="28722" id="wx8">IBM</a> para uso nos seus computadores <a href="/wpt/IBM_System/360" title="IBM System/360" wx:linktype="known" wx:pagename="IBM_System/360" wx:page_id="802856" id="wx9">System/360</a>, juntamente com outras instruções cômicas, tais como "Execute Operador".<sup id="_ref-0" class="reference"><a href="#_note-0" title="" wx:fragment="_note-0" wx:linktype="note" id="wx10"/></sup></p>

<p id="wx11">Na prática moderna, <i id="wx12">HCF</i> significa uma instrução não-documentada em código de máquina com efeitos colaterais incomuns, incluída no processador para efeito de teste. A velha instrução "Halt and Catch Fire" e o mnemônico HCF foram apropriados por usuários que descobriram nestas expressões um modo humorístico de expressar que a execução acidental de tal instrução tornaria o sistema incapaz de realizar suas funções normais, não obstante parecesse estar bastante ocupado. Neste contexto, a expressão "catch fire" ("pegar fogo") é estritamente metafórica.</p>

<p id="wx13">Mas uma história apócrifa de fins dos anos <a href="/wpt/D%C3%A9cada_de_1960" title="Década de 1960" wx:linktype="known" wx:pagename="Década_de_1960" wx:page_id="11356" id="wx14">1960</a>, quando os computadores usavam <a href="/wpt/Mem%C3%B3ria_de_ferrite" class="new" title="Memória de ferrite" wx:linktype="unknown" wx:pagename="Memória_de_ferrite" id="wx15">memória de ferrite</a>, dá um sentido mais próximo ao significado fictício. Segundo a história, para acelerar a velocidade de acesso a memória num protótipo, os engenheiros aumentaram as correntes de leitura/gravação nos fios extremamente finos que atravessavam os <a href="/wpt/Toro_%28topologia%29" title="Toro (topologia)" wx:linktype="known" wx:pagename="Toro_(topologia)" wx:page_id="211808" id="wx16">toros</a> da memória de ferrite. Isto funcionava bem quando o computador estava executando programas normais, visto que os acessos espalhavam-se por toda a memória. Todavia, a instrução HALT ("pare") foi implementada como "vá para si mesma". Isto significava que o mesmo local do núcleo de memória era repetidamente acessado, e os fios delgados se tornavam tão quentes que começavam a fumegar - daí o "Halt and Catch Fire".</p>

<div id="wx_toc"/>

<a id="Uma_aut.C3.AAntica_HCF" name="Uma_aut.C3.AAntica_HCF"/>
<wx:section level="2" title="Uma autêntica HCF" id="wxsec2"><h2 id="wx17">Uma autêntica HCF</h2>

<p id="wx18">O <a href="/wpt/Microprocessador" title="Microprocessador" wx:linktype="known" wx:pagename="Microprocessador" wx:page_id="6190" id="wx19">microprocessador</a> <a href="/wpt/Motorola_6800" title="Motorola 6800" wx:linktype="known" wx:pagename="Motorola_6800" wx:page_id="1595087" id="wx20">Motorola 6800</a> foi o primeiro no qual um <a href="/wpt/Opcode" title="Opcode" wx:linktype="known" wx:pagename="Opcode" wx:page_id="262825" id="wx21">opcode</a> HCF tornou-se amplamente conhecido. A origem do opcode HCF do 6800 (0xDD ou 0xD9) surgiu num artigo escrito por <a href="/wpt/Gerry_Wheeler" class="new" title="Gerry Wheeler" wx:linktype="unknown" wx:pagename="Gerry_Wheeler" id="wx22">Gerry Wheeler</a> (1952–2006) na edição de dezembro de 1977 da <a href="/wpt/Byte_%28revista%29" title="Byte (revista)" wx:linktype="known" wx:pagename="Byte_(revista)" wx:page_id="853425" id="wx23"><i id="wx24">BYTE</i></a> sobre opcodes não-documentados.<sup id="_ref-Byte_77_0" class="reference"><a href="#_note-Byte_77" title="" wx:fragment="_note-Byte_77" wx:linktype="note" id="wx25"/></sup> A instrução fazia com que o processador entrasse num modo destinado a testes de produção, no qual ele realiza continuamente ciclos de leitura à <a href="/wpt/RAM" title="RAM" wx:linktype="known" wx:pagename="RAM" wx:page_id="1660" id="wx26">RAM</a> em endereços de memória sucessivos e não pode ser interrompido por nenhuma outra instrução. Efetivamente, o <a href="/wpt/Barramento" title="Barramento" wx:linktype="known" wx:pagename="Barramento" wx:page_id="132514" id="wx27">barramento de eendereços</a> torna-se um <a href="/wpt/Contador" title="Contador" wx:linktype="known" wx:pagename="Contador" wx:page_id="169984" id="wx28">contador</a>, permitindo que a operação de todas as linhas de endereço sejam rapidamente verificadas. Uma vez que o processador tenha entrado neste modo de teste, deixa de responder a interrupções, de modo que a operação normal só pode ser restaurada através de um <a href="/wpt/Reset" title="Reset" wx:linktype="known" wx:pagename="Reset" wx:page_id="1441467" id="wx29">reset</a>.</p>

<a id="Processadores_com_opcodes_HCF" name="Processadores_com_opcodes_HCF"/>
</wx:section><wx:section level="2" title="Processadores com opcodes HCF" id="wxsec3"><h2 id="wx30">Processadores com opcodes HCF</h2>

<ul id="wx31">
<li id="wx32"><a href="/wpt/Motorola_6800" title="Motorola 6800" wx:linktype="known" wx:pagename="Motorola_6800" wx:page_id="1595087" id="wx33">6800</a><sup id="_ref-Byte_77_1" class="reference"><a href="#_note-Byte_77" title="" wx:fragment="_note-Byte_77" wx:linktype="note" id="wx34"/></sup></li>

<li id="wx35"><a href="/wpt/MIPS-X" class="new" title="MIPS-X" wx:linktype="unknown" wx:pagename="MIPS-X" id="wx36">MIPS-X</a>
<p id="wx37">: processador suportado pela <a href="/wpt/Defense_Advanced_Research_Projects_Agency" title="Defense Advanced Research Projects Agency" wx:linktype="known" wx:pagename="Defense_Advanced_Research_Projects_Agency" wx:page_id="179878" id="wx38">DARPA</a>; o Manual do Programador descreve uma instrução HSC (<i id="wx39">Halt and Spontaneously Combust</i>) na versão -NSA do processador<sup id="_ref-1" class="reference"><a href="#_note-1" title="" wx:fragment="_note-1" wx:linktype="note" id="wx40"/></sup></p>
</li>
</ul>

<a id="Ver_tamb.C3.A9m" name="Ver_tamb.C3.A9m"/>
</wx:section><wx:section level="2" title="Ver também" id="wxsec4"><h2 id="wx41"><wx:template id="wx_t1" pagename="Predefinição:Ver_também" page_id="62492"/>Ver também<wx:templateend start="wx_t1"/></h2>

<ul id="wx42">
<li id="wx43"><a href="/wpt/Killer_poke" class="new" title="Killer poke" wx:linktype="unknown" wx:pagename="Killer_poke" id="wx44">Killer poke</a></li>
</ul>

<wx:template id="wx_t2" pagename="Predefinição:Ref-section" page_id="1467239"/>
<a id="Refer.C3.AAncias" name="Refer.C3.AAncias"/>
</wx:section><wx:section level="2" title="Referências" id="wxsec5"><h2 class="notes" style="cursor:help" title="Esta secção não é editável por razões técnicas. Edite a página toda ao invés disso, ou a secção anterior." id="wx45">Referências</h2>

<div class="references-small" style="height: auto; max-height: 200px; overflow: auto; padding: 3px; border: 1px solid #EEEEEE" id="wx46">
<ol class="references" id="wx47">
<li id="_note-0"><a href="#_ref-0" title="" wx:fragment="_ref-0" wx:linktype="noteref" id="wx48">↑</a> <a href="http://ruthless.zathras.de/fun/top-secret/NewOpCodes.txt" class="external text" wx:linktype="external" rel="nofollow" id="wx49">Proposed Additions to the IBM Instruction Set</a></li>

<li id="_note-Byte_77">
<p id="wx50">↑ <a href="#_ref-Byte_77_0" title="" wx:fragment="_ref-Byte_77_0" wx:linktype="noteref" id="wx51"><sup id="wx52">2,0</sup></a> <a href="#_ref-Byte_77_1" title="" wx:fragment="_ref-Byte_77_1" wx:linktype="noteref" id="wx53"><sup id="wx54">2,1</sup></a> <cite style="font-style:normal" id="wx55">Wheeler, Gerry (Dezembro de 1977). "Undocumented M6800 Instructions". <i id="wx56">BYTE</i> <b id="wx57">2</b> (12): 46-47.</cite></p>
</li>

<li id="_note-1"><a href="#_ref-1" title="" wx:fragment="_ref-1" wx:linktype="noteref" id="wx58">↑</a> <a href="ftp://reports.stanford.edu/pub/cstr/reports/csl/tr/86/289/CSL-TR-86-289.pdf" class="external text" wx:linktype="external" rel="nofollow" id="wx59">MIPS-X</a></li>
</ol>
</div>

<wx:templateend start="wx_t2"/>
</wx:section></wx:section></div>
<div id="wx_categorylinks">
<a href="/wpt/index.php?title=Especial:Categories&amp;article=Halt_and_Catch_Fire" title="Especial:Categories" wx:linktype="known" wx:pagename="Especial:Categories" id="wx60">Categorias de páginas</a>: <span dir="ltr" id="wx61"><a href="/wpt/Categoria:Arquitetura_de_computadores" title="Categoria:Arquitetura de computadores" wx:linktype="known" wx:pagename="Categoria:Arquitetura_de_computadores" wx:page_id="64279" id="wx62">Arquitetura de computadores</a></span> | <span dir="ltr" id="wx63"><a href="/wpt/Categoria:Linguagens_de_programa%C3%A7%C3%A3o" title="Categoria:Linguagens de programação" wx:linktype="known" wx:pagename="Categoria:Linguagens_de_programação" wx:page_id="15241" id="wx64">Linguagens de programação</a></span> | <span dir="ltr" id="wx65"><a href="/wpt/Categoria:Terminologia_inform%C3%A1tica" title="Categoria:Terminologia informática" wx:linktype="known" wx:pagename="Categoria:Terminologia_informática" wx:page_id="51109" id="wx66">Terminologia informática</a></span></div>
<div id="wx_languagelinks">
Outras línguas: <a href="http://en.wikipedia.org/wiki/Halt_and_Catch_Fire" class="external" wx:linktype="interwiki" wx:pagename="en:Halt_and_Catch_Fire" id="wx67">English</a> | <a href="http://it.wikipedia.org/wiki/Halt_and_Catch_Fire" class="external" wx:linktype="interwiki" wx:pagename="it:Halt_and_Catch_Fire" id="wx68">Italiano</a> | <a href="http://pl.wikipedia.org/wiki/Halt_and_Catch_Fire" class="external" wx:linktype="interwiki" wx:pagename="pl:Halt_and_Catch_Fire" id="wx69">Polski</a> | <a href="http://sv.wikipedia.org/wiki/Halt_and_Catch_Fire" class="external" wx:linktype="interwiki" wx:pagename="sv:Halt_and_Catch_Fire" id="wx70">Svenska</a></div>
</body>
<wx:templatearguments for="wx_t1"><wx:argument name=""/></wx:templatearguments>
<wx:templatearguments for="wx_t2"><wx:argument name=""/></wx:templatearguments>
</html>
