《基于ARM9的嵌入式Linux系統(tǒng)開發(fā)原理與實踐》課件第5章_第1頁
《基于ARM9的嵌入式Linux系統(tǒng)開發(fā)原理與實踐》課件第5章_第2頁
《基于ARM9的嵌入式Linux系統(tǒng)開發(fā)原理與實踐》課件第5章_第3頁
《基于ARM9的嵌入式Linux系統(tǒng)開發(fā)原理與實踐》課件第5章_第4頁
《基于ARM9的嵌入式Linux系統(tǒng)開發(fā)原理與實踐》課件第5章_第5頁
已閱讀5頁,還剩88頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第5章ARM處理器5.1ARM處理器概述5.2ARM微處理器結構5.3ARM編程模型5.4ARM指令集5.5ARM匯編程序設計本章小結

5.1ARM處理器概述

5.1.1ARM

1991年ARM(Advanced

RISC

Machines)公司成立于英國劍橋,主要出售芯片設計技術的授權。目前,采用ARM技術知識產權(IP)核的微處理器,即通常所說的ARM微處理器,已遍及工業(yè)控制、消費類電子產品、通信系統(tǒng)、網絡系統(tǒng)、無線系統(tǒng)等各類產品市場。圖5-1ARM的業(yè)務模型5.1.2ARM微處理器的應用領域及特點

1.?ARM微處理器的應用領域

(1)工業(yè)控制領域。

(2)無線通信領域。

(3)網絡應用。

(4)消費類電子產品。

(5)成像和安全產品。

2.?ARM微處理器的特點

采用RISC架構的ARM微處理器一般具有如下特點:

①體積小、低功耗、低成本、高性能;

②支持Thumb(16位)/ARM(32位)雙指令集,能很好地兼容8位/16位器件;

③大量使用寄存器,指令執(zhí)行速度更快;

④大多數數據操作都在寄存器中完成;

⑤尋址方式靈活簡單,執(zhí)行效率高;

⑥指令長度固定。5.1.3ARM微處理器版本及系列

1.?ARM微處理器版本

1)版本1(過時)

2)版本2(過時)

3)版本3

4)版本4

5)版本5

6)版本6

2.?ARM微處理器系列

1)?ARM7系列微處理器

①具有嵌入式ICE-RT邏輯,調試開發(fā)方便;

②極低的功耗,適合對功耗要求較高的應用,如便攜式產品;

③能夠提供0.9MIPS/MHz的三級流水線結構;

④代碼密度高并兼容16位的Thumb指令集;

⑤對操作系統(tǒng)的支持廣泛,包括Windows

CE、Linux、Palm

OS等。

2)?ARM9系列微處理器

①?5級整數流水線,指令執(zhí)行效率更高;

②提供1.1MIPS/MHz的哈佛結構;

③支持32位ARM指令集和16位Thumb指令集;

④支持32位的高速AMBA總線接口;

⑤全性能的MMU,支持Windows

CE、Linux、Palm

OS等多種主流嵌入式操作系統(tǒng);

⑥?MPU支持實時操作系統(tǒng);

⑦支持數據Cache和指令Cache,具有更高的指令和數據處理能力。

3)?ARM9E系列微處理器

①支持DSP指令集,適合于需要高速數字信號處理的場合;

②5級整數流水線,指令執(zhí)行效率更高;

③支持32位ARM指令集和16位Thumb指令集;

④支持32位的高速AMBA總線接口;

⑤支持VFP9浮點處理協(xié)處理器;

⑥全性能的MMU,支持Windows

CE、Linux、Palm

OS等多種主流嵌入式操作系統(tǒng);

⑦MPU支持實時操作系統(tǒng);

⑧支持數據Cache和指令Cache,具有更高的指令和數據處理能力;

⑨主頻最高可達300MIPS。

4)?ARM10E系列微處理器

①支持DSP指令集,適合于需要高速數字信號處理的場合;

②6級整數流水線,指令執(zhí)行效率更高;

③支持32位ARM指令集和16位Thumb指令集;

④支持32位的高速AMBA總線接口;

⑤支持VFP10浮點處理協(xié)處理器;

⑥全性能的MMU,支持Windows

CE、Linux、Palm

OS等多種主流嵌入式操作系統(tǒng);

⑦支持數據Cache和指令Cache,具有更高的指令和數據處理能力;

