CPU與架構
在程式中呼叫副程式(函式)時,一般用來暫時保存返回位址等的區域是下列何者?
- A堆疊(stack)
- B快取的標籤(tag)
- CROM 的固定區域
查看答案與解析
正確答案:A. 堆疊(stack)
呼叫副程式時,返回位址、應保存的暫存器值、區域變數等會被推入堆疊。堆疊是後放入的先取出(LIFO)的結構,即使呼叫形成巢狀或遞迴,也能依正確的順序返回。頂端位置由堆疊指標指示。遞迴過深而用盡區域時會發生堆疊溢位,也有藉由陣列越界改寫返回位址的攻擊。
- A. 正確。返回位址等會保存在堆疊中。
- B. 快取的標籤是表示快取資料屬於哪個位址的資訊。
- C. ROM 無法改寫,因此不能用於執行時的暫時保存。