Skok (informatika): Porovnání verzí
Smazaný obsah Přidaný obsah
m Opravy a doplnění linků. |
dopřesnění + odkazy |
||
Řádek 1:
'''Skok''' (angl. jump, branch) je změna v sekvenčním vykonávání [[počítačový program|počítačového programu]]. Nižší [[programovací jazyk]]y a [[strojový kód]] mají přímo příkaz skoku, vyšší programovací jazyky používají této konstrukce jen zřídka, aby bylo zachováno [[strukturované programování]], používají většinou [[cyklus (informatika)|cykly]] a volání [[funkce (programování)|funkcí]], procedur a metod.
Nejobecnější skok ve vyšších programovacích jazycích se obvykle označuje ''goto''. Blízko mají ke skoku i příkazy ''break'' a ''continue'' (viz [[
Principielně existují dva druhy skoků:
Řádek 9:
Podmíněný skok lze využít k:
# větvení programu – výběr z alternativ - implementace příkazu ''if'' nebo ''switch''/''case''.
# vytvoření cyklu (smyčky) - skočí se podle splnění podmínky cyklu - implementace příkazů ''
== Autorství podmíněného skoku ==
Řádek 25:
** '''dlouhý relativní skok''' (long jump) - do registru se přičítá rozsahem stejná hodnota, jako je rozsah čítače instrukcí
U moderních procesorů je podmíněný skok velice "drahá" operace z hlediska času zpracování - procesor provádí instrukce na přeskáčku a více současně, takže by potřeboval vědět která instrukce bude za skokem následovat dříve než ví, jestli bude podmínka splněna. Některé [[RISC]]ové procesory (např. [[SPARC]]) mají dokonce pravidla typu "ještě dvě instrukce za skokem se provedou bez ohledu na jeho výsledek", obvyklejším řešením je hádat (s využití informací o předchozím průchodu) která varianta nastane a v případě omylu zahodit rozpracované instrukce ze špatné větve a začít znova.
===Specifika architektury x86===
Řádek 33:
* '''dlouhé skoky''' (long jump, far jump) - Cílová adresa leží v jiném segmentu paměti, obvykle nepodmíněný skok na podprogram.
Jako zvláštní případ skoku (či spíše volání podprogramu) lze chápat i
==Podívejte se také na==
|