⑧主頻最高可達400MIPS;

⑨內嵌并行讀/寫操作部件。

5)?SecurCore系列微處理器

其系統(tǒng)安全方面具有如下的特點:

①帶有靈活的保護單元,以確保操作系統(tǒng)和應用數據的安全;

②采用軟內核技術,防止外部對其進行掃描探測;

③可集成用戶自己的安全特性和其他協(xié)處理器。

6)?StrongARM系列微處理器

Inter

StrongARM

SA-1100處理器是采用ARM體系結構高度集成的32位RISC微處理器。它融合了Inter公司的設計和處理技術以及ARM體系結構的電源效率,采用在軟件上兼容ARMv4體系結構,同時具有Intel技術優(yōu)點的體系結構。

7)?Xscale處理器

Xscale

處理器是基于ARMv5TE體系結構的解決方案,是一款全性能、高性價比、低功耗的處理器。它支持16位的Thumb指令和DSP指令集,已使用在數字移動電話、個人數字助理和網絡產品等場合。Xscale

處理器是Inter目前主要推廣的一款ARM微處理器。

5.2ARM微處理器結構

5.2.1RISC體系結構

到目前為止,RISC體系結構也還沒有嚴格的定義,一般認為,RISC體系結構應具有如下特點:

①采用固定長度的指令格式,指令歸整、簡單,基本尋址方式有2~3種;

②使用單周期指令,便于流水線操作執(zhí)行;

③大量使用寄存器,數據處理指令只對寄存器進行操作,只有加載/

存儲指令可以訪問存儲器,以提高指令的執(zhí)行效率。除此以外,ARM體系結構還采用了一些特別的技術(在保證高性能的前提下盡量縮小芯片的面積,并降低功耗):

①所有的指令都可根據前面的執(zhí)行結果決定是否被執(zhí)行,從而提高指令的執(zhí)行效率;

②可用加載/存儲指令批量傳輸數據,以提高數據的傳輸效率;

③可在一條數據處理指令中同時完成邏輯處理和移位處理;

④在循環(huán)處理中使用地址的自動增減來提高運行效率。5.2.2ARM微處理器的寄存器結構

ARM微處理器共有37個寄存器,被分為若干個組(BANK),這些寄存器包括:

①?31個通用寄存器,包括程序計數器(PC指針),均為32位的寄存器;

②?6個狀態(tài)寄存器,用以標識CPU的工作狀態(tài)及程序的運行狀態(tài),均為32位,目前只使用了其中的一部分。5.2.3ARM微處理器的指令結構

ARM微處理器在較新的體系結構中支持兩種指令集:ARM指令集和Thumb指令集。其中,ARM指令為32位的長度,Thumb指令為16位長度。Thumb指令集為ARM指令集的功能子集,但與等價的ARM代碼相比較,可節(jié)省30%~40%以上的存儲空間,同時具備32位代碼的所有優(yōu)點。

5.3ARM編程模型

所謂ARM編程模型,就是決定ARM程序組織形式的硬件架構。

ARM編程模型主要有以下幾點:

①ARM微處理器的工作狀態(tài);

②ARM微處理器的流水線技術;

③ARM體系結構的存儲器模式;

④ARM微處理器的數據和指令類型;

⑤ARM體系結構的處理器工作模式;

⑥ARM體系結構的寄存器組織;

⑦ARM微處理器的異常。5.3.1處理器的工作狀態(tài)

從編程的角度看ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換。

(1)?ARM狀態(tài),此時處理器執(zhí)行32位的字對齊的ARM指令;

(2)?Thumb狀態(tài),此時處理器執(zhí)行16位的、半字對齊的Thumb指令。5.3.2流水線技術

對于一段程序的執(zhí)行時間可用下面的表達式來表示:圖5-2ARM7單周期指令3級流水線圖5-3ARM7多周期指令3級流水線阻塞實例5.3.3存儲器模式

ARM體系結構將存儲器看作是從零地址開始的字節(jié)的線性組合。從零字節(jié)到三字節(jié)放置第一個存儲的字數據,從第四個字節(jié)到第七個字節(jié)放置第二個存儲的字數據,依次排列。作為32位的微處理器,ARM體系結構所支持的最大尋址空間為4GB。5.3.4數據和指令類型

