Instrukce skoku je instrukce procesoru , která přeruší souvislou sekvenci provádění instrukce a vynutí výběr a provedení následujících instrukcí z libovolně zadané adresy . Používá se k organizaci podmíněných příkazů, smyček, ke komunikaci s podprogramy . Provádění větvených instrukcí v moderních mikroprocesorech je zatíženo ztrátami výkonu v důsledku prostojů potrubí .
Pokud je programový čítač programově dostupný jako cílový registr, jakákoliv instrukce pro úpravu programového čítače bude sloužit jako instrukce skoku.
Organizace cyklu zpoždění v procesoru ARM:
MOV R0 , #0 x10000 zpoždění: SUBS R0 , R0 , #1 BNE zpožděníSkok na vypočítanou adresu v procesoru ARM:
MOV PC , R0Podmíněná větev je příkaz programovatelnému výpočetnímu zařízení ke změně pořadí provádění programu v souladu s výsledkem kontroly určité podmínky.
Podmíněný přechod má nejčastěji dvě fáze: v první fázi se některé hodnoty, které určují podmínku přechodu, vzájemně porovnávají, ve druhé se provádí samotný přechod.
Potřeba správného zpracování podmíněných skoků zanechává vážný otisk v logice moderních zřetězených procesorů . Podmíněné skoky lze provádět dvěma způsoby. Provedené podmíněné skoky mění hodnotu čítače instrukcí procesoru na vypočítanou hodnotu adresy skoku. Nespustitelný - přičte k hodnotě programového čítače číslo rovné délce aktuální instrukce v bajtech, aby se přistoupilo k provedení další instrukce. Nesprávné určení typu podmíněné větve může vést k významným zpožděním v potrubí, a tedy k velké ztrátě výkonu počítače .
program C++ #include <iostream> int main () { int i ; std :: cout << "Zadejte celé číslo" << std :: endl ; std :: cin >> i ; std :: cout << "Zadali jste" ; if ( i >= 0 ) { // Kontrola podmínky // Akce provedené při splnění podmínky std :: cout << "pozitivní" ; } jinak { // Akce v případě nesplnění podmínky std :: cout << "negative" ; } std :: cout << "cislo" << std :: endl ; návrat 0 ; }