Команди переходу: відмінності між версіями

[перевірена версія][перевірена версія]
Вилучено вміст Додано вміст
Немає опису редагування
Рядок 1:
'''Кома́нди перехо́ду''', або '''Кома́нди переда́чі керування''' (анг. {{lang-en|branch instructions}}) — різновид [[команди передачі управління|команд передачі управління]] в [[архітектура системи команд|архітектурах системи команд]] ЕОМ, які змінюють послідовний порядок виконання програми (тобто перезавантажують [[лічильник команд]] адресою, записаною в самій команді переходу, а не збільшуючи його значення на довжину поточної команди).
 
Команди переходу можуть бути '''умовними''' ({{lang-en|conditional branch}}) та '''безумовними''' ({{lang-en|unconditional branch}}).
 
Залежно від реалізації [[Мова програмування|мови програмування]] ([[Мова програмування високого рівня|високого]] чи [[Мова програмування низького рівня|низького]] рівня), команди передачі управління можуть мати свої особливості. Так, у мовах низького рівня, типу [[асемблер]]а, реалізація команди умовного переходу може мати вигляд '''jz''' (), '''jnz''' () — перехід за нульовою (ненульовою) умовою.
Рядок 35:
 
== Команди виклику підпрограм і повернення з підпрограм ==
 
* '''команди виклику підпрограм і повернення з підпрограм''' — передають керування [[підпрограма|підпрограмі]], зберігаючи адресу повернення й, можливо, [[контекст процесора]] (інформації про стан системи), а також організують коректне відновлення після виходу з підпрограми.
* '''команди виклику оброблювачів переривань''' — передають керування оброблювачу [[переривання|переривань]]. Іноді ці команди розглядаються як особливий випадок команд виклику підпрограм.
Рядок 41 ⟶ 42:
 
В [[конвеєр команд|конвеєрі]] при виконанні команди переходу (насамперед умовного) факт того, чи відбудеться перехід, чи ні, стає відомим на пізніх етапах конвеєра. За цей час в конвеєр на ранні етапи завантажуються наступні за цією команди. У випадку, якщо перехід відбувається, то зрозуміло, що потрібно повністю замінити послідовність інструкцій, які слідують за командою переходу. Ці так звані [[конфлікти управління]] призводять до істотного падіння швидкодії процесора. В сучасних процесорах для зниження негативу від цих конфліктів використовують різні методики [[передбачення переходів]] та [[спекулятивне виконання]].
 
 
== Див. також ==
Рядок 52:
* [[Умовний перехід]]
 
 
{{Compu-prog-stub}}
{{без джерел|дата=березень 2016}}
{{ВП-портали|Програмування|}}
[[Категорія:Програмування]]
[[Категорія:Архітектура комп'ютера]]