ARM微處理器的指令長度可以是32位的(在ARM狀態(tài)下),也可以是16位的(在Thumb狀態(tài)下)。5.3.5處理器工作模式

ARM微處理器支持7種運行模式,也正因為這7種運行模式的不同,使得ARM微處理器能夠嵌入操作系統(tǒng)成為可能,這7種運行模式如下:

①用戶模式(usr):ARM處理器正常的程序執(zhí)行狀態(tài);

②快速中斷模式(fiq):用于高速數據傳輸或通道處理;

③外部中斷模式(irq):用于通用的中斷處理;

④管理模式(svc):操作系統(tǒng)使用的保護模式;⑤數據訪問終止模式(abt):當數據或指令預取終止時進入該模式,可用于虛擬存儲及存儲保護;

⑥系統(tǒng)模式(sys):運行具有特權的操作系統(tǒng)任務;

⑦未定義指令中止模式(und):當未定義的指令執(zhí)行時進入該模式,可用于支持硬件協(xié)處理器的軟件仿真。5.3.6寄存器組織

1.?ARM狀態(tài)下的寄存器組織

1)通用寄存器

通用寄存器包括R0~R15,可以分為3類。

(1)未分組寄存器R0~R7。

在所有的運行模式下,未分組寄存器都指向同一個物理寄存器,它們未被系統(tǒng)用作特殊的用途,因此,在中斷或異常處理進行運行模式轉換時,由于不同的處理器運行模式均使用相同的物理寄存器,可能會造成寄存器中數據的破壞,這一點在進行程序設計時應引起注意。

(2)分組寄存器R8~R14。

對于分組寄存器,它們每一次所訪問的物理寄存器與處理器當前的運行模式有關。

(3)程序計數器PC(R15)。

寄存器R15用作程序計數器(PC)。在ARM狀態(tài)下,位[1:0]為0,位[31:2]用于保存PC;在Thumb狀態(tài)下,位[0]為0,位[31:1]用于保存PC;雖然程序計數器也可以用作通用寄存器,但是有一些指令在使用程序計數器時有一些特殊限制,若不注意,執(zhí)行的結果將是不可預料的。

2)寄存器R16

寄存器R16用作CPSR(CurrentProgramStatusRegister,當前程序狀態(tài)寄存器),CPSR可在任何運行模式下被訪問,它包括條件標志位、中斷禁止位、當前處理器模式標志位,以及其他一些相關的控制和狀態(tài)位。

2.?Thumb狀態(tài)下的寄存器組織

Thumb狀態(tài)下的寄存器集是ARM狀態(tài)下寄存器集的一個子集,程序可以直接訪問8個通用寄存器(R7~R0)、程序計數器(PC)、堆棧指針(SP)、連接寄存器(LR)和CPSR。同時,在每一種特權模式下都有一組SP、LR和SPSR。表5-2給出了Thumb狀態(tài)下的寄存器組織。圖5-4Thumb狀態(tài)下的寄存器組織與ARM狀態(tài)下的寄存器組織的關系

3.程序狀態(tài)寄存器

ARM體系結構包含1個當前程序狀態(tài)寄存器(CPSR)和5個備份的程序狀態(tài)寄存器(SPSRs)。備份的程序狀態(tài)寄存器用來進行異常處理,其功能如下:

①保存ALU中的當前操作信息;

②控制允許和禁止中斷;

③設置處理器的運行模式。圖5-5程序狀態(tài)寄存器格式

1)條件碼標志位(ConditionCodeFlags)

N、Z、C、V均為條件碼標志位。它們的內容可被算術或邏輯運算的結果所改變,并且可以決定某條指令是否被執(zhí)行。

①在ARM狀態(tài)下,絕大多數的指令都是有條件執(zhí)行的;

②在Thumb狀態(tài)下,僅有分支指令是有條件執(zhí)行的。

2)控制位

①中斷禁止位I、F:I=1禁止IRQ中斷;F=1禁止FIQ中斷;

②?T標志位:該位反映處理器的運行狀態(tài),對于ARM體系結構v5及以上的版本的T系列處理器,當該位為1時,程序運行于Thumb狀態(tài),否則運行于ARM狀態(tài)。對于ARM體系結構v5及以上的版本的非T系列處理器,當該位為1時,執(zhí)行下一條指令以引起為定義的指令異常;當該位為0時,表示運行于ARM狀態(tài)。

