<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > ARM寄存器總結

ARM寄存器總結

作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò ) 收藏
ARM有16個(gè)32位的寄存器(r0到r15)。

r15充當程序寄存器PC,r14(link register)存儲子程序的返回地址,r13存儲的是堆棧地址。

本文引用地址:http://dyxdggzs.com/article/201611/318979.htm

ARM有一個(gè)當前程序狀態(tài)寄存器:CPSR。

一些寄存器(r13,r14)在異常發(fā)生時(shí)會(huì )產(chǎn)生新的instances,比如IRQ處理器模式,這時(shí)處理器使用r13_irq和r14_irq

ARM的子程序調用是很快的,因為子程序的返回地址不需要存放在堆棧中。

1、ARM處理器共有37個(gè)寄存器,其中包括:

i. 31個(gè)通用寄存器,包括程序計數器(PC)在內。都是32位寄存器

ii. 6個(gè)狀態(tài)寄存器,都是32位寄存器,但目前只使用了其中12位

2、ARM處理器有7種不同的處理器模式,在每一種處理器模式中有一組相應的寄存器組。任意時(shí)刻(也就是任意的處理器模式下),可見(jiàn)的寄存器包括15個(gè)通用寄存器(R0~R14)、一個(gè)或兩個(gè)狀態(tài)寄存器及程序計數器(PC)。在所有的寄存器中,有些是各模式共用的同一個(gè)物理寄存器,有些是各模式自己擁有的獨立的物理寄存器。

3、通用寄存器可以分為3類(lèi):未備份寄存器(R0~R7)、備份寄存器(R8~R14)和程序計數器PC(R15)。對于每一個(gè)未備份寄存器來(lái)說(shuō),在所有的處理器模式下指的都是同一個(gè)物理寄存器。對應備份寄存器R8~R12來(lái)說(shuō),每個(gè)寄存器對應兩個(gè)不同的物理寄存器,這使得中斷處理非常簡(jiǎn)單。例如,僅僅使用R8~R14寄存器時(shí),FIQ處理程序可以不必執行保存和恢復中斷現場(chǎng)的指令,從而使中斷處理過(guò)程非常迅速。對于備份寄存器R13和R14來(lái)說(shuō),每個(gè)寄存器對應6個(gè)不同的物理寄存器,其中的一個(gè)是用戶(hù)模式和系統模式共用的,另外的5個(gè)對應于其他5種處理器模式。

4、每一種異常模式擁有自己的物理的R13。應用程序初始化該R13,使其指向該異常模式專(zhuān)用的棧地址。當進(jìn)入異常模式時(shí),可以將需要使用的寄存器保存在R13所指的棧中;當退出異常處理程序時(shí),將保存在R13所指的棧中的寄存器值彈出。這樣就使異常處理程序不會(huì )破壞被其中斷程序的運行現場(chǎng)。

5、寄存器R14又被稱(chēng)為連接寄存器(Link Register,LR),在A(yíng)RM體系中具有下面兩種殊的作用:

i.每一種處理器模式自己的物理R14中存放當前子程序的返回地址。當通過(guò)BL或BLX指令調用子程序時(shí),R14被設置成該子程序的返回地址。在子程序中,當把R14的值復制到程序計數器PC中時(shí),子程序即返回。

ii.當異常中斷發(fā)生時(shí),該異常模式特定的物理R14被設置成該異常模式將要返回的地址,對于有些異常模式,R14的值可能與將返回的地址有一個(gè)常數的偏移量。具體的返回方式與子程序返回方式基本相同。



關(guān)鍵詞: ARM寄存器總

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>