




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章ARM處理器5.1ARM處理器概述5.2ARM微處理器結(jié)構(gòu)5.3ARM編程模型5.4ARM指令集5.5ARM匯編程序設(shè)計(jì)本章小結(jié)
5.1ARM處理器概述
5.1.1ARM
1991年ARM(Advanced
RISC
Machines)公司成立于英國(guó)劍橋,主要出售芯片設(shè)計(jì)技術(shù)的授權(quán)。目前,采用ARM技術(shù)知識(shí)產(chǎn)權(quán)(IP)核的微處理器,即通常所說的ARM微處理器,已遍及工業(yè)控制、消費(fèi)類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、無線系統(tǒng)等各類產(chǎn)品市場(chǎng)。圖5-1ARM的業(yè)務(wù)模型5.1.2ARM微處理器的應(yīng)用領(lǐng)域及特點(diǎn)
1.?ARM微處理器的應(yīng)用領(lǐng)域
(1)工業(yè)控制領(lǐng)域。
(2)無線通信領(lǐng)域。
(3)網(wǎng)絡(luò)應(yīng)用。
(4)消費(fèi)類電子產(chǎn)品。
(5)成像和安全產(chǎn)品。
2.?ARM微處理器的特點(diǎn)
采用RISC架構(gòu)的ARM微處理器一般具有如下特點(diǎn):
①體積小、低功耗、低成本、高性能;
②支持Thumb(16位)/ARM(32位)雙指令集,能很好地兼容8位/16位器件;
③大量使用寄存器,指令執(zhí)行速度更快;
④大多數(shù)數(shù)據(jù)操作都在寄存器中完成;
⑤尋址方式靈活簡(jiǎn)單,執(zhí)行效率高;
⑥指令長(zhǎng)度固定。5.1.3ARM微處理器版本及系列
1.?ARM微處理器版本
1)版本1(過時(shí))
2)版本2(過時(shí))
3)版本3
4)版本4
5)版本5
6)版本6
2.?ARM微處理器系列
1)?ARM7系列微處理器
①具有嵌入式ICE-RT邏輯,調(diào)試開發(fā)方便;
②極低的功耗,適合對(duì)功耗要求較高的應(yīng)用,如便攜式產(chǎn)品;
③能夠提供0.9MIPS/MHz的三級(jí)流水線結(jié)構(gòu);
④代碼密度高并兼容16位的Thumb指令集;
⑤對(duì)操作系統(tǒng)的支持廣泛,包括Windows
CE、Linux、Palm
OS等。
2)?ARM9系列微處理器
①?5級(jí)整數(shù)流水線,指令執(zhí)行效率更高;
②提供1.1MIPS/MHz的哈佛結(jié)構(gòu);
③支持32位ARM指令集和16位Thumb指令集;
④支持32位的高速AMBA總線接口;
⑤全性能的MMU,支持Windows
CE、Linux、Palm
OS等多種主流嵌入式操作系統(tǒng);
⑥?MPU支持實(shí)時(shí)操作系統(tǒng);
⑦支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力。
3)?ARM9E系列微處理器
①支持DSP指令集,適合于需要高速數(shù)字信號(hào)處理的場(chǎng)合;
②5級(jí)整數(shù)流水線,指令執(zhí)行效率更高;
③支持32位ARM指令集和16位Thumb指令集;
④支持32位的高速AMBA總線接口;
⑤支持VFP9浮點(diǎn)處理協(xié)處理器;
⑥全性能的MMU,支持Windows
CE、Linux、Palm
OS等多種主流嵌入式操作系統(tǒng);
⑦M(jìn)PU支持實(shí)時(shí)操作系統(tǒng);
⑧支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力;
⑨主頻最高可達(dá)300MIPS。
4)?ARM10E系列微處理器
①支持DSP指令集,適合于需要高速數(shù)字信號(hào)處理的場(chǎng)合;
②6級(jí)整數(shù)流水線,指令執(zhí)行效率更高;
③支持32位ARM指令集和16位Thumb指令集;
④支持32位的高速AMBA總線接口;
⑤支持VFP10浮點(diǎn)處理協(xié)處理器;
⑥全性能的MMU,支持Windows
CE、Linux、Palm
OS等多種主流嵌入式操作系統(tǒng);
⑦支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力;
⑧主頻最高可達(dá)400MIPS;
⑨內(nèi)嵌并行讀/寫操作部件。
5)?SecurCore系列微處理器
其系統(tǒng)安全方面具有如下的特點(diǎn):
①帶有靈活的保護(hù)單元,以確保操作系統(tǒng)和應(yīng)用數(shù)據(jù)的安全;
②采用軟內(nèi)核技術(shù),防止外部對(duì)其進(jìn)行掃描探測(cè);
③可集成用戶自己的安全特性和其他協(xié)處理器。
6)?StrongARM系列微處理器
Inter
StrongARM
SA-1100處理器是采用ARM體系結(jié)構(gòu)高度集成的32位RISC微處理器。它融合了Inter公司的設(shè)計(jì)和處理技術(shù)以及ARM體系結(jié)構(gòu)的電源效率,采用在軟件上兼容ARMv4體系結(jié)構(gòu),同時(shí)具有Intel技術(shù)優(yōu)點(diǎn)的體系結(jié)構(gòu)。
7)?Xscale處理器
Xscale
處理器是基于ARMv5TE體系結(jié)構(gòu)的解決方案,是一款全性能、高性價(jià)比、低功耗的處理器。它支持16位的Thumb指令和DSP指令集,已使用在數(shù)字移動(dòng)電話、個(gè)人數(shù)字助理和網(wǎng)絡(luò)產(chǎn)品等場(chǎng)合。Xscale
處理器是Inter目前主要推廣的一款A(yù)RM微處理器。
5.2ARM微處理器結(jié)構(gòu)
5.2.1RISC體系結(jié)構(gòu)
到目前為止,RISC體系結(jié)構(gòu)也還沒有嚴(yán)格的定義,一般認(rèn)為,RISC體系結(jié)構(gòu)應(yīng)具有如下特點(diǎn):
①采用固定長(zhǎng)度的指令格式,指令歸整、簡(jiǎn)單,基本尋址方式有2~3種;
②使用單周期指令,便于流水線操作執(zhí)行;
③大量使用寄存器,數(shù)據(jù)處理指令只對(duì)寄存器進(jìn)行操作,只有加載/
存儲(chǔ)指令可以訪問存儲(chǔ)器,以提高指令的執(zhí)行效率。除此以外,ARM體系結(jié)構(gòu)還采用了一些特別的技術(shù)(在保證高性能的前提下盡量縮小芯片的面積,并降低功耗):
①所有的指令都可根據(jù)前面的執(zhí)行結(jié)果決定是否被執(zhí)行,從而提高指令的執(zhí)行效率;
②可用加載/存儲(chǔ)指令批量傳輸數(shù)據(jù),以提高數(shù)據(jù)的傳輸效率;
③可在一條數(shù)據(jù)處理指令中同時(shí)完成邏輯處理和移位處理;
④在循環(huán)處理中使用地址的自動(dòng)增減來提高運(yùn)行效率。5.2.2ARM微處理器的寄存器結(jié)構(gòu)
ARM微處理器共有37個(gè)寄存器,被分為若干個(gè)組(BANK),這些寄存器包括:
①?31個(gè)通用寄存器,包括程序計(jì)數(shù)器(PC指針),均為32位的寄存器;
②?6個(gè)狀態(tài)寄存器,用以標(biāo)識(shí)CPU的工作狀態(tài)及程序的運(yùn)行狀態(tài),均為32位,目前只使用了其中的一部分。5.2.3ARM微處理器的指令結(jié)構(gòu)
ARM微處理器在較新的體系結(jié)構(gòu)中支持兩種指令集:ARM指令集和Thumb指令集。其中,ARM指令為32位的長(zhǎng)度,Thumb指令為16位長(zhǎng)度。Thumb指令集為ARM指令集的功能子集,但與等價(jià)的ARM代碼相比較,可節(jié)省30%~40%以上的存儲(chǔ)空間,同時(shí)具備32位代碼的所有優(yōu)點(diǎn)。
5.3ARM編程模型
所謂ARM編程模型,就是決定ARM程序組織形式的硬件架構(gòu)。
ARM編程模型主要有以下幾點(diǎn):
①ARM微處理器的工作狀態(tài);
②ARM微處理器的流水線技術(shù);
③ARM體系結(jié)構(gòu)的存儲(chǔ)器模式;
④ARM微處理器的數(shù)據(jù)和指令類型;
⑤ARM體系結(jié)構(gòu)的處理器工作模式;
⑥ARM體系結(jié)構(gòu)的寄存器組織;
⑦ARM微處理器的異常。5.3.1處理器的工作狀態(tài)
從編程的角度看ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換。
(1)?ARM狀態(tài),此時(shí)處理器執(zhí)行32位的字對(duì)齊的ARM指令;
(2)?Thumb狀態(tài),此時(shí)處理器執(zhí)行16位的、半字對(duì)齊的Thumb指令。5.3.2流水線技術(shù)
對(duì)于一段程序的執(zhí)行時(shí)間可用下面的表達(dá)式來表示:圖5-2ARM7單周期指令3級(jí)流水線圖5-3ARM7多周期指令3級(jí)流水線阻塞實(shí)例5.3.3存儲(chǔ)器模式
ARM體系結(jié)構(gòu)將存儲(chǔ)器看作是從零地址開始的字節(jié)的線性組合。從零字節(jié)到三字節(jié)放置第一個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù),從第四個(gè)字節(jié)到第七個(gè)字節(jié)放置第二個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù),依次排列。作為32位的微處理器,ARM體系結(jié)構(gòu)所支持的最大尋址空間為4GB。5.3.4數(shù)據(jù)和指令類型
ARM微處理器的指令長(zhǎng)度可以是32位的(在ARM狀態(tài)下),也可以是16位的(在Thumb狀態(tài)下)。5.3.5處理器工作模式
ARM微處理器支持7種運(yùn)行模式,也正因?yàn)檫@7種運(yùn)行模式的不同,使得ARM微處理器能夠嵌入操作系統(tǒng)成為可能,這7種運(yùn)行模式如下:
①用戶模式(usr):ARM處理器正常的程序執(zhí)行狀態(tài);
②快速中斷模式(fiq):用于高速數(shù)據(jù)傳輸或通道處理;
③外部中斷模式(irq):用于通用的中斷處理;
④管理模式(svc):操作系統(tǒng)使用的保護(hù)模式;⑤數(shù)據(jù)訪問終止模式(abt):當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)入該模式,可用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù);
⑥系統(tǒng)模式(sys):運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù);
⑦未定義指令中止模式(und):當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真。5.3.6寄存器組織
1.?ARM狀態(tài)下的寄存器組織
1)通用寄存器
通用寄存器包括R0~R15,可以分為3類。
(1)未分組寄存器R0~R7。
在所有的運(yùn)行模式下,未分組寄存器都指向同一個(gè)物理寄存器,它們未被系統(tǒng)用作特殊的用途,因此,在中斷或異常處理進(jìn)行運(yùn)行模式轉(zhuǎn)換時(shí),由于不同的處理器運(yùn)行模式均使用相同的物理寄存器,可能會(huì)造成寄存器中數(shù)據(jù)的破壞,這一點(diǎn)在進(jìn)行程序設(shè)計(jì)時(shí)應(yīng)引起注意。
(2)分組寄存器R8~R14。
對(duì)于分組寄存器,它們每一次所訪問的物理寄存器與處理器當(dāng)前的運(yùn)行模式有關(guān)。
(3)程序計(jì)數(shù)器PC(R15)。
寄存器R15用作程序計(jì)數(shù)器(PC)。在ARM狀態(tài)下,位[1:0]為0,位[31:2]用于保存PC;在Thumb狀態(tài)下,位[0]為0,位[31:1]用于保存PC;雖然程序計(jì)數(shù)器也可以用作通用寄存器,但是有一些指令在使用程序計(jì)數(shù)器時(shí)有一些特殊限制,若不注意,執(zhí)行的結(jié)果將是不可預(yù)料的。
2)寄存器R16
寄存器R16用作CPSR(CurrentProgramStatusRegister,當(dāng)前程序狀態(tài)寄存器),CPSR可在任何運(yùn)行模式下被訪問,它包括條件標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志位,以及其他一些相關(guān)的控制和狀態(tài)位。
2.?Thumb狀態(tài)下的寄存器組織
Thumb狀態(tài)下的寄存器集是ARM狀態(tài)下寄存器集的一個(gè)子集,程序可以直接訪問8個(gè)通用寄存器(R7~R0)、程序計(jì)數(shù)器(PC)、堆棧指針(SP)、連接寄存器(LR)和CPSR。同時(shí),在每一種特權(quán)模式下都有一組SP、LR和SPSR。表5-2給出了Thumb狀態(tài)下的寄存器組織。圖5-4Thumb狀態(tài)下的寄存器組織與ARM狀態(tài)下的寄存器組織的關(guān)系
3.程序狀態(tài)寄存器
ARM體系結(jié)構(gòu)包含1個(gè)當(dāng)前程序狀態(tài)寄存器(CPSR)和5個(gè)備份的程序狀態(tài)寄存器(SPSRs)。備份的程序狀態(tài)寄存器用來進(jìn)行異常處理,其功能如下:
①保存ALU中的當(dāng)前操作信息;
②控制允許和禁止中斷;
③設(shè)置處理器的運(yùn)行模式。圖5-5程序狀態(tài)寄存器格式
1)條件碼標(biāo)志位(ConditionCodeFlags)
N、Z、C、V均為條件碼標(biāo)志位。它們的內(nèi)容可被算術(shù)或邏輯運(yùn)算的結(jié)果所改變,并且可以決定某條指令是否被執(zhí)行。
①在ARM狀態(tài)下,絕大多數(shù)的指令都是有條件執(zhí)行的;
②在Thumb狀態(tài)下,僅有分支指令是有條件執(zhí)行的。
2)控制位
①中斷禁止位I、F:I=1禁止IRQ中斷;F=1禁止FIQ中斷;
②?T標(biāo)志位:該位反映處理器的運(yùn)行狀態(tài),對(duì)于ARM體系結(jié)構(gòu)v5及以上的版本的T系列處理器,當(dāng)該位為1時(shí),程序運(yùn)行于Thumb狀態(tài),否則運(yùn)行于ARM狀態(tài)。對(duì)于ARM體系結(jié)構(gòu)v5及以上的版本的非T系列處理器,當(dāng)該位為1時(shí),執(zhí)行下一條指令以引起為定義的指令異常;當(dāng)該位為0時(shí),表示運(yùn)行于ARM狀態(tài)。
③運(yùn)行模式位M[4:0]:M0、M1、M2、M3、M4是模式位。這些位決定了處理器的運(yùn)行模式。
3)保留位
PSR中的其余位為保留位,當(dāng)改變PSR中的條件碼標(biāo)志位或者控制位時(shí),保留位不要被改變,在程序中也不要使用保留位來存儲(chǔ)數(shù)據(jù)。保留位將用于ARM版本的擴(kuò)展。5.3.7異常
當(dāng)正常的程序執(zhí)行流程發(fā)生暫時(shí)的停止時(shí),稱之為異常(Exceptions)。
1.?ARM體系結(jié)構(gòu)支持的異常
ARM體系結(jié)構(gòu)所支持的異常及具體含義如表5-5所示。
2.異常的響應(yīng)
當(dāng)一個(gè)異常出現(xiàn)以后,ARM微處理器會(huì)執(zhí)行以下幾步操作:
(1)將下一條指令的地址存入相應(yīng)連接寄存器LR,以便程序在處理異常返回時(shí)能從正確的位置重新開始執(zhí)行。
(2)將CPSR復(fù)制到相應(yīng)的SPSR中;
(3)根據(jù)異常類型,強(qiáng)制設(shè)置CPSR的運(yùn)行模式位;
(4)強(qiáng)制PC從相關(guān)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。
3.異常返回
異常處理完畢之后,ARM微處理器會(huì)執(zhí)行以下幾步操作從異常返回:
(1)將連接寄存器LR的值減去相應(yīng)的偏移量后送到PC中;
(2)將SPSR復(fù)制回CPSR中;
(3)若在進(jìn)入異常處理時(shí)設(shè)置了中斷禁止位,要在此清除。
4.各類異常的具體描述
1)FIQ(FastInterruptRequest)
FIQ異常是為了支持?jǐn)?shù)據(jù)傳輸或者通道處理而設(shè)計(jì)的。在ARM狀態(tài)下,系統(tǒng)有足夠的私有寄存器,從而可以避免對(duì)寄存器保存的需求,并減小了系統(tǒng)上下文切換的開銷。
2)?IRQ(InterruptRequest)
IRQ異常屬于正常的中斷請(qǐng)求,可通過對(duì)處理器的nIRQ引腳輸入低電平產(chǎn)生,IRQ的優(yōu)先級(jí)低于FIQ,當(dāng)程序執(zhí)行進(jìn)入FIQ異常時(shí),IRQ可能被屏蔽。
3)?Abort(中止)
產(chǎn)生中止異常意味著對(duì)存儲(chǔ)器的訪問失敗。ARM微處理器在存儲(chǔ)器訪問周期內(nèi)檢查是否發(fā)生中止異常。
4)?SoftwareInterrupt(軟件中斷)
軟件中斷指令(SWI)用于進(jìn)入管理模式,常用于請(qǐng)求執(zhí)行特定的管理功能。軟件中斷處理程序執(zhí)行以下指令從SWI模式返回(無論是在ARM狀態(tài)還是Thumb狀態(tài)):
MOVPC,R14_svc
5)?UndefinedInstruction(未定義指令)
當(dāng)ARM處理器遇到不能處理的指令時(shí),會(huì)產(chǎn)生未定義指令異常。采用這種機(jī)制,可以通過軟件仿真擴(kuò)展ARM或Thumb指令集。
在仿真未定義指令后,處理器執(zhí)行以下程序返回(無論是在ARM狀態(tài)還是Thumb狀態(tài)):
MOVSPC,R14_und
5.異常進(jìn)入/退出
表5-6總結(jié)了進(jìn)入異常處理時(shí)保存在相應(yīng)R14中的PC值,及在退出異常處理時(shí)推薦使用的指令。
6.異常向量
表5-7所示為異常向量(ExceptionVectors)地址表。
7.異常優(yōu)先級(jí)
當(dāng)多個(gè)異常同時(shí)發(fā)生時(shí),系統(tǒng)根據(jù)固定的優(yōu)先級(jí)決定異常的處理次序。異常優(yōu)先級(jí)(ExceptionPriorities)由高到低的排列次序如表5-8所示。
8.應(yīng)用程序中的異常處理
當(dāng)系統(tǒng)運(yùn)行時(shí),異常可能會(huì)隨時(shí)發(fā)生,為保證在ARM處理器發(fā)生異常時(shí)不至于處于未知狀態(tài),在應(yīng)用程序的設(shè)計(jì)中,首先要進(jìn)行異常處理,采用的方式是在異常向量表中的特定位置放置一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到異常處理程序,當(dāng)ARM處理器發(fā)生異常時(shí),程序計(jì)數(shù)器PC會(huì)被強(qiáng)制設(shè)置為對(duì)應(yīng)的異常向量,從而跳轉(zhuǎn)到異常處理程序,當(dāng)異常處理完成以后,返回到主程序繼續(xù)執(zhí)行。
5.4ARM指令集
5.4.1ARM處理器尋址方式
1.立即尋址
立即尋址也叫立即數(shù)尋址,這是一種特殊的尋址方式,操作數(shù)本身就在指令中給出,只要取出指令也就取到了操作數(shù)。這個(gè)操作數(shù)被稱為立即數(shù),對(duì)應(yīng)的尋址方式也就叫做立即尋址。例如以下指令:
ADDR0,R0,?#1 ;R0←R0
+
1
ADDR0,R0,?#0x3f ;R0←R0
+
0x3f
2.寄存器尋址
寄存器尋址就是利用寄存器中的數(shù)值作為操作數(shù),這種尋址方式是各類微處理器經(jīng)常采用的一種方式,也是一種執(zhí)行效率較高的尋址方式。例如以下指令:
ADDR0,R1,R2 ;R0←R1
+
R2
3.寄存器間接尋址
寄存器間接尋址就是以寄存器中的值作為操作數(shù)的地址,而操作數(shù)本身存放在存儲(chǔ)器中。例如以下指令:
ADDR0,R1,[R2] ;R0←R1
+
[R2]
LDRR0,[R1] ;R0←[R1]
STRR0,[R1] ;[R1]←R0
4.基址變址尋址
基址變址尋址就是將寄存器(該寄存器一般稱做基址寄存器)的內(nèi)容與指令中給出的地址偏移量相加,從而得到一個(gè)操作數(shù)的有效地址。變址尋址方式常用于訪問某基地址附近的地址單元。采用變址尋址方式的指令常見有以下幾種形式:
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.多寄存器尋址
采用多寄存器尋址方式,一條指令可以完成多個(gè)寄存器值的傳送。這種尋址方式可以用一條指令完成傳送最多16個(gè)通用寄存器的值。例如以下指令:
LDMIAR0,{R1,R2,R3,R4}??;R1←[R0]
;R2←[R0?+?4]
;R3←[R0?+?8]
;R4←[R0?+?12]
6.相對(duì)尋址
與基址變址尋址方式相類似,相對(duì)尋址以程序計(jì)數(shù)器PC的當(dāng)前值為基地址,指令中的地址標(biāo)號(hào)作為偏移量,將兩者相加之后得到操作數(shù)的有效地址。以下程序段完成子程序的調(diào)用和返回,跳轉(zhuǎn)指令BL采用了相對(duì)尋址方式。
BLNEXT ;跳轉(zhuǎn)到子程序NEXT處執(zhí)行
…
NEXT
…
MOVPC,LR ;從子程序返回
7.堆棧尋址
堆棧是一種數(shù)據(jù)結(jié)構(gòu),按先進(jìn)后出(FirstInLastOut,F(xiàn)ILO)的方式工作,使用一個(gè)稱做堆棧指針的專用寄存器指示當(dāng)前的操作位置,堆棧指針總是指向棧頂。5.4.2常見ARM指令集
1.跳轉(zhuǎn)指令
跳轉(zhuǎn)指令用于實(shí)現(xiàn)程序流程的跳轉(zhuǎn)。在ARM程序中有如下兩種方法可以實(shí)現(xiàn)程序流程的跳轉(zhuǎn):
(1)使用專門的跳轉(zhuǎn)指令。
(2)直接向程序計(jì)數(shù)器PC寫入跳轉(zhuǎn)地址值。
1)?B指令
B指令的格式為:
B目標(biāo)地址
2)?BL指令
BL指令的格式為:
BL目標(biāo)地址
3)?BLX指令
BLX指令的格式為:
BLX目標(biāo)地址
4)?BX指令
BX指令的格式為:
BX目標(biāo)地址
2.數(shù)據(jù)處理指令
1)?MOV指令
MOV指令的格式為:
MOV{S}目的寄存器,源操作數(shù)
2)?MVN指令
MVN指令的格式為:
MVN{S}目的寄存器,源操作數(shù)
3)?CMP指令
CMP指令的格式為:
CMP操作數(shù)1,操作數(shù)2
4)?CMN指令
CMN指令的格式為:
CMN操作數(shù)1,操作數(shù)2
5)?TST指令
TST指令的格式為:
TST操作數(shù)1,操作數(shù)2
6)?TEQ指令
TEQ指令的格式為:
TEQ操作數(shù)1,操作數(shù)2
7)?ADD指令
ADD指令的格式為:
ADD{S}目的寄存器,操作數(shù)1,操作數(shù)2
8)?ADC指令
ADC指令的格式為:
ADC{S}目的寄存器,操作數(shù)1,操作數(shù)2
9)?SUB指令
SUB指令的格式為:
SUB{S}目的寄存器,操作數(shù)1,操作數(shù)2
10)?SBC指令
SBC指令的格式為:
SBC{S}目的寄存器,操作數(shù)1,操作數(shù)2
11)?RSB指令
RSB指令的格式為:
RSB{S}目的寄存器,操作數(shù)1,操作數(shù)2
12)?RSC指令
RSC指令的格式為:
RSC{S}目的寄存器,操作數(shù)1,操作數(shù)2
13)?AND指令
AND指令的格式為:
AND{S}目的寄存器,操作數(shù)1,操作數(shù)2
14)?ORR指令
ORR指令的格式為:
ORR{S}目的寄存器,操作數(shù)1,操作數(shù)2
15)?EOR指令
EOR指令的格式為:
EOR{S}目的寄存器,操作數(shù)1,操作數(shù)2
16)?BIC指令
BIC指令的格式為:
BIC{S}目的寄存器,操作數(shù)1,操作數(shù)2
3.乘法指令與乘加指令
1)?MUL指令
MUL指令的格式為:
MUL{S}目的寄存器,操作數(shù)1,操作數(shù)2
2)?MLA指令
MLA指令的格式為:
MLA{S}目的寄存器,操作數(shù)1,操作數(shù)2,操作數(shù)3
3)?SMULL指令
SMULL指令的格式為:
SMULL{S}目的寄存器Low,目的寄存器High,操作數(shù)1,操作數(shù)2
4)?SMLAL指令
SMLAL指令的格式為:
SMLAL{S}目的寄存器Low,目的寄存器High,操作數(shù)1,操作數(shù)2
5)?UMULL指令
UMULL指令的格式為:
UMULL{S}目的寄存器Low,目的寄存器High,操作數(shù)1,操作數(shù)2
6)?UMLAL指令
UMLAL指令的格式為:
UMLAL{S}目的寄存器Low,目的寄存器High,操作數(shù)1,操作數(shù)2
4.程序狀態(tài)寄存器訪問指令
1)?MRS指令
MRS指令的格式為:
MRS{條件}通用寄存器,程序狀態(tài)寄存器(CPSR或SPSR)
2)?MSR指令
MSR指令的格式為:
MSR程序狀態(tài)寄存器(CPSR或SPSR)_<域>,操作數(shù)
5.加載/存儲(chǔ)指令
1)?LDR指令
LDR指令的格式為:
LDR目的寄存器,<存儲(chǔ)器地址>
2)?LDRB指令
LDRB指令的格式為:
LDRB目的寄存器,<存儲(chǔ)器地址>
3)?LDRH指令
LDRH指令的格式為:
LDRH目的寄存器,<存儲(chǔ)器地址>
4)?STR指令
STR指令的格式為:
STR源寄存器,<存儲(chǔ)器地址>
5)?STRB指令
STRB指令的格式為:
STRB源寄存器,<存儲(chǔ)器地址>
6)?STRH指令
STRH指令的格式為:
STRH源寄存器,<存儲(chǔ)器地址>
6.批量數(shù)據(jù)加載/存儲(chǔ)指令
ARM微處理器所支持批量數(shù)據(jù)加載/存儲(chǔ)指令可以一次在一片連續(xù)的存儲(chǔ)器單元和多個(gè)寄存器之間傳送數(shù)據(jù),批量加載指令用于將一片連續(xù)的存儲(chǔ)器中的數(shù)據(jù)傳送到多個(gè)寄存器,批量數(shù)據(jù)存儲(chǔ)指令則完成相反的操作。常用的加載存儲(chǔ)指令如下:
LDM 批量數(shù)據(jù)加載指令。
STM 批量數(shù)據(jù)存儲(chǔ)指令。
LDM(或STM)指令的格式為:
LDM(或STM){類型}基址寄存器{!},寄存器列表{∧}
7.數(shù)據(jù)交換指令
1)?SWP指令
SWP指令的格式為:
SWP目的寄存器,源寄存器1,[源寄存器2]
2)?SWPB指令
SWPB指令的格式為:
SWP{條件}B目的寄存器,源寄存器1,[源寄存器2]
8.移位指令
1)?LSL(或ASL)操作
LSL(或ASL)操作的格式為:
通用寄存器,LSL(或ASL)操作數(shù)
2)?LSR操作
LSR操作的格式為:
通用寄存器,LSR操作數(shù)
3)?ASR操作
ASR操作的格式為:
通用寄存器,ASR操作數(shù)
4)?ROR操作
ROR操作的格式為:
通用寄存器,ROR操作數(shù)
5)
RRX操作
RRX操作的格式為:
通用寄存器,RRX操作數(shù)
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.異常產(chǎn)生指令
ARM微處理器所支持的異常指令有如下兩條:
1)?SWI指令
SWI指令的格式為:
SWI24位的立即
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧沈陽市郊聯(lián)體2025年高考臨考沖刺化學(xué)試卷含解析
- 2025年超高功率大噸位電弧爐項(xiàng)目建設(shè)方案
- 四年級(jí)數(shù)學(xué)(小數(shù)加減運(yùn)算)計(jì)算題專項(xiàng)練習(xí)與答案匯編
- 2025年衛(wèi)生院及社區(qū)醫(yī)療服務(wù)項(xiàng)目合作計(jì)劃書
- 陜西財(cái)經(jīng)職業(yè)技術(shù)學(xué)院《語用學(xué)概論理論教學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 陜西青年職業(yè)學(xué)院《爵士舞》2023-2024學(xué)年第一學(xué)期期末試卷
- 隨州職業(yè)技術(shù)學(xué)院《英美概況》2023-2024學(xué)年第二學(xué)期期末試卷
- 集美大學(xué)誠(chéng)毅學(xué)院《數(shù)據(jù)分析創(chuàng)新實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 青島農(nóng)業(yè)大學(xué)海都學(xué)院《影視批評(píng)與策展》2023-2024學(xué)年第二學(xué)期期末試卷
- 青島工學(xué)院《專業(yè)論文閱讀與寫作》2023-2024學(xué)年第二學(xué)期期末試卷
- 地形圖的識(shí)別與應(yīng)用-地形圖的識(shí)別(森林調(diào)查技術(shù))
- 和田十二法是什么
- 2023年北京定額及計(jì)算規(guī)則
- 安徽龍?jiān)达L(fēng)力發(fā)電有限公司龍?jiān)磥戆部h三灣風(fēng)電場(chǎng)項(xiàng)目環(huán)評(píng)報(bào)告表
- 全自動(dòng)蜂窩紙板生產(chǎn)線介紹-美迅機(jī)械設(shè)備制造商
- 民營(yíng)醫(yī)院職稱崗位工資級(jí)崗位招聘分級(jí)表
- 藥品質(zhì)量評(píng)審實(shí)施方案
- 醫(yī)院外掛電梯鋼結(jié)構(gòu)井道工程施工組織設(shè)計(jì)
- GB/T 283-2007滾動(dòng)軸承圓柱滾子軸承外形尺寸
- GB/T 22085.1-2008電子束及激光焊接接頭缺欠質(zhì)量分級(jí)指南第1部分:鋼
- GB/T 214-2007煤中全硫的測(cè)定方法
評(píng)論
0/150
提交評(píng)論