③運行模式位M[4:0]:M0、M1、M2、M3、M4是模式位。這些位決定了處理器的運行模式。

3)保留位

PSR中的其余位為保留位,當改變PSR中的條件碼標志位或者控制位時,保留位不要被改變,在程序中也不要使用保留位來存儲數據。保留位將用于ARM版本的擴展。5.3.7異常

當正常的程序執(zhí)行流程發(fā)生暫時的停止時,稱之為異常(Exceptions)。

1.?ARM體系結構支持的異常

ARM體系結構所支持的異常及具體含義如表5-5所示。

2.異常的響應

當一個異常出現以后,ARM微處理器會執(zhí)行以下幾步操作:

(1)將下一條指令的地址存入相應連接寄存器LR,以便程序在處理異常返回時能從正確的位置重新開始執(zhí)行。

(2)將CPSR復制到相應的SPSR中;

(3)根據異常類型,強制設置CPSR的運行模式位;

(4)強制PC從相關的異常向量地址取下一條指令執(zhí)行,從而跳轉到相應的異常處理程序處。

3.異常返回

異常處理完畢之后,ARM微處理器會執(zhí)行以下幾步操作從異常返回:

(1)將連接寄存器LR的值減去相應的偏移量后送到PC中;

(2)將SPSR復制回CPSR中;

(3)若在進入異常處理時設置了中斷禁止位,要在此清除。

4.各類異常的具體描述

1)FIQ(FastInterruptRequest)

FIQ異常是為了支持數據傳輸或者通道處理而設計的。在ARM狀態(tài)下,系統(tǒng)有足夠的私有寄存器,從而可以避免對寄存器保存的需求,并減小了系統(tǒng)上下文切換的開銷。

2)?IRQ(InterruptRequest)

IRQ異常屬于正常的中斷請求,可通過對處理器的nIRQ引腳輸入低電平產生,IRQ的優(yōu)先級低于FIQ,當程序執(zhí)行進入FIQ異常時,IRQ可能被屏蔽。

3)?Abort(中止)

產生中止異常意味著對存儲器的訪問失敗。ARM微處理器在存儲器訪問周期內檢查是否發(fā)生中止異常。

4)?SoftwareInterrupt(軟件中斷)

軟件中斷指令(SWI)用于進入管理模式,常用于請求執(zhí)行特定的管理功能。軟件中斷處理程序執(zhí)行以下指令從SWI模式返回(無論是在ARM狀態(tài)還是Thumb狀態(tài)):

MOVPC,R14_svc

5)?UndefinedInstruction(未定義指令)

當ARM處理器遇到不能處理的指令時,會產生未定義指令異常。采用這種機制,可以通過軟件仿真擴展ARM或Thumb指令集。

在仿真未定義指令后,處理器執(zhí)行以下程序返回(無論是在ARM狀態(tài)還是Thumb狀態(tài)):

MOVSPC,R14_und

5.異常進入/退出

表5-6總結了進入異常處理時保存在相應R14中的PC值,及在退出異常處理時推薦使用的指令。

6.異常向量

表5-7所示為異常向量(ExceptionVectors)地址表。

7.異常優(yōu)先級

當多個異常同時發(fā)生時,系統(tǒng)根據固定的優(yōu)先級決定異常的處理次序。異常優(yōu)先級(ExceptionPriorities)由高到低的排列次序如表5-8所示。

8.應用程序中的異常處理

當系統(tǒng)運行時,異??赡軙S時發(fā)生,為保證在ARM處理器發(fā)生異常時不至于處于未知狀態(tài),在應用程序的設計中,首先要進行異常處理,采用的方式是在異常向量表中的特定位置放置一條跳轉指令,跳轉到異常處理程序,當ARM處理器發(fā)生異常時,程序計數器PC會被強制設置為對應的異常向量,從而跳轉到異常處理程序,當異常處理完成以后,返回到主程序繼續(xù)執(zhí)行。

5.4ARM指令集

5.4.1ARM處理器尋址方式

1.立即尋址

立即尋址也叫立即數尋址,這是一種特殊的尋址方式,操作數本身就在指令中給出,只要取出指令也就取到了操作數。這個操作數被稱為立即數,對應的尋址方式也就叫做立即尋址。例如以下指令:

ADDR0,R0,?#1 ;R0←R0

+

1

ADDR0,R0,?#0x3f ;R0←R0

