什麼是返回位址

函式處理結束時要返回的位址。在RISC-V中由jal指令將下一個指令的位址放入ra(x1),在x86中由call指令推入堆疊。

日文名稱: リターンアドレス

「返回位址」出現在1領域的2道練習題中(CPU與架構等)。

這個名詞所屬的領域: 指令集與組合語言

練習返回位址的題目

在程式中呼叫副程式(函式)時,一般用來暫時保存返回位址等的區域是下列何者?

  1. A堆疊(stack)
  2. B快取的標籤(tag)
  3. CROM 的固定區域
查看答案與解析

正確答案:A. 堆疊(stack)

呼叫副程式時,返回位址、應保存的暫存器值、區域變數等會被推入堆疊。堆疊是後放入的先取出(LIFO)的結構,即使呼叫形成巢狀或遞迴,也能依正確的順序返回。頂端位置由堆疊指標指示。遞迴過深而用盡區域時會發生堆疊溢位,也有藉由陣列越界改寫返回位址的攻擊。

解析中的「返回位址」

出現「返回位址」的題目(2題)

  1. 在程式中呼叫副程式(函式)時,一般用來暫時保存返回位址等的區域是下列何者?
  2. CPU 的程式計數器(PC)所保存的是下列何者?

相關名詞

堆疊指標 中斷 分支延遲槽 立即值 呼叫者保存暫存器 呼叫慣例 定址模式 框指標 堆疊框 條件碼

前往名詞解釋列表