Protože si mikroprocesor vytváří frontu instrukcí, nejsou z hlediska rychlosti běhu programu skoky to pravé. Přesto bychom složitější programy bez nich asi těžko tvořili. Abychom mohli instrukce skoku používat, musíme umět vytvořit návěští.
Assembler je správně jen název překladače "Jazyka symbolických adres", který se pro něj čassem vžil. Název "Jazyk symbolických adres" vyjadřuje to, že místo adres instrukcí používáme symboly. V Turbo assembleru nejsme v názvech návěští nijak zvlášť omezováni. Ve vkládaném assembleru můžeme za název návěští použít posloupnost znaků začínající znakem @ (@1, @zacatek, @navesti). Jestliže používáme návěští, deklarované mimo vkládaný assembler (s pomocí LABEL), není přítomnost znaku @ nutná. Návěští s dvojtečkou uvedeme před instrukci, na kterou se odkazujeme. Při překladu je v místech odkazu na návěští jeho název nahrazen skutečnou adresou instrukce.
Je to nepodmíněný skok na jiné místo programu. To musí být označené návěštím. Za instrukcí skoku je potom uveden jeho název.
@navesti: instrukce na kterou bude odkaz
.
.
JMP
@navesti
Jestliže skoky používáme, hrozí vždy nebezpečí, že se program zacykluje (a nikdy neskončí). Proto je důležité si vždy rozmyslet, za jakých okolností by k této kolizi mohlo dojít.
Jedná se o skok podmíněný stavem jednoho nebo více, bitů registru příznaků F. Jen tímto způsobem je možné provádět v assembleru přímé větvení programu. Před instrukcí podmíněného skoku proto vždy provedeme instrukci, která použitý příznak nastaví. V případě, že není splněna podmínka skoku, pokračuje program dál, jako by se nic nedělo. Instrukce podmíněného skoku začínají vždy písmenkem J. Za ním je zkratka udávající na jakých bitech registru F je skok závislý.
Při hledání instrukce podmíněného skoku musíme myslet na to, za jakých okolností chceme skok vykonat. K tomu je také dobré si uvědomit:
Rozdíl čísel v tomto případě provedeme nejlépe instrukcí CMP. Pro tvorbu cyklu můžeme použít jeden z registrů, který si pro krokovací proměnnou vyčleníme. Jednoduchý cyklus pak vytvoříme podmíněným skokem:
begin
asm
MOV
CL, 10 {do
registru CL dosaď 10, počet kroků}
@nav: {návěští, tady umístíme opakovanou
činnost}
DEC
CL
{odečti od CL číslo 1}
JNZ
@nav
{jestliže není nula skoč na návěští}
end;
end.
Program opakuje skok dokud není v registru CL nulový výsledek.