【彙編指令】ARM指令集之寄存器及32位概述

1)

ARM處理器有37+3個32位寄存器:其中有32個通用寄存器,只有一個PC指針寄存器,一般習慣用R15來指向正在取指的指令,而不是正在執行的指令。(這裏涉及到arm處理器的流水線操作流程,下面在介紹),七個狀態寄存器:但是隻有一個CPSR寄存器(用來表示當前程序狀態寄存器),6個SPSR寄存器(用來保存備份當前程序狀態的異常數據)。

處理器在工作時有8種不同的工作模式,對應的每一種處理器模式都有一組相應的寄存器組:

這裏USER/SYS工作模式共用一個寄存器組,但是USER模式沒有特權,而且沒有對應的SPSR寄存器


當前處理的模式決定了哪組寄存器可以以操作,任何模式都可以存取的寄存器。

(1)相應的R0~R12

(2)相應的R13(SP,棧頂指向)和R14(LR,鏈接地址寄存器,用來記錄程序下次將要執行指令的地址)以及PC指針寄存器(一般習慣用R15來指向正在取指的指令,而不是正在執行的指令)

(3)相應的CPSR寄存器(能夠表示當前程序的狀態反應處理器當前的工作模式從而設置它的某些位來改變處理器的模式和異常模式的設置以及標準位的反映和設置)

(4)在特權模式下還可以存取相應的異常模式時CPSR寄存器


arm處理器 的 8種工作模式:



ARM處理器按照一系列的步驟來執行每一條指令:簡單的一般使用3級流水線

(1)取指令:從寄存器加載一條指令

(2)譯碼:識別被執行的指令,併爲下一個週期準備數據電路的控制信號,在這一級別,指令佔有譯碼邏輯,不佔據數據通路

(3)執行:處理指令並將結果寫回寄存器




CPSR寄存器位的分配:


其中N(負數標誌)Z(零標誌)C(進位標誌)V(溢出標誌)/ /    其中0~4位標誌模式爲I(IRQ使能位)F(FIQ使能位)T(狀態位)

N:當N = 1 時表示負數,N =  0表示整數或者零

控制位:

1)中斷禁止位:當I或F  =  1  時  ,表示中斷進制 

2)狀態控制位:當T = 0時表示處於ARM狀態

3)模式控制位:

MODE(以下爲二進制)

10000

用戶模式

PC,CPSR,R0~R14

10001

FIQ

PC,CPSR,SPSR_fiq,R14_fiq~R8_fiq,R7~R0

10010

IRQ

PC,CPSR,SPSR_irq,R14_irq~R13_irq,R12~R0

10011

管理模式(svc)

PC,CPSR,SPSR_svc,R14_svc~R13_svc,R12~R0

10111

終止模式

PC,CPSR,SPSR_abt,R14_abt~R13_abt,R12~R0

11011

未定義

PC,CPSR,SPSR_und,R14_und~R13_und,R2~R0

11111

系統模式(sys)

PC,CPSR,R14 ~R0




發佈了65 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章