Cтраница 4
Команды переходов нарушают естественный ход ( в порядке возрастания номеров адресов команд) выполнения программы и переводят его на выполнение команды, адрес которой ( адрес перекода) указывается вслед за командой перехода. [46]
Команды перехода ПЕМ, ПЕН ( 49 - 50, табл. 4) предназначены для реализации ветвления программы в зависимости от анализа содержимого АР. Команда ПЕН анализирует содержимое АР на равенство 0, команда ПЕМ - на наличие в АР отрицательного числа. [47]
Команда перехода типа RR: если вторым специфицированным регистром является RO, переход не принимается. [48]
Все команды перехода после цикла, так же как операции АИ и КИ, не изменяют значения признака со, выработанного предыдущими командами. [49]
Все команды перехода можно условно разделить на четыре группы. При исполнении этой команды независимо от состояния разрядов кодов условий всегда осуществляется передача управления. [50]
Все команды перехода транслируются в одно машинное слово. Старший байт содержит код операции, а содержимое младшего байта определяет адрес перехода. Последний задается как смещение относительно текущего значения счетчика команд PC. Смещение от команды до места перехода составляет 2010 - 20026 байтов ( все числа восьмеричные. Ассемблер закодирует смещение, выраженное в словах, в младший байт команды. Конечно, во время исполнения команды этот факт учитывается. Код операции команды BNE содержит 1 в девятом разряде и нуль в остальных разрядах старшего байта. [51]
Из команды перехода можно извлечь п 2 младших бита и осуществить сдвиг вправо на два бита. Это n - битное число можно использовать в качестве индекса в таблице, где проверяется, совпадает ли адрес, сохраненный там, с адресом перехода. Если адреса совпали, бит прогнозирования используется для предсказания перехода. Если тег неправильный или элемент недействителен, значит, имеет место несовпадение. [52]
Существует команда перехода по счетчику ВСТ, которая одна выполняет все функции последних четырех команд в первом варианте программы. [53]
Если команда перехода типа RS, она должна быть BJCH или BXLE. Передать управление программе, которая обрабатывает эти команды. [54]
Оптимизация команд перехода заключается в замене команд перехода формата RR на команды формата RX. Команды перехода формата RR требуют сначала загрузки адреса перехода из памяти в регистр, а затем передачи управления по этому адресу. В командах перехода формата RX адрес перехода формируется непосредственно в команде сложением указанного в ней смещения с базовым адресом, загруженным в регистр один раз для целого участка программы. [55]
Форматы команд переходов представлены на рис. 12 5, а-в. [56]