<?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="it" lang="it">
<head>
<title>Salto (informatica)</title>
<meta name="wx_namespace" content="0"/>
<meta name="wx_pagename" content="Salto_(informatica)"/>
<meta name="wx_page_id" content="1422877"/>
</head>
<body>
<div id="wx_article">
<wx:section level="1" title="Salto (informatica)" id="wxsec1"><h1 class="pagetitle" id="wx1">Salto (informatica)</h1>

<p id="wx2">Un <b id="wx3">salto</b> (o <b id="wx4">diramazione</b> in alcune architetture di microprocessori, come il <a href="/wit/PDP-8" title="PDP-8" wx:linktype="known" wx:pagename="PDP-8" wx:page_id="286388" id="wx5">PDP-8</a> e l'<a href="/wit/Intel_x86" title="Intel x86" wx:linktype="known" wx:pagename="Intel_x86" wx:page_id="1548786" id="wx6">Intel x86</a>) è un punto in cui in un <a href="/wit/Processo" title="Processo" wx:linktype="known" wx:pagename="Processo" wx:page_id="203117" id="wx7">processo</a> viene alterato il sequenziale flusso delle istruzioni.</p>

<p id="wx8">Il termine salto viene comunemente utilizzato nei linguaggi a basso livello come l'<a href="/wit/Assembly" title="Assembly" wx:linktype="known" wx:pagename="Assembly" wx:page_id="349" id="wx9">assembly</a>; nei linguaggi ad alto livello i salti sono spesso sostituiti da costrutti di selezione (ad esempio, nei linguaggi <i id="wx10">c-like</i> sono rappresentabili con degli <a href="/wit/If" title="If" wx:linktype="known" wx:pagename="If" wx:page_id="600455" id="wx11">if</a> e <a href="/wit/If" title="If" wx:linktype="known" wx:pagename="If" wx:page_id="600455" id="wx12">if-else</a>), che svolgono logicamente la stessa funzione per cui il salto è stato creato nella programmazione a livello macchina.</p>

<p id="wx13">Una istruzione che causa un salto, detta istruzione di salto, può essere svolta o non svolta: se il salto non viene effettuato, il normale flusso sequenziale delle istruzioni non viene cambiato e l'istruzione seguente da caricare nella <a href="/wit/Prefetch" title="Prefetch" wx:linktype="known" wx:pagename="Prefetch" wx:page_id="564046" id="wx14">coda di prefetch</a> è quella immeditamente dopo l'istruzione di salto.<br id="wx15"/>
Se il salto viene eseguito, l'istruzione caricata si trova in una area di memoria indicata esplicitamente o non esplicitamente nell'istruzione di salto.<br id="wx16"/>
Esistono due tipi di istruzioni di salto: il <i id="wx17">salto condizionato</i> che può essere eseguito o non eseguito, ed il <i id="wx18">salto incondizionato</i>, che viene sempre eseguito.</p>

<p id="wx19">Per migliorare le prestazioni del microprocessore, tentando di eliminare la dipendenza dai controlli, si cerca di ottenere un perfetto pipeline grazie alla tabella storica dei salti (<i id="wx20">Branch Target Buffer</i> o BTB), prima di essa i microprocessori tentavano di ottenere lo stesso risultato grazie ad una doppia <a href="/wit/Prefetch" title="Prefetch" wx:linktype="known" wx:pagename="Prefetch" wx:page_id="564046" id="wx21">coda di prefetch</a>.</p>

<a id="Esempi" name="Esempi"/>
<wx:section level="2" title="Esempi" id="wxsec2"><h2 id="wx22">Esempi</h2>

<p id="wx23">Un salto incondizionato nel linguaggio assembly della <a href="/wit/Intel" title="Intel" wx:linktype="known" wx:pagename="Intel" wx:page_id="2308" id="wx24">Intel</a>:</p>

<pre id="wx25">
jmp 0x00100000
</pre>

<p id="wx26">Un salto condizionato nel linguaggio assembly della Intel:</p>

<pre id="wx27">
jz 0x00100000
</pre>

<a id="Voci_correlate" name="Voci_correlate"/>
</wx:section><wx:section level="2" title="Voci correlate" id="wxsec3"><h2 id="wx28">Voci correlate</h2>

<ul id="wx29">
<li id="wx30"><a href="/wit/Pipeline_dati" title="Pipeline dati" wx:linktype="known" wx:pagename="Pipeline_dati" wx:page_id="104105" id="wx31">Pipeline</a></li>

<li id="wx32"><a href="/wit/Predizione_delle_diramazioni" title="Predizione delle diramazioni" wx:linktype="known" wx:pagename="Predizione_delle_diramazioni" wx:page_id="122270" id="wx33">Predizione delle diramazioni</a></li>
</ul>
</wx:section></wx:section></div>
<div id="wx_categorylinks">
<a href="/wit/index.php?title=Speciale:Categories&amp;article=Salto_%28informatica%29" title="Speciale:Categories" wx:linktype="known" wx:pagename="Speciale:Categories" id="wx34">Categoria</a>: <span dir="ltr" id="wx35"><a href="/wit/Categoria:Microprocessore" title="Categoria:Microprocessore" wx:linktype="known" wx:pagename="Categoria:Microprocessore" wx:page_id="118535" id="wx36">Microprocessore</a></span></div>
<div id="wx_languagelinks">
Altre lingue: <a href="http://cs.wikipedia.org/wiki/Skok_%28informatika%29" class="external" wx:linktype="interwiki" wx:pagename="cs:Skok_(informatika)" id="wx37">Česky</a> | <a href="http://en.wikipedia.org/wiki/Branch_%28computer_science%29" class="external" wx:linktype="interwiki" wx:pagename="en:Branch_(computer_science)" id="wx38">English</a> | <a href="http://es.wikipedia.org/wiki/Salto_%28inform%C3%A1tica%29" class="external" wx:linktype="interwiki" wx:pagename="es:Salto_(informática)" id="wx39">Español</a> | <a href="http://ja.wikipedia.org/wiki/%E5%88%86%E5%B2%90%E5%91%BD%E4%BB%A4" class="external" wx:linktype="interwiki" wx:pagename="ja:分岐命令" id="wx40">日本語</a> | <a href="http://sk.wikipedia.org/wiki/Skok" class="external" wx:linktype="interwiki" wx:pagename="sk:Skok" id="wx41">Slovenčina</a> | <a href="http://uk.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%B8_%D0%BF%D0%B5%D1%80%D0%B5%D1%85%D0%BE%D0%B4%D1%83" class="external" wx:linktype="interwiki" wx:pagename="uk:Команди_переходу" id="wx42">Українська</a></div>
</body>
</html>
