Косвенный переход

Косвенный переход

Косвенный переход (от англ. indirect branch, также используются термины computed jump (вычисляемый переход), indirect jump (непрямой переход) и register-indirect jump (регистро-косвенный переход)) - тип программного контроля выполнения инструкций, представленный в виде некоторого набора инструкций машинного кода. Вместо указания адреса следующей инструкции для выполнения, как это принято для прямых переходов, здесь аргумент указывает местонахождение адреса. В данном случае в качестве примера можно привести команду вида 'косвенный переход по регистру r1', что означает, что следующая инструкция для выполнения находится по адресу, хранящемуся в регистре r1. Адрес перехода неизвестен пока инструкция не будет выполнена. Косвенные переходы так же могут зависеть от местонахождения в памяти.

Косвенный переход может весьма пригодиться для выполнения условного перехода, особенно это касается многовариантных переходов. К примеру, исходя из введенных в программу данных, значение может искаться в таблице переходов указателей кода для обработки различных вариантов в зависимости от значения данных.

Значение данных может добавляться к адресу таблицы, а результат сохраняться в регистре. Косвенный переход может быть выполнен исходя из значения этого регистра, эффективно соотнося программный контроль с кодом, соответствующим введенным данным.

Схожим образом инструкции вызова подпрограммы могут быть косвенными с адресом вызываемой подпрограммы, указанным в регистре или ячейке памяти.

Примеры:
Z80: jp (hl)
SPARC: jmpl %o7
MIPS: jmpl %ra
X86: jmp %eax
ARM: mov pc, r2
IA64: br.ret.sptk.few rp
6502: jmp ($0DEA)



Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "Косвенный переход" в других словарях:

  • Переход — Переход  процесс перемещения из одного положения либо состояния к другому; а также место, пригодное или предназначенное для такого перемещения: Содержание 1 В строительстве 2 Перемещение 3 В физике …   Википедия

  • Portable Executable — Переносимый исполняемый файл Расширение .exe, .dll, .ocx, .sys, .scr, .drv, .cpl Сигнатура MZ (опционально), PE Разработан Microsoft Тип формата двоичный, исполняемый, объектный …   Википедия

  • MSP430 — MSP430. MSP430  семейство 16 разрядных микроконтроллеров фирмы «Texas Instruments» …   Википедия

  • Валютная система — (Monetary system) Валютная система это правовая форма организации валютных отношений Валютная система: Ямайская, Европейская, Бреттон Вудская, Парижская, Генуэзская, Российская Содержание >>>>>>>>>> …   Энциклопедия инвестора

  • Денежно-кредитная политика — (Monetary policy) Понятие денежно кредитной политики, цели денежно кредитной политики Информация о понятии денежно кредитной политики, цели денежно кредитной политики Содержание >>>>>>>>>> …   Энциклопедия инвестора

  • ДЫХАНИЕ — ДЫХАНИЕ. Содержание: Сравнительная физиология Д.......... 534 Дыхательный аппарат............. 535 Механизм вентиляции легких......... 537 Регистрация дыхательных движении..... 5 S8 Частота Д., сила дыхат. мышц и глубина Д . 539 Классификация и… …   Большая медицинская энциклопедия

  • Еггогология — Электроника МК 52 с сообщением «ERROR» (из за специфического отображения буквы r зачастую читалось как «ЕГГОГ») Еггогология& …   Википедия

  • ЕГГОГ — Электроника МК 52 с сообщением ERROR (из за специфического отображения буквы r зачастую читалось как «ЕГГОГ» Еггогология изучение скрытых возможностей микрокалькуляторов. Содержание 1 Происхождение …   Википедия

  • Еггог — Электроника МК 52 с сообщением ERROR (из за специфического отображения буквы r зачастую читалось как «ЕГГОГ» Еггогология изучение скрытых возможностей микрокалькуляторов. Содержание 1 Происхождение …   Википедия

  • Обменное взаимодействие — Обменное взаимодействие  взаимодействие тождественных частиц в квантовой механике, приводящее к зависимости значения энергии системы частиц от её полного спина. Представляет собой чисто квантовый эффект, исчезающий при предельном переходе к… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»