久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

arm寄存器

 langhuayipian 2010-10-08
ARM處理器共有37個(gè)寄存器,。其中包括:31個(gè)通用寄存器,包括程序計(jì)數(shù)器(PC)在內(nèi),。這些寄存器都是32位寄存器,。以及6個(gè)32位狀態(tài)寄存器,。但目前只使用了其中12位。ARM處理器共有7種不同的處理器模式,,在每一種處理器模式中有一組相應(yīng)的寄存器組,。任意時(shí)刻(也就是任意的處理器模式下),可見(jiàn)的寄存器包括15個(gè)通用寄存器(R0R14),、一個(gè)或兩個(gè)狀態(tài)寄存器及程序計(jì)數(shù)器(PC),。在所有的寄存器中,有些是各模式共用的同一個(gè)物理寄存器,;有一些寄存器是各模式自己擁有的獨(dú)立的物理寄存器,。表1列出了各處理器模式下可見(jiàn)的寄存器情況。
1 各種處理器模式下的寄存器
用戶模式
系統(tǒng)模式
特權(quán)模式
中止模式
未定義指令模式
外部中斷模式
快速中斷模式
R0
R0
R0
R0
R0
R0
R0
R1
R1
R1         
R1
R1
R1
R1
R2
R2
R2
R2
R2
R2
R2
R3
R3
R3
R3
R3
R3
R3
R4
R4
R4
R4
R4
R4
R4
R5
R5
R5
R5
R5
R5
R5
R6
R6
R6
R6
R6
R6
R6
R8
R8
R8
R8
R8
R8
R8_fiq
R9
R9
R9
R9
R9
R9
R9_fiq
R10
R10
R10
R10
R10
R10
R10_fiq
R11
R11
R11
R11
R11
R11
R11_fiq
R12
R12
R12
R12
R12
R12
R12_fiq
R13
R13
R13_svc
R13_abt
R13_und
R13_inq
R13_fiq
R14
R14
R14_svc
R14_abt
R14_und
R14_inq
R14_fiq
PC
PC
PC
PC
PC
PC
PC
CPSR
CPSR
CPSR
SPSR_svc
CPSR
SPSR_abt
CPSR
SPSR_und
CPSR
SPSR_inq
CPSR
SPSR_fiq

通用寄存器可以分為下面3類:未備份寄存器(The unbanked registers),,包括R0R7,。備份寄存器(The banked registers),包括R8R14,。程序計(jì)數(shù)器PC,,即R15

未備份寄存器

未備份寄存器包括R0R7,。 對(duì)于每一個(gè)未備份寄存器來(lái)說(shuō),,在所有的處理器模式下指的都是同一個(gè)物理寄存器。在異常中斷造成處理器模式切換時(shí),,由于不同的處理器模式使用相同的物理寄存 器,,可能造成寄存器中數(shù)據(jù)被破壞,。未備份寄存器沒(méi)有被系統(tǒng)用于特別的用途,,任何可采用通用寄存器的應(yīng)用場(chǎng)合都可以使用未備份寄存器。

備份寄存器

對(duì)于備份寄存器R8R12來(lái)說(shuō),,每個(gè)寄存器對(duì)應(yīng)兩個(gè)不同的物理寄存器,。例如,當(dāng)使用快速中斷模式下的寄存器時(shí),,寄存器R8和寄存器R9分別記作R8_fiq,、R9_fiq;當(dāng)使用用戶模式下的寄存器時(shí),,寄存器R8和寄存器R9分別記作R8_usr,、R9_usr等。在這兩種情況下使用的是不同的物理寄存器,。系統(tǒng)沒(méi)有將這幾個(gè)寄存器用于任何的特殊用途,,但是當(dāng)中斷處理非常簡(jiǎn)單,僅僅使用R8R14寄存器時(shí),,FIQ處理程序可以不必執(zhí)行保存和恢復(fù)中斷現(xiàn)場(chǎng)的指令,,從而可以使中斷處理過(guò)程非常迅速,。對(duì)于備份寄存器R13R14來(lái)說(shuō),每個(gè)寄存器對(duì)應(yīng)6個(gè)不同的物理寄存器,,其中的一個(gè)是用戶模式和系統(tǒng)模式共用的,;另外的5個(gè)對(duì)應(yīng)于其他5種處理器模式。采用記號(hào)R13_<mode>來(lái)區(qū)分各個(gè)物理寄存器:
其中,,<mode>可以是下面幾種模式之一:usr,、svcabt,、und,、irqfiq
寄存器R13ARM中常用作棧指針,。在ARM指令集中,,這只是一種習(xí)慣的用法,并沒(méi)有任何指令強(qiáng)制性的使用R13作為棧指針,,用戶也可以使用其他的寄存器作為棧指
針,;而在Thumb指令集中,有一些指令強(qiáng)制性地使用R13作為棧指針,。
每一種異常模式擁有自己的物理的R13,。應(yīng)用程序初始化該R13,使其指向該異常模式專用的棧地址,。當(dāng)進(jìn)入異常模式時(shí),,可以將需要使用的寄存器保存在R13所指的棧中;當(dāng)退出異常處理程序時(shí),,將保存在R13所指的棧中的寄存器值彈出,。這樣就使異常處理程序不會(huì)破壞被其中斷程序的運(yùn)行現(xiàn)場(chǎng)。
寄存器R14又被稱為連接寄存器(Link Register,,LR),,在ARM體系中具有下面兩種特殊的作用:每一種處理器模式自己的物理R14中存放在當(dāng)前子程序的返回地址。當(dāng)通過(guò)BLBLX指令調(diào)用子程序時(shí),,R14被設(shè)置成該子程序的返回地址,。在子程序中,當(dāng)把R14的值復(fù)制到程序計(jì)數(shù)器PC中時(shí),,子程序即返回,。
當(dāng)異常中斷發(fā)生時(shí),該異常模式特定的物理R14被設(shè)置成該異常模式將要返回的地址,,對(duì)于有些異常模式,,R14的值可能與將返回的地址有一個(gè)常數(shù)的偏移量。具體的返回方式與上面的子程序返回方式基本相同,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多