間接分支

指定在直接分支,執行下一條指令的地址,而不是參數指定的地址位於。 一個間接分支可以是有益的,使一個條件分支,尤其是多路分支。 以類似的方式,子程式調用指令可以是間接的,同在一個位置暫存器或存儲器中指定要調用的子程式的地址。

一個間接分支(又稱跳計算,間接的跳躍和暫存器間接跳轉)是一種程式控制目前在一些機器語言指令集的指令。指定在直接分支,執行下一條指令的地址,而不是參數指定的地址位於。因此,一個例子是“在間接R1暫存器跳躍”,這將意味著,今後將要執行的指令的地址,其值在暫存器R1。地址將躍升至未知地址,直到指令執行。間接分支也可以依賴於記憶體位置的值。
一個間接分支可以是有益的,使一個條件分支,尤其是多路分支。例如,根據程式輸入一個值可以查出在跳表指針的代碼,處理數據值所隱含的各類案件。結果存儲在暫存器中的數據值可以被添加到表的地址。間接跳然後可以進行該暫存器的值的基礎上,有效的調度方案控制輸入適當的代碼。
以類似的方式,子程式調用指令可以是間接的,同在一個位置暫存器或存儲器中指定要調用的子程式的地址。
但是,間接分支和數據局部性對於運行時的性能是致命的。

熱門詞條

聯絡我們