Умовний перехід

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Команда переходу - команда процесора, яка порушує безперервну послідовність виконання команд, змушуючи вибирати і виконувати наступні команди з довільно заданої адреси. Використовується в умовних операторах, циклах, для зв'язку з підпрограмами. Виконання команди переходу в сучасних мікропроцесорах загрожує втратами продуктивності через простої конвеєра.

Якщо лічильник команд програмно доступний як регістр-приймача результатів операцій, будь-яка команда модифікації лічильника команд буде служити командою переходу.

Організація циклу затримки в процесорі ARM:

        MOV R0, #0x10000
 delay:
        SUBS R0, R0, #1
        BNE delay

Перехід за обчислювальною адресою в процесорі ARM:

        MOV PC, R0

Умовний перехід[ред.ред. код]

Умовний перехід — команда програмованому обчислювальному пристрою на зміну порядку виконання програми відповідно до результату перевірки деякої умови.

Найбільш часто умовний перехід має дві стадії: на першій відбувається порівняння між собою деяких величин, що визначають умову переходу, а на другій виконується сам перехід.

Необхідність коректної обробки умовних переходів накладає серйозний відбиток на логіку роботи сучасних конвеєрних процесорів. Умовні переходи можуть виконуватися двома способами. Виконувані переходи часто змінюють значення лічильника команд процесора на обчислене значення адреси переходу. Невиконувані - додають до значення лічильника команд число, рівне довжині поточної команди в байтах, для переходу до виконання наступної команди. Неправильне визначення типу умовного переходу може призводити до виникнення суттєвих затримок в роботі конвеєра і відповідно до великої втрати продуктивності комп'ютера.

Дивіться також[ред.ред. код]