<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è) > 嵌入式系統 > 設計應用 > GNU ARM匯編--(三)ARM處理器的基本原則

GNU ARM匯編--(三)ARM處理器的基本原則

作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò ) 收藏
這一篇的知識來(lái)源全部來(lái)自《ARM System Developers Guide》

從編程人員的視角來(lái)看,arm核是由數據總線(xiàn)連接的功能單元組成,如下圖所示:

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

數據通過(guò)數據總線(xiàn)流向處理器核心,這里的數據可以是將要執行的指令,也可以是數據項.上面的圖是Von Neumann體系的arm核,數據項和指令共用同一總線(xiàn).而h哈佛結構體系的arm核就會(huì )用兩個(gè)不同的總線(xiàn).

就像所有的RISC處理器,arm采用load-store體系結構.也就是說(shuō)它含有兩條不同的指令類(lèi)型來(lái)出入處理器.loar指令將數據從內存拷貝到寄存器,store指令是將數據從寄存器拷貝到內存.沒(méi)有直接操作內存中數據的數據處理指令.數據的處理離不開(kāi)寄存器.

ARM指令一般有兩個(gè)源寄存器,Rn和Rm,和一個(gè)目的寄存器,Rd.ARM的一個(gè)重要特性是Rm可以在送入ALU之前被桶型移位器做預處理,這樣就會(huì )有很多形式的表達式和尋址方式.

下面介紹ARM處理器的幾個(gè)關(guān)鍵分量:寄存器,當前程序狀態(tài)寄存器和流水線(xiàn)

寄存器:

通用目的寄存器可以保存數據或者地址.由字母r和編號數字來(lái)表示.所有的寄存器都是32bit大小.

一共有18個(gè)活動(dòng)的寄存器:16個(gè)數據寄存器和兩個(gè)程序狀態(tài)寄存器.數據寄存器由r0--r15表示.

ARM處理器有3個(gè)寄存器分配為特殊的功能:r13,r14,r15

r13通常用作棧指針(sp),存儲當前處理器工作模式下的棧頂;

r14被稱(chēng)作鏈接寄存器(lr),當發(fā)生調用時(shí)存放調用子程序的返回地址;

r15被稱(chēng)作程序計數器(pc),保存被處理器預取的下一條指令的地址.

除了這16個(gè)數據寄存器,還有來(lái)年各個(gè)程序狀態(tài)寄存器:cpsr和spsr.處理器的當前工作模式?jīng)Q定了哪些寄存器是可見(jiàn)的.

當前程序狀態(tài)寄存器:

ARM核使用cpsr來(lái)顯示和控制內部的操作.通用程序狀態(tài)寄存器的內部如下:

cpsr分為四個(gè)域,每個(gè)域有8位的寬度:flags,status,extension和control.control域包含處理器模式和狀態(tài)以及中斷屏蔽位.flags域包含condition flags.

處理器模式:

處理器模式?jīng)Q定了當前哪些寄存器是可用的以及cpsr本身的訪(fǎng)問(wèn)權限.處理器模式分為特權模式和非特權模式:特權模式對cpsr有完全的讀寫(xiě)控制.而非特權模式

只能讀cpsr的control域但是仍可以讀寫(xiě)condition flags.

一共有7中處理器模式:六種特權模式(abort,fiq,irq,svc,system和undefined)和一種非特權模式(user).

當試圖訪(fǎng)問(wèn)內存失敗時(shí)處理器會(huì )進(jìn)入abort模式,fiq和irq對應ARM處理器的兩種中斷級別.svc是系統reset后進(jìn)入的模式,也是os kernel工作的模式.

system模式是user模式的特殊版本,它有對cpsr的讀寫(xiě)控制.undefined模式在處理器遇到未定以的指令或者不支持的操作時(shí)使用.

user模式在應用程序下使用.

Banked registers:


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: ARM匯編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>