![KLx第3章ARM的體系結(jié)構(gòu)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/25/ef527333-87f2-449d-8a9f-dddfa7e1ca99/ef527333-87f2-449d-8a9f-dddfa7e1ca991.gif)
![KLx第3章ARM的體系結(jié)構(gòu)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/25/ef527333-87f2-449d-8a9f-dddfa7e1ca99/ef527333-87f2-449d-8a9f-dddfa7e1ca992.gif)
![KLx第3章ARM的體系結(jié)構(gòu)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/25/ef527333-87f2-449d-8a9f-dddfa7e1ca99/ef527333-87f2-449d-8a9f-dddfa7e1ca993.gif)
![KLx第3章ARM的體系結(jié)構(gòu)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/25/ef527333-87f2-449d-8a9f-dddfa7e1ca99/ef527333-87f2-449d-8a9f-dddfa7e1ca994.gif)
![KLx第3章ARM的體系結(jié)構(gòu)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/25/ef527333-87f2-449d-8a9f-dddfa7e1ca99/ef527333-87f2-449d-8a9f-dddfa7e1ca995.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第3章 ARM體系結(jié)構(gòu)第3章 ARM體系結(jié)構(gòu)p3.1 ARM微處理器基礎(chǔ)p3.2 ARM的內(nèi)核系列、指令系統(tǒng)p3.3 ARM實(shí)驗(yàn)箱介紹3.1 ARM微處理器基礎(chǔ)pARM的運(yùn)行模式pARM的工作狀態(tài)pARM的寄存器組織pARM的異常pARM的存儲(chǔ)器格式pARM的特點(diǎn)和優(yōu)勢計(jì)算機(jī)系統(tǒng)的一般運(yùn)行原理計(jì)算機(jī)系統(tǒng)的一般運(yùn)行原理CPU一般包括控制器、運(yùn)算器和寄存器。控制器的功能是控制處理器,如取指令、譯碼、執(zhí)行指令、讀寫內(nèi)存等;運(yùn)算器主要是在處理器的內(nèi)部完成運(yùn)算算術(shù)運(yùn)算、位運(yùn)算操作,一般只和寄存器打交道;寄存器為處理器提供內(nèi)部的臨時(shí)存儲(chǔ)空間,它是處理器和內(nèi)存的媒介。計(jì)算機(jī)系統(tǒng)的一般運(yùn)行原理 CPU對內(nèi)存的
2、對內(nèi)存的兩種基本操作:取指令讀寫內(nèi)存 計(jì)算機(jī)系統(tǒng)的一般運(yùn)行原理 程序計(jì)數(shù)器在系統(tǒng)復(fù)位后,指向的內(nèi)容是內(nèi)存的某一個(gè)點(diǎn)區(qū)域,處理器從該處的內(nèi)存依次取出指令,然后譯碼、執(zhí)行。處理器在執(zhí)行完一條指令之后,將自動(dòng)將程序計(jì)數(shù)器寄存器的內(nèi)容增加一個(gè)單位,然后根據(jù)其地址自動(dòng)執(zhí)行下一條指令。嵌入式系統(tǒng)與通用計(jì)算機(jī)硬件組成的異同 嵌入式系統(tǒng)本質(zhì)上是計(jì)算機(jī)系統(tǒng),但是具有以下的特點(diǎn): 集成度高 非標(biāo)準(zhǔn)化 接口非常復(fù)雜ARM體系結(jié)構(gòu)總體思想l總體思想:在不犧牲性能的同時(shí),盡量簡化處理器。同時(shí)從體系結(jié)構(gòu)的層面上靈活支持處理器擴(kuò)展。這種簡化和開放的思路使得ARM處理器采用了很簡單的結(jié)構(gòu)來實(shí)現(xiàn)。l目前,ARM32位體系結(jié)構(gòu)被
3、公認(rèn)為業(yè)界領(lǐng)先的32位嵌入式RISC微處理器核,所有ARM處理器都共享這一體系結(jié)構(gòu)。RISC結(jié)構(gòu)ARM采用RISC結(jié)構(gòu),在簡化處理器結(jié)構(gòu),減少復(fù)雜功能指令的同時(shí),提高了處理器的速度。考慮到處理器與存儲(chǔ)器打交道的指令執(zhí)行時(shí)間遠(yuǎn)遠(yuǎn)大于在寄存器內(nèi)操作的指令執(zhí)行時(shí)間,RISC型處理器采用了Load/Store加載/存儲(chǔ)構(gòu)造,即只有Load/Store指令可與存儲(chǔ)器打交道,其余指令都不允許進(jìn)行存儲(chǔ)器操作。同時(shí),為了進(jìn)一步提高指令和數(shù)據(jù)的存取速度,RISC型處理器增加了指令高速緩沖I-Cache和數(shù)據(jù)高速緩沖D-Cache及多處理器結(jié)構(gòu),使指令的操作盡可能在寄存器之間進(jìn)行。CISC與RISC的比較ARM的
4、運(yùn)行模式ARM微處理器支持7種運(yùn)行模式,分別為:用戶模式usr): ARM處理器正常的程序執(zhí)行狀態(tài)快速中斷模式fiq): 用于高速數(shù)據(jù)傳輸或通道處理中斷模式irq): 用于通用的中斷處理管理模式svc): 操作系統(tǒng)使用的保護(hù)模式終止模式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é)處理器的軟件仿真。ARM的工作狀態(tài) ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換:ARM狀態(tài),此時(shí)處理器執(zhí)行32位的字對齊的ARM指令Thumb狀態(tài),此時(shí)處理器
5、執(zhí)行16位的、半字對齊的Thumb指令A(yù)RM的寄存器組織 ARM微處理器共有37個(gè)32位寄存器,其中31個(gè)為通用寄存器,6個(gè)為狀態(tài)寄存器。但是這些寄存器不能被同時(shí)訪問。 在某種時(shí)刻,通用寄存器R14R0、程序計(jì)數(shù)器PC、一個(gè)或兩個(gè)狀態(tài)寄存器都是可訪問的。ARM的寄存器組織ARM的寄存器組織ARM的寄存器組織ARM的寄存器組織PSR寄存器的各個(gè)位: 中斷禁止位I、F Thumb標(biāo)志位 運(yùn)行模式位M4:0ARM的寄存器組織M4M4:00處理器模式處理器模式0b10000用戶模式0b10001FIQ0b10010IRQ0b10011管理模式0b10111終止模式0b11011未定義模式0b11111
6、系統(tǒng)模式狀態(tài)寄存器模式位的含義ARM的異常異常類型異常類型具體含義具體含義復(fù)位(Reset)當(dāng)處理器的復(fù)位電平有效時(shí),產(chǎn)生復(fù)位異常,程序跳轉(zhuǎn)到復(fù)位異常處理程序處執(zhí)行。未定義指令(Undefined)當(dāng)ARM 處理器或協(xié)處理器遇到不能處理的指令時(shí),產(chǎn)生未定義指令異常??墒褂迷摦惓C(jī)制進(jìn)行軟件仿真。軟件中斷(SWI)該異常由執(zhí)行SWI 指令產(chǎn)生,可用于用戶模式下的程序調(diào)用特權(quán)操作指令??墒褂迷摦惓C(jī)制實(shí)現(xiàn)系統(tǒng)功能調(diào)用。指令預(yù)取終止(Prefetch Abort)若處理器預(yù)取指令的地址不存在,或該地址不允許當(dāng)前指令訪問,存儲(chǔ)器會(huì)向處理器發(fā)出終止信號(hào),但當(dāng)預(yù)取的指令被執(zhí)行時(shí),才會(huì)產(chǎn)生指令預(yù)取終止異常。
7、數(shù)據(jù)終止(Data Abort)若處理器數(shù)據(jù)訪問指令的地址不存在,或該地址不允許當(dāng)前指令訪問時(shí),產(chǎn)生數(shù)據(jù)終止異常。外部中斷請求(IRQ)當(dāng)處理器的外部中斷請求引腳有效,且CPSR 中的I 位為0 時(shí),產(chǎn)生IRQ 異常。系統(tǒng)的外設(shè)可通過該異常請求中斷服務(wù)。快速中斷請求(FIQ)當(dāng)處理器的快速中斷請求引腳有效,且CPSR 中的F 位為0 時(shí),產(chǎn)生FIQ 異常。ARM的異常返回指令 以前的狀態(tài)ARMThumbBLMOV PC,R14PC4PC2SWIMOVS PC,R14_svcPC4PC2UDEFMOVS PC,R14_undPC4PC2FIQSUBS PC,R14_fiq,4PC4PC4IRQS
8、UBS PC,R14_irq,4PC4PC4PABTSUBS PC,R14_abt,4PC4PC4DABTSUBS PC,R14_abt,8PC8PC8ARM的異常1最高) 復(fù)位2 數(shù)據(jù)終止3 FIQ4 IRQ5 預(yù)取指令終止6最低) 未定義指令、SWIARM異常的優(yōu)先級(jí)ARM的存儲(chǔ)器格式 ARM體系結(jié)構(gòu)將存儲(chǔ)器看作是從零地址開始的字節(jié)的線性組合。從第0字節(jié)到第3字節(jié)放置第一個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù),從第4個(gè)字節(jié)到第7個(gè)字節(jié)放置第二個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù),依次排列。 作為32位的微處理器,ARM體系結(jié)構(gòu)所支持的最大尋址空間為4GB32位)。 ARM體系結(jié)構(gòu)可以用兩種方法存儲(chǔ)字?jǐn)?shù)據(jù),稱之為大端格式和小端格式。AR
9、M的存儲(chǔ)器格式 大端格式大端格式ARM的存儲(chǔ)器格式 小端格式。小端格式。ARM的特點(diǎn)和優(yōu)勢1內(nèi)核編程體系內(nèi)核編程體系 多種模式的切換多種模式的切換 眾多的通用寄存器眾多的通用寄存器 32位地址位地址/數(shù)據(jù)操作數(shù)據(jù)操作 指令集中的特殊功能指令集中的特殊功能 高效的高效的C和和C+編譯器編譯器 硬件乘法器硬件乘法器 Thumb指令集指令集 E增強(qiáng)增強(qiáng)DSP指令指令 Jazzle技術(shù)技術(shù)2協(xié)處理器協(xié)處理器 MMU MPU VFP3AMBA(先進(jìn)控制器總線體系先進(jìn)控制器總線體系)4. 嵌入式嵌入式ICE、低功耗、小體積、低功耗、小體積3.2 ARM的內(nèi)核系列pARM內(nèi)核分類與系列pARM體系結(jié)構(gòu)版本A
10、RM內(nèi)核分類與系列ARM內(nèi)核系列ARM7 系列ARM9 系列ARM9E 系列ARM10E 系列SecurCore 系列StrongARM/XscaleARM11系列CortexARM內(nèi)核分類與系列1994-2019年發(fā)布的ARM內(nèi)核ARM內(nèi)核分類與系列處理器內(nèi)核 內(nèi)核分類ARM7 ARM7DMI(-S) ARM720T ARM7EJ-SARM9 ARM920T ARM922TARM9E ARM926EJ-S ARM946E-S ARM966E-S ARM968E-SARM10E ARM1020E ARM1022E ARM1026EJ-S處理器內(nèi)核內(nèi)核分類ARM11 ARM1136J(F)-S
11、ARM1156T2(F)-S ARM1176JZ(F)-SSecurCore SC100 SC110 SC200 SC210Strong ARMXscaleARM7內(nèi)核ARM7TDMIARM7TDMI-SARM720TARM7EJ-SARM9內(nèi)核ARM920TARM922TARM9E內(nèi)核 ARM926EJ-SARM946E-SARM966E-SARM968E-SARM10E內(nèi)核 ARM1020EARM1026EJ-SARM11內(nèi)核 ARM1136J(F)-SARM1156T2(F)-SARM1176JZ(F)-SSecurCore內(nèi)核 SC100/SC110SC200/SC210其他ARM內(nèi)核
12、 n StrongARMn Intel XScalen Cortexn ARM Cortex A (應(yīng)用內(nèi)核)n ARM Cortex R (實(shí)時(shí)內(nèi)核) n ARM Cortex M (微控制器) ARM體系結(jié)構(gòu)版本 ARM V1體系是最初的版本,只有26位的尋址空間,沒有乘法指令,最終也沒有商業(yè)化。ARM V2體系與V1體系同為26位尋址空間具有乘法和乘加指令,支持協(xié)處理器。ARM V3體系的尋址范圍擴(kuò)展到32位,具有乘法和乘加指令,支持協(xié)處理器。ARM V3體系增加了半字存儲(chǔ)操作,對調(diào)試的支持以及支持嵌入的ICE。ARM V3體系增加了 DSP指令支持和對 Java指令的支持。ARM V6
13、體系增加了媒體指令,ARMv6指令集合中加入了超過60條SIMD單指令多數(shù)據(jù)指令。ARM V7體系定義了三種獨(dú)立的內(nèi)核型 A應(yīng)用領(lǐng)域),R實(shí)時(shí)領(lǐng)域),M控制領(lǐng)域)。3.2 ARM微處理器的指令系統(tǒng)pARM指令系統(tǒng)的概述 pARM的尋址模式 pARM的指令集 pThumb的指令集 ARM指令系統(tǒng)的概述助記符助記符指令功能描述指令功能描述ADC帶進(jìn)位加法指令A(yù)DD加法指令A(yù)ND邏輯與指令B跳轉(zhuǎn)指令BIC位清零指令BL帶返回的跳轉(zhuǎn)指令BLX帶返回和狀態(tài)切換的跳轉(zhuǎn)指令BX帶狀態(tài)切換的跳轉(zhuǎn)指令CDP協(xié)處理器數(shù)據(jù)操作指令CMN比較反值指令CMP比較指令EOR異或指令LDC存儲(chǔ)器到協(xié)處理器的數(shù)據(jù)傳輸指令LD
14、M加載多個(gè)寄存器指令LDR存儲(chǔ)器到寄存器的數(shù)據(jù)傳輸指令MCR從ARMMLA乘加運(yùn)算指令MOV數(shù)據(jù)傳送指令 助記符助記符指令功能描述指令功能描述MRC從協(xié)處理器寄存器到ARMMRS傳送CPSRMSR傳送通用寄存器到CPSRMUL32MLA32MVN數(shù)據(jù)取反傳送指令ORR邏輯或指令RSB逆向減法指令RSC帶借位的逆向減法指令SBC帶借位減法指令STC協(xié)處理器寄存器寫入存儲(chǔ)器指令STM批量內(nèi)存字寫入指令STR寄存器到存儲(chǔ)器的數(shù)據(jù)傳輸指令SUB減法指令SWI軟件中斷指令SWP交換指令TEQ相等測試指令TST位測試指令A(yù)RM指令系統(tǒng)的概述 條件碼條件碼助記符后綴助記符后綴標(biāo)志標(biāo)志含義含義0000EQZ置
15、位相等0001NEZ清零不相等0010CSC置位無符號(hào)數(shù)大于或等于0011CCC清零無符號(hào)數(shù)小于0100MIN置位負(fù)數(shù)0101PLN清零正數(shù)或零0110VSV置位溢出0111VCV清零未溢出1000HIC置位無符號(hào)數(shù)大于1001LSC清零無符號(hào)數(shù)小于或等于1010GEN等于V帶符號(hào)數(shù)大于或等于1011LTN不等于V帶符號(hào)數(shù)小于1100GTZ清零且(N等于V)帶符號(hào)數(shù)大于1101LEZ 置位或(N 不等于V)帶符號(hào)數(shù)小于或等于1110AL忽略無條件執(zhí)行ARM的尋址模式1.立即尋址立即尋址 立即尋址也叫立即數(shù)尋址,這是一種特殊的尋址方立即尋址也叫立即數(shù)尋址,這是一種特殊的尋址方式,操作數(shù)本身就在指
16、令中給出,只要取出指令也就式,操作數(shù)本身就在指令中給出,只要取出指令也就取到了操作數(shù)。這個(gè)操作數(shù)被稱為立即數(shù),對應(yīng)的尋取到了操作數(shù)。這個(gè)操作數(shù)被稱為立即數(shù),對應(yīng)的尋址方式也就叫做立即尋址。例如以下指令:址方式也就叫做立即尋址。例如以下指令: ADD R0,R0,1 ;R0R01 ADD R0,R0,0 x3f ;R0R00 x3f 在以上兩條指令中,第二個(gè)源操作數(shù)即為立即數(shù),在以上兩條指令中,第二個(gè)源操作數(shù)即為立即數(shù),要求以要求以“”為前綴,對于以十六進(jìn)制表示的立即數(shù),為前綴,對于以十六進(jìn)制表示的立即數(shù),還要求在還要求在“”后加上后加上“0 x或或“&”。 ARM的尋址模式2 寄存器尋
17、址寄存器尋址 寄存器尋址就是利用寄存器中的數(shù)值作為操作數(shù),寄存器尋址就是利用寄存器中的數(shù)值作為操作數(shù),這種尋址方式是各類微處理器經(jīng)常采用的一種方式,這種尋址方式是各類微處理器經(jīng)常采用的一種方式,也是一種執(zhí)行效率較高的尋址方式。以下指令:也是一種執(zhí)行效率較高的尋址方式。以下指令: ADD R0,R1,R2 ;R0R1R2 該指令的執(zhí)行效果是將寄存器該指令的執(zhí)行效果是將寄存器R1和和R2的內(nèi)容相加,的內(nèi)容相加,其結(jié)果存放在寄存器其結(jié)果存放在寄存器R0中。中。ARM的尋址模式3. 寄存器間接尋址寄存器間接尋址寄存器間接尋址就是以寄存器中的值作為操作數(shù)寄存器間接尋址就是以寄存器中的值作為操作數(shù)的地址,
18、而操作數(shù)本身存放在存儲(chǔ)器中。例如以下指的地址,而操作數(shù)本身存放在存儲(chǔ)器中。例如以下指令:令:LDR R0,R1 ;R0R1STR R0,R1 ;R1R0第一條指令將以第一條指令將以R1 的值為地址的存儲(chǔ)器中的數(shù)據(jù)的值為地址的存儲(chǔ)器中的數(shù)據(jù)傳送到傳送到R0 中。中。第二條指令將第二條指令將R0 的值傳送到以的值傳送到以R1 的值為地址的的值為地址的存儲(chǔ)器中。存儲(chǔ)器中。ARM的尋址模式4 基址變址尋址基址變址尋址基址變址尋址就是將寄存器該寄存器一般稱作基址寄存器基址變址尋址就是將寄存器該寄存器一般稱作基址寄存器的內(nèi)容與指令中給出的地址偏移量相加,從而得到一個(gè)操作數(shù)的的內(nèi)容與指令中給出的地址偏移量相
19、加,從而得到一個(gè)操作數(shù)的有效地址。變址尋址方式常用于訪問某基地址附近的地址單元。有效地址。變址尋址方式常用于訪問某基地址附近的地址單元。采用變址尋址方式的指令常見有以下幾種形式,如下所示:采用變址尋址方式的指令常見有以下幾種形式,如下所示:LDR R0,R1,4 ;R0R14LDR R0,R1,4! ;R0R14、R1R14LDR R0,R1 ,4 ;R0R1、R1R14LDR R0,R1,R2 ;R0R1R2在第一條指令中,將寄存器在第一條指令中,將寄存器R1 的內(nèi)容加上的內(nèi)容加上4 形成操作數(shù)的有效地形成操作數(shù)的有效地址,從而取得操作數(shù)存入寄存器址,從而取得操作數(shù)存入寄存器R0 中。中。在
20、第二條指令中,將寄存器在第二條指令中,將寄存器R1 的內(nèi)容加上的內(nèi)容加上4 形成操作數(shù)的有效地址,形成操作數(shù)的有效地址,從而取得操作數(shù)存入寄存器從而取得操作數(shù)存入寄存器R0 中,然后,中,然后,R1 的內(nèi)容自增的內(nèi)容自增4 個(gè)字個(gè)字節(jié)。節(jié)。ARM的尋址模式6.多寄存器尋址多寄存器尋址采用多寄存器尋址方式,一條指令可以完成多個(gè)寄存器值的采用多寄存器尋址方式,一條指令可以完成多個(gè)寄存器值的傳送。這種尋址方式可以用一條指令完成傳送最多傳送。這種尋址方式可以用一條指令完成傳送最多16 個(gè)通用寄存?zhèn)€通用寄存器的值。以下指令:器的值。以下指令:LDMIA R0,R1,R2,R3,R4 ;R1R0;R2R0
21、4;R3R08;R4R012該指令的后綴該指令的后綴IA 表示在每次執(zhí)行完加載表示在每次執(zhí)行完加載/存儲(chǔ)操作后,存儲(chǔ)操作后,R0 按按字長度增加,因而,指令可將連續(xù)存儲(chǔ)單元的值傳送到字長度增加,因而,指令可將連續(xù)存儲(chǔ)單元的值傳送到R1R4。ARM的尋址模式7.堆棧尋址堆棧尋址堆棧是一種數(shù)據(jù)結(jié)構(gòu),按先進(jìn)后出堆棧是一種數(shù)據(jù)結(jié)構(gòu),按先進(jìn)后出First In Last Out,F(xiàn)ILO的方式工作,使用一個(gè)稱作堆棧指針的專用寄存器指示當(dāng)?shù)姆绞焦ぷ?,使用一個(gè)稱作堆棧指針的專用寄存器指示當(dāng)前的操作位置,堆棧指針總是指向棧頂。前的操作位置,堆棧指針總是指向棧頂。當(dāng)堆棧指針指向最后壓入堆棧的數(shù)據(jù)時(shí),稱為滿堆棧當(dāng)
22、堆棧指針指向最后壓入堆棧的數(shù)據(jù)時(shí),稱為滿堆棧Full Stack),而當(dāng)堆棧指針指向下一個(gè)將要放入數(shù)據(jù)的空位置時(shí),稱),而當(dāng)堆棧指針指向下一個(gè)將要放入數(shù)據(jù)的空位置時(shí),稱為空堆棧為空堆棧Empty Stack)。同時(shí),根據(jù)堆棧的生成方式,又可)。同時(shí),根據(jù)堆棧的生成方式,又可以分為遞增堆棧以分為遞增堆棧Ascending Stack和遞減堆棧和遞減堆棧DecendingStack),當(dāng)堆棧由低地址向高地址生成時(shí),稱為),當(dāng)堆棧由低地址向高地址生成時(shí),稱為遞增堆棧,當(dāng)堆棧由高地址向低地址生成時(shí),稱為遞減堆棧。遞增堆棧,當(dāng)堆棧由高地址向低地址生成時(shí),稱為遞減堆棧。ARM指令集ARM指令集:跳轉(zhuǎn)指令
23、ARM 指令集中的跳轉(zhuǎn)指令可以完成從當(dāng)前指令向前或向后的32MB 的地址空間的跳轉(zhuǎn),包括以下4 條指令: B 跳轉(zhuǎn)指令 BL 帶返回的跳轉(zhuǎn)指令 BLX 帶返回和狀態(tài)切換的跳轉(zhuǎn)指令 BX 帶狀態(tài)切換的跳轉(zhuǎn)指令 ARM指令集:數(shù)據(jù)處理指令 傳送指令:傳送指令:MOV 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令MVN 數(shù)據(jù)取反傳送指令數(shù)據(jù)取反傳送指令比較指令:比較指令:CMP 比較指令比較指令CMN 反值比較指令反值比較指令TST 位測試指令位測試指令TEQ 相等測試指令相等測試指令算術(shù)指令:算術(shù)指令:ADD 加法指令加法指令A(yù)DC 帶進(jìn)位加法指令帶進(jìn)位加法指令SUB 減法指令減法指令SBC 帶借位減法指令帶借位減法
24、指令RSB 逆向減法指令逆向減法指令RSC 帶借位的逆向減法指令帶借位的逆向減法指令A(yù)ND 邏輯與指令邏輯與指令ORR 邏輯或指令邏輯或指令EOR 邏輯異或指令邏輯異或指令BIC 位清除指令位清除指令A(yù)RM指令集:乘法指令 乘法指令與乘加指令:MUL 32 位乘法指令MLA 32 位乘加指令SMULL 64 位有符號(hào)數(shù)乘法指令SMLAL 64 位有符號(hào)數(shù)乘加指令UMULL 64 位無符號(hào)數(shù)乘法指令UMLAL 64 位無符號(hào)數(shù)乘加指令A(yù)RM指令集:加載/存儲(chǔ)指令 單寄存器加載存儲(chǔ)指令:LDR 字?jǐn)?shù)據(jù)加載指令LDRB 字節(jié)數(shù)據(jù)加載指令LDRH 半字?jǐn)?shù)據(jù)加載指令STR 字?jǐn)?shù)據(jù)存儲(chǔ)指令STRB 字節(jié)數(shù)
25、據(jù)存儲(chǔ)指令STRH 半字?jǐn)?shù)據(jù)存儲(chǔ)指令LDRSB有符號(hào)的字節(jié)加載LDRSH有符號(hào)的半字加載多寄存器加載存儲(chǔ)指令:LDM 多字節(jié)加載指令STM 多字節(jié)存儲(chǔ)指令I(lǐng)A :每次傳送后地址+4IB :每次傳送前地址+4DA :每次傳送后地址-4DB :每次傳送前地址-4FD :滿遞減堆棧ED :空遞減堆棧FA :滿遞增堆棧EA :空遞增堆棧ARM指令集:程序狀態(tài)寄存器指令 ARM 微處理器支持程序狀態(tài)寄存器訪問指令,用于在程序狀態(tài)寄存器和通用寄存器之間傳送數(shù)據(jù),程序狀態(tài)寄存器訪問指令包括以下兩條:MRS 程序狀態(tài)寄存器到通用寄存器的數(shù)據(jù)傳送指令MSR 通用寄存器到程序狀態(tài)寄存器的數(shù)據(jù)傳送指令A(yù)RM指令集:
26、協(xié)處理器指令 ARM 的協(xié)處理器指令主要用于ARM 處理器初始化ARM 協(xié)處理器的數(shù)據(jù)處理操作,以及在ARM 處理器的寄存器和協(xié)處理器的寄存器之間傳送數(shù)據(jù),和在ARM 協(xié)處理器的寄存器和存儲(chǔ)器之間傳送數(shù)據(jù)。ARM 協(xié)處理器指令包括以下5 條:CDP 協(xié)處理器數(shù)操作指令LDC 協(xié)處理器數(shù)據(jù)加載指令STC 協(xié)處理器數(shù)據(jù)存儲(chǔ)指令MCR ARM 處理器寄存器到協(xié)處理器寄存器的數(shù)據(jù)傳送指令MRC 協(xié)處理器寄存器到ARM 處理器寄存器的數(shù)據(jù)傳送指令Thumb指令集為兼容數(shù)據(jù)總線寬度為16 位的應(yīng)用系統(tǒng),ARM 體系結(jié)構(gòu)除了支持執(zhí)行效率很高的32 位ARM指令集以外,同時(shí)支持16 位的Thumb 指令集。T
27、humb 指令集是ARM 指令集的一個(gè)子集,允許指令編碼為16 位的長度。與等價(jià)的32 位代碼相比較,Thumb 指令集在保留32 代碼優(yōu)勢的同時(shí),大大的節(jié)省了系統(tǒng)的存儲(chǔ)空間。所有的Thumb 指令都有對應(yīng)的ARM 指令,而且Thumb 的編程模型也對應(yīng)于ARM 的編程模型,Thumb 代碼所需的存儲(chǔ)空間約為ARM 代碼的6070Thumb 代碼使用的指令數(shù)比ARM 代碼多約3040若使用32 位的存儲(chǔ)器,ARM 代碼比Thumb 代碼快約40若使用16 位的存儲(chǔ)器,Thumb 代碼比ARM 代碼快約4050與ARM 代碼相比較,使用Thumb 代碼,存儲(chǔ)器的功耗會(huì)降低約30Thumb指令集1
28、、分支指令、分支指令程序相對轉(zhuǎn)移,特別是條件轉(zhuǎn)移與程序相對轉(zhuǎn)移,特別是條件轉(zhuǎn)移與ARM代碼下的轉(zhuǎn)移相比,在范圍上受代碼下的轉(zhuǎn)移相比,在范圍上受更多的限制,轉(zhuǎn)向子程序是無條件的轉(zhuǎn)移。更多的限制,轉(zhuǎn)向子程序是無條件的轉(zhuǎn)移。2、數(shù)據(jù)處理指令、數(shù)據(jù)處理指令數(shù)據(jù)處理指令是對通用寄存器進(jìn)行操作。在大多數(shù)情況下,操作的結(jié)果數(shù)據(jù)處理指令是對通用寄存器進(jìn)行操作。在大多數(shù)情況下,操作的結(jié)果須放入其中一個(gè)操作數(shù)寄存器中,而不是第三個(gè)寄存器中。須放入其中一個(gè)操作數(shù)寄存器中,而不是第三個(gè)寄存器中。數(shù)據(jù)處理操作比數(shù)據(jù)處理操作比ARM狀態(tài)的更少。狀態(tài)的更少。訪問寄存器訪問寄存器R8-R15外,收到一定的限制。外,收到一定的
29、限制。除除MOV和和ADD指令訪問器指令訪問器R8-R15外,其他數(shù)據(jù)處理指令總是更新外,其他數(shù)據(jù)處理指令總是更新CPSR中的中的ALU狀態(tài)標(biāo)志。狀態(tài)標(biāo)志。訪問寄存器訪問寄存器R8-R15的的THUMB數(shù)據(jù)處理指令不能更新數(shù)據(jù)處理指令不能更新CPSR中的中的ALU狀狀態(tài)標(biāo)志。態(tài)標(biāo)志。Thumb指令集3、單寄存器加載和存儲(chǔ)指令、單寄存器加載和存儲(chǔ)指令 在在thumb狀態(tài)下,單寄存器加載和存儲(chǔ)指令只能訪問寄存器狀態(tài)下,單寄存器加載和存儲(chǔ)指令只能訪問寄存器R0-R7。4、多寄存器加載和存儲(chǔ)指令、多寄存器加載和存儲(chǔ)指令LDM和和STM指令可以將任何范圍為指令可以將任何范圍為R0-R7的寄存器子集加載或
30、存儲(chǔ)。的寄存器子集加載或存儲(chǔ)。PUSH和和POP指令使用堆棧指令指令使用堆棧指令R13作為基址實(shí)現(xiàn)滿遞減堆棧。除作為基址實(shí)現(xiàn)滿遞減堆棧。除R0-R7外,外,PUSH指令還可以存儲(chǔ)連接寄存器指令還可以存儲(chǔ)連接寄存器R14,并且,并且POP指令可以加指令可以加載程序指令載程序指令PC。Thumb指令集沒有協(xié)處理器指令、信號(hào)量指令及訪問指令集沒有協(xié)處理器指令、信號(hào)量指令及訪問CPSR或或SPSR的的指令,沒有乘加指令及指令,沒有乘加指令及64位乘法指令等,且第二操作的數(shù)收到限制;位乘法指令等,且第二操作的數(shù)收到限制;l3.3 ARM實(shí)驗(yàn)箱介紹GX-ARM92410實(shí)驗(yàn)教學(xué)系統(tǒng)實(shí)驗(yàn)教學(xué)系統(tǒng)圖片圖片GX
31、-ARM92410實(shí)驗(yàn)教學(xué)系統(tǒng)實(shí)驗(yàn)教學(xué)系統(tǒng)結(jié)構(gòu)框圖結(jié)構(gòu)框圖GX-ARM92410實(shí)驗(yàn)教學(xué)系統(tǒng)實(shí)驗(yàn)教學(xué)系統(tǒng)電路框圖電路框圖 教學(xué)實(shí)驗(yàn)系統(tǒng)組成教學(xué)實(shí)驗(yàn)系統(tǒng)組成1lCPU S3C2410X:16-/32-bit RISC 微處理器,通過200P SODIMM插槽和主板相聯(lián)既可以采用S3C2410X的核心板,也可采用S3C2440400MHz核心板lBOOT ROM:支持三種啟動(dòng)方式 lSST 2M-byte lIntel StrataFlash 16M-byte可選) lSAMSUNG NAND flash 64M-byte/128M-byte (直接smart media card 啟動(dòng)) lSDRAM:64M-byte (32M-byte2) lTFT/STN 液晶和觸摸屏接口 :SHARP 3.5真彩TFT液晶屏 l3個(gè)通道的異步串口,其中一個(gè)可以切換為紅外IrDA接口 l兩個(gè)通道的USB接口,其中一個(gè)可以切換為HOST或DEVICE設(shè)備教學(xué)實(shí)驗(yàn)系統(tǒng)組成教學(xué)實(shí)驗(yàn)系統(tǒng)組成
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年企業(yè)供應(yīng)鏈物流外包項(xiàng)目協(xié)議
- 2025年債權(quán)讓與四方合同策劃范本
- 2025年倉庫管理員職責(zé)與待遇合同
- 2025年具有法律效力的個(gè)人投資對賭協(xié)議
- 2025年電子點(diǎn)火沼氣燈項(xiàng)目申請報(bào)告模范
- 2025年熱熔膠膠粉及膠粒項(xiàng)目規(guī)劃申請報(bào)告模范
- 2025年雙方教育合作框架協(xié)議
- 2025年冬季社會(huì)實(shí)踐活動(dòng)協(xié)議范本
- 2025年教育實(shí)踐基地聯(lián)盟發(fā)展與協(xié)作策劃協(xié)議
- 2025年生育保險(xiǎn)賠付條款示范性策劃協(xié)議
- GB 14907-2018鋼結(jié)構(gòu)防火涂料
- 塑膠件噴油作業(yè)指導(dǎo)書
- 人員安全行為觀察管理制度
- Pt催化劑ECSA計(jì)算方法
- 汽車運(yùn)行材料ppt課件(完整版)
- 我國油菜生產(chǎn)機(jī)械化技術(shù)(-119)
- 2022《化工裝置安全試車工作規(guī)范》精選ppt課件
- 吞咽障礙篩查表
- 汽車系統(tǒng)動(dòng)力學(xué)-輪胎動(dòng)力學(xué)
- 艾琳歆日內(nèi)交易2011-2月至4月份圖表
- 中國民航國內(nèi)航空匯編航路314系列航線
評(píng)論
0/150
提交評(píng)論