+

0x3f

2.寄存器尋址

寄存器尋址就是利用寄存器中的數值作為操作數,這種尋址方式是各類微處理器經常采用的一種方式,也是一種執(zhí)行效率較高的尋址方式。例如以下指令:

ADDR0,R1,R2 ;R0←R1

+

R2

3.寄存器間接尋址

寄存器間接尋址就是以寄存器中的值作為操作數的地址,而操作數本身存放在存儲器中。例如以下指令:

ADDR0,R1,[R2] ;R0←R1

+

[R2]

LDRR0,[R1] ;R0←[R1]

STRR0,[R1] ;[R1]←R0

4.基址變址尋址

基址變址尋址就是將寄存器(該寄存器一般稱做基址寄存器)的內容與指令中給出的地址偏移量相加,從而得到一個操作數的有效地址。變址尋址方式常用于訪問某基地址附近的地址單元。采用變址尋址方式的指令常見有以下幾種形式:

LDRR0,[R1,?#4] ;R0←[R1

+

4]

LDRR0,[R1,?#4]! ;R0←[R1?+?4]、R1←R1?+?4

LDRR0,[R1],?#4 ;R0←[R1]、R1←R1?+?4

LDRR0,[R1,R2] ;R0←[R1

+

R2]

5.多寄存器尋址

采用多寄存器尋址方式,一條指令可以完成多個寄存器值的傳送。這種尋址方式可以用一條指令完成傳送最多16個通用寄存器的值。例如以下指令:

LDMIAR0,{R1,R2,R3,R4}??;R1←[R0]

;R2←[R0?+?4]

;R3←[R0?+?8]

;R4←[R0?+?12]

6.相對尋址

與基址變址尋址方式相類似,相對尋址以程序計數器PC的當前值為基地址,指令中的地址標號作為偏移量,將兩者相加之后得到操作數的有效地址。以下程序段完成子程序的調用和返回,跳轉指令BL采用了相對尋址方式。

BLNEXT ;跳轉到子程序NEXT處執(zhí)行

NEXT

MOVPC,LR ;從子程序返回

7.堆棧尋址

堆棧是一種數據結構,按先進后出(FirstInLastOut,FILO)的方式工作,使用一個稱做堆棧指針的專用寄存器指示當前的操作位置,堆棧指針總是指向棧頂。5.4.2常見ARM指令集

1.跳轉指令

跳轉指令用于實現程序流程的跳轉。在ARM程序中有如下兩種方法可以實現程序流程的跳轉:

(1)使用專門的跳轉指令。

(2)直接向程序計數器PC寫入跳轉地址值。

1)?B指令

B指令的格式為:

B目標地址

2)?BL指令

BL指令的格式為:

BL目標地址

3)?BLX指令

BLX指令的格式為:

BLX目標地址

4)?BX指令

BX指令的格式為:

BX目標地址

2.數據處理指令

1)?MOV指令

MOV指令的格式為:

MOV{S}目的寄存器,源操作數

2)?MVN指令

MVN指令的格式為:

MVN{S}目的寄存器,源操作數

3)?CMP指令

CMP指令的格式為:

CMP操作數1,操作數2

4)?CMN指令

CMN指令的格式為:

CMN操作數1,操作數2

5)?TST指令

TST指令的格式為:

TST操作數1,操作數2

6)?TEQ指令

TEQ指令的格式為:

TEQ操作數1,操作數2

7)?ADD指令

ADD指令的格式為:

ADD{S}目的寄存器,操作數1,操作數2

8)?ADC指令

ADC指令的格式為:

ADC{S}目的寄存器,操作數1,操作數2

9)?SUB指令

SUB指令的格式為:

SUB{S}目的寄存器,操作數1,操作數2

10)?SBC指令

SBC指令的格式為:

SBC{S}目的寄存器,操作數1,操作數2

11)?RSB指令

RSB指令的格式為:

RSB{S}目的寄存器,操作數1,操作數2

12)?RSC指令

RSC指令的格式為:

RSC{S}目的寄存器,操作數1,操作數2

13)?AND指令

AND指令的格式為:

AND{S}目的寄存器,操作數1,操作數2

14)?ORR指令

ORR指令的格式為:

ORR{S}目的寄存器,操作數1,操作數2

15)?EOR指令

EOR指令的格式為:

EOR{S}目的寄存器,操作數1,操作數2

16)?BIC指令

BIC指令的格式為:

BIC{S}目的寄存器,操作數1,操作數2

3.乘法指令與乘加指令

1)?MUL指令

MUL指令的格式為:

MUL{S}目的寄存器,操作數1,操作數2

2)?MLA指令

MLA指令的格式為:

MLA{S}目的寄存器,操作數1,操作數2,操作數3

3)?SMULL指令

SMULL指令的格式為:

SMULL{S}目的寄存器Low,目的寄存器High,操作數1,操作數2

4)?SMLAL指令

SMLAL指令的格式為:

SMLAL{S}目的寄存器Low,目的寄存器High,操作數1,操作數2

5)?UMULL指令

UMULL指令的格式為:

UMULL{S}目的寄存器Low,目的寄存器High,操作數1,操作數2

6)?UMLAL指令

UMLAL指令的格式為:

UMLAL{S}目的寄存器Low,目的寄存器High,操作數1,操作數2

4.程序狀態(tài)寄存器訪問指令

1)?MRS指令

MRS指令的格式為:

MRS{條件}通用寄存器,程序狀態(tài)寄存器(CPSR或SPSR)

2)?MSR指令

MSR指令的格式為:

MSR程序狀態(tài)寄存器(CPSR或SPSR)_<域>,操作數

5.加載/存儲指令

1)?LDR指令

LDR指令的格式為:

LDR目的寄存器,<存儲器地址>

2)?LDRB指令

LDRB指令的格式為:

LDRB目的寄存器,<存儲器地址>

3)?LDRH指令

LDRH指令的格式為:

LDRH目的寄存器,<存儲器地址>

4)?STR指令

STR指令的格式為:

STR源寄存器,<存儲器地址>

5)?STRB指令

STRB指令的格式為:

STRB源寄存器,<存儲器地址>

6)?STRH指令

STRH指令的格式為:

STRH源寄存器,<存儲器地址>

6.批量數據加載/存儲指令

ARM微處理器所支持批量數據加載/存儲指令可以一次在一片連續(xù)的存儲器單元和多個寄存器之間傳送數據,批量加載指令用于將一片連續(xù)的存儲器中的數據傳送到多個寄存器,批量數據存儲指令則完成相反的操作。常用的加載存儲指令如下:

LDM 批量數據加載指令。

STM 批量數據存儲指令。

LDM(或STM)指令的格式為:

LDM(或STM){類型}基址寄存器{!},寄存器列表{∧}

7.數據交換指令

1)?SWP指令

SWP指令的格式為:

SWP目的寄存器,源寄存器1,[源寄存器2]

2)?SWPB指令

SWPB指令的格式為:

SWP{條件}B目的寄存器,源寄存器1,[源寄存器2]

8.移位指令

1)?LSL(或ASL)操作

LSL(或ASL)操作的格式為:

通用寄存器,LSL(或ASL)操作數

2)?LSR操作

LSR操作的格式為:

通用寄存器,LSR操作數

3)?ASR操作

ASR操作的格式為:

通用寄存器,ASR操作數

4)?ROR操作

ROR操作的格式為:

通用寄存器,ROR操作數

5)

RRX操作

RRX操作的格式為:

通用寄存器,RRX操作數

9.協(xié)處理器指令

1)?CDP指令

CDP指令的格式為:

CDP協(xié)處理器編碼,協(xié)處理器操作碼1,目的寄存器,源寄存器1,源寄存器2,協(xié)處理器操作碼2

2)?LDC指令

LDC指令的格式為:

LDC{L}協(xié)處理器編碼,目的寄存器,[源寄存器]

3)?STC指令

STC指令的格式為:

STC{L}協(xié)處理器編碼,源寄存器,[目的寄存器]

4)?MCR指令

MCR指令的格式為:

MCR協(xié)處理器編碼,協(xié)處理器操作碼1,源寄存器,目的寄存器1,目的寄存器2,協(xié)處理器操作碼2

5)?MRC指令

MRC指令的格式為:

MRC協(xié)處理器編碼,協(xié)處理器操作碼1,目的寄存器,源寄存器1,源寄存器2,協(xié)處理器操作碼2

10.異常產生指令

ARM微處理器所支持的異常指令有如下兩條:

1)?SWI指令

SWI指令的格式為:

SWI24位的立即

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論