Interested Article - Команда перехода

Кома́нда перехо́да — команда процессора , которая нарушает непрерывную последовательность исполнения команд, вынуждая выбирать и исполнять последующие команды с произвольно заданного адреса . Используется для организации условных операторов, циклов, для связи с подпрограммами . Исполнение команды перехода в современных микропроцессорах чревато потерями производительности из-за простоев конвейера .

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

Организация цикла задержки в процессоре ARM:

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

Переход по вычисляемому адресу в процессоре ARM:

        MOV PC, R0

Условный переход

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

Наиболее часто условный переход имеет две стадии: на первой происходит сравнение между собой некоторых величин, определяющих условие перехода, на второй выполняется сам переход.

Необходимость корректной обработки условных переходов накладывает серьёзный отпечаток на логику работы современных конвейерных процессоров . Условные переходы могут выполняться двумя способами. Выполняемые условные переходы меняют значение счётчика команд процессора на вычисленное значение адреса перехода. Невыполняемые — прибавляют к значению счётчика команд число, равное длине текущей команды в байтах, для перехода к выполнению следующей команды. Неправильное определение типа условного перехода может приводить к возникновению существенных задержек в работе конвейера и, соответственно, к большой потере производительности компьютера .

См. также

Источник —

Same as Команда перехода