közvetett ág _ _ _ _ _ _ _ gépi kód . Ahelyett, hogy megadná a következő végrehajtandó utasítás címét , ahogy az a direkt ugrásoknál megszokott , itt az argumentum a cím helyét adja meg.
Ebben az esetben egy példa lehet egy olyan utasítás, mint az „indirekt ugrás az r1 regiszterben ”, ami azt jelenti, hogy a következő végrehajtandó utasítás az r1 regiszterben tárolt címen található. Az ugrás címe az utasítás végrehajtásáig nem ismert. A közvetett ugrások a memória helyétől is függhetnek .
A közvetett ugrás nagyon hasznos lehet feltételes elágazáshoz , különösen többutas ugrások esetén. Például a programba bevitt adatok alapján az érték megkereshető a kódmutatók ugrótáblájában [ , hogy az adatok értékétől függően különböző opciókat dolgozhasson fel .
A tábla címéhez adatérték adható, az eredmény pedig egy regiszterben tárolható. Ennek a regiszternek az értéke alapján közvetett ugrás végezhető, hatékonyan programvezérlést rendelve a bevitt adatoknak megfelelő kódhoz.
Hasonlóképpen a szubrutinhívási utasítások is lehetnek közvetettek, a hívott szubrutin címét egy regiszterben vagy memóriahelyen kell megadni.
SPARC : | jmpl %o7 |
MIPS : | jr $ra |
x86 : | jmp *%eax |
ARM : | mov pc, r2 |
Itán : | br.ret.sptk.few rp |
6502 : | jmp ($0DEA) |
65C816 : | jsr ($0DEA,X) |
Z80 : | jp (hl) |
Intel 8080 : | pchl |