在ARM處理器中一條指令的執行分為取指、解碼、執行三個階段,由於指令流水線的存在造成當前執行的指令的地址是PC-8(ARM指令集),那么當前執行指令的下一條指令的地址應該是PC-4,所以在異常產生時處理器會將PC-4的值保存到對應模式的LR暫存器中,但是該返回地址是否能夠被使用還要看具體產生的異常的種類而定。
基本介紹
- 中文名:異常返回地址
- 外文名:Exception return address
異常的分類
異常類型 | 具體含義 |
復位(Reset) | 處理器的復位電平有效時,產生復位異常 |
未定義指令(Undefined) | 當ARM處理器或協處器遇到不能處理的指令時,產生未定義的指令異常,可使用該異常進行軟體仿真 |
軟體中斷(SWI) | 該異常由執行SWⅥ指令產生,可用於用戶模式下的程式調用特權操作指令。可使用該異常機制實現系統功能調用 |
指令預取中止(Prefetch Abort) | 處理器試圖去執行一條被標記為預取無效的指令時,將產生指令預取中止異常 |
數據中止(Data Abort) | 它由 Load/Store產生,若處理器數據訪問指令的地址不存在,或者是地址不允許當前指令訪問時,產生數據中止異常 |
外部中斷請求(IRQ) | 當處理器的外部部中斷請求引有效,且CPSR中的I位為0時,產生IRQ異常。系統的外設可通過該異常請求中斷服務 |
快速中斷請求(FIQ) | 當處理器的快遠中斷請求引有效,且CPSR中的F位為0時,產生FIQ異常 |