Команды ветвления
Среди команд ветвления преобладают условные переходы. Условный переходпроисходит только при соблюдении определенного условия, в противном случае выполняется следующая по порядку команда программы.
Переход может выполняться как в сторону верхних (меньших) адресов, т.е. к началу программы («переход назад»), так и в сторону нижних (больших) адресов, т.е. к концу программы («переход вперед»).
Существует несколько подходов к формированию условий и их анализу командами условного перехода. Первый, по результату только что выполненной команды формируется одноразрядный или многоразрядный признак. Этот признак можно рассматривать как состояние короткого регистра, "видимого" со стороны программы. Например, при выполнении арифметических команд устанавливается двухразрядный признак, имеющий одно из четырех значений в зависимости от величины результата:
результат равен 0;
результат положительный;
результат отрицательный;
при выполнении операции возникло переполнение.
В наборе команд такого процессора может существовать четыре команды условного перехода:
BPR X. Если результат положительный, то выполняется переход на команду, размещенную в ячейке X.
BPN X. Если результат отрицательный, то выполняется переход на команду, размещенную в ячейке X.
BPZ X. Если результат равен нулю, то выполняется переход на команду, размещенную в ячейке X.
ВРО X. Если возникло переполнение, то выполняется переход на команду, размещенную в ячейке X.
При выполнении всех этих команд анализируется код условия, соответствующий результату предыдущей команды программы. До тех пор пока не выработано истинное значение условия, в общем случае, программа не может быть продолжена. Это может быть причиной простоев конвейера подготовки команд, а, следовательно, и всего процессора.
В некоторых архитектурах существуют специальные регистры для хранения вырабатываемых командами обработки условий. В этом варианте решение о переходе принимается в зависимости от состояния этого специального регистра в нужном месте выполнения программы, т.е., выработка и проверка условия перехода могут быть значительно разнесены во времени, что позволяет избежать не нужных простоев процессора.
Дата добавления: 2015-09-28; просмотров: 905;