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