Arm architecture 第一章

1.arm有31個32位寄存器,其他的用於加速執行。

2. r0~r13是完全通用的, 而r14=LR, r15=PC.
   1) LR在BL指令後,做爲BL指令的下一條指令地址, 即函數返回地址(這和Powerpc是完全相同的),其他時候LR(R14)可作爲通用寄存器使用。
          2) PC(R15), 程序計數器,指向下一條指令地址, 由於arm指令都是4字節的,所以PC末尾兩位總爲0。(這和Powerpc不同, Powerpc是沒有顯式的PC的)。
   3) 軟件一般使用r13作爲棧寄存器, 但這不是必須的。(和Powerpc一致,棧寄存器可以自選, 而x86就不同,棧寄存器永遠是SP)

3. arm有五種異常,每種對應一個特權處理模式。
    快速中斷(fast interrupt), 普通中斷(normal interrupt), 內存故障(memory aborts), 非法指令(attempted to execution of undefined instruction). 每種異常, r13,r14都有一個影像寄存器, 在快速中斷時,r8~r12也都各有一個影子寄存器。 中斷時, r14保存返回地址, 而r13一般用來保存私有的棧指針。

    arm還有一個模式, 系統模式(system  mode), 用來訪問特權資源, 一般內核代碼運行在此級別。

4. CPSR包含除通用寄存器外,所有的處理器狀態。 每個異常模式還包含一個SPSR,包含異常發生前的CPSR值。

5. arm指令集分成六類:
  1) 分支指令(Branch instructions)
       2) 數據處理指令 (Data-processing instructions)
       3) 狀態寄存器傳送指令 (Status register tansfer instructions)
       4) 加載和存儲指令 (Load and store instructions)
       5)協處理器指令 (Coprocessor instructions)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章