版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、回 顧.第六章 ARM根本指令集與尋址引見6.1 指令集的特征與功能6.2 ARM尋址方式6.3 ARM指令集編碼格式6.4 Thumb指令集.6.1 指令集的特征與功能.1 指令概念機器指令machine instruction指令集 Instruction Set.2. 機器指令要素每一個機器指令必需包含CPU執(zhí)行所需的全部信息取指令指令地址計算指令譯碼操作數(shù)地址計算數(shù)據(jù)操作操作數(shù)地址計算取操作數(shù)存操作數(shù)指令完成取下一條多操作數(shù)多結果CPU訪問存儲器或I/OCPU內部操作.2. 機器指令要素操作碼 opcode源操作數(shù)援用結果操作數(shù)援用下一指令援用做何操作?對誰做此操作?如何尋覓被操作數(shù)據(jù)
2、的存放器或存儲器位置?完成后到哪里去取下一個操作?.3. 機器指令的表示方法指令格式指令格式有多種表示方式:定長,變長,混合長度對于32位RISC處置器,普通采用定長格式的32位二進制碼。.4. 機器指令的表示方法采用符號表示法來描畫機器指令e.g. ADD, SUB,Load,Store。由編譯器完成符號二進制的轉換.5. 指令類型指令集必需充分,應允許用戶表達任何處置義務,可以表示任何高級言語的指令方式。E.g.一行簡單程序: X = X + Y設: X的內存位置513; Y的內存位置514;1.將內存513位置的值放入存放器reg_x; Load2.將內存514的值放到另一存放器reg_
3、y; Load3.將reg_y加到reg_x,將結果放入reg_x;ADD4.將結果值存入內存513位置; Store.典型分類指令舉例數(shù)據(jù)傳送Load,Store,Push,Pop算術Add,Sub,Mul,Div邏輯AND,OR,NOT,ShiftI/ORead,Write系統(tǒng)控制SWI(軟中斷),BKPT控制傳遞Jump,Return,NOP,6. 指令類型的根本分類.7. 指令集設計的關鍵環(huán)節(jié)指令集設計是計算機設計最有影響的方面根本設計出發(fā)點操作指令表數(shù)據(jù)類型指令格式存放器尋址方式應提供多少和怎樣的操作?對幾種數(shù)據(jù)類型完成操作?8位字節(jié)?32位字?64位雙字?指令位長度,地址數(shù)目,各字
4、段大小CPU存放器數(shù)目以及其用途指定操作數(shù)產(chǎn)生的方式.8. 操作數(shù)類型地址無符號整數(shù)32位數(shù)值整數(shù)或定點數(shù)浮點數(shù)十進制數(shù) BCDBinary Coded Decimal字符ASCII碼邏輯數(shù)據(jù).9. 操作類型典型分類CPU動作指令舉例數(shù)據(jù)傳送傳送數(shù)據(jù)到另一個位置Load,Store,Push,Pop算術ALU內完成功能設置條件代碼和標志Add,Sub,Mul,Div邏輯同算術指令AND,OR,NOT,ShiftI/O向I/O模塊發(fā)出命令Read,Write系統(tǒng)控制特權指令,保留給操作系統(tǒng)使用SWI(軟中斷),BKPT控制傳遞修改PC,以完成程序調用/返回,管理參數(shù)傳送Jump,Return,N
5、OP,.10. 匯編言語 舉例用機器言語編程語句N = I + J + K.6.2 ARM尋址方式.6.2.1 尋址方式.1. 尋址方式的思索為什么要采用多種尋址方式?根本尋址方式:立刻尋址直接尋址間接尋址存放器尋址存放器間接尋址偏移尋址堆棧尋址.2. RISC體系采用的指令集構造ISA有兩種ISA:Register-memoryRegister-RegisterRISC采用Register-RegiterLoad-Store.6.2.2 ARM處置器的尋址方式.1. 立刻尋址操作數(shù)直接經(jīng)過指令給出,數(shù)據(jù)包含在32位指令編碼中。32位有效立刻數(shù)經(jīng)過循環(huán)右移偶數(shù)位而間接得到舉例ADD R0,R0
6、,#1AND R8,R7,#0 xFFMOV R1,#0 x00012800.2. 存放器尋址利用存放器中的數(shù)值作為操作數(shù),指令中的地址碼給出的是存放器名第二操作數(shù)位存放器型時,可以選擇對第二操作數(shù)進展移位舉例ADD R0,R1,R2ADD R3,R2,R1,LSR #2ADD R3,R2,R1,LSR R4LSL,LSR,ASL,ASR,ROR,RRX.3. 存放器間接尋址ARM的數(shù)據(jù)傳送指令都是基于存放器間接尋址,經(jīng)過Load/Store完成對數(shù)據(jù)的操作。舉例LDR R0,R1STR R0,R1R0 mem32R1R0 mem32R1.4. 基址加偏址尋址變址尋址將基址存放器的內容與指令中
7、給出的偏移量相加,構成存儲器的有效地址,用于訪問基址附近的存儲器單元。偏移量不超越4KB指令編碼中Offset 為12位前變址,后變址,自動變址三種方式存放器間接尋址實踐是偏移量為0的基址加偏址尋址舉例LDR R0,R1,#4LDR R0,R1,#4!LDR R0,R1 ,#4LDR R0,R1,R2LDR R0,R1,R2,LSL,#2LDRB R0,R1LDRH R1,R0,#20前變址:R0 Mem32R1+4;自動變址:R0 Mem32R1+4 ;R1R1+4后變址:R0 Mem32R1;R1 R1+4;字節(jié)傳送:R0 Mem8R1半字傳送:R1 Mem16R0+20.5. 堆棧尋址S
8、tack是用于保管數(shù)據(jù)的一塊延續(xù)內存,按照FIFO或FILO順序存取指向堆棧的地址存放器成為堆棧指針SP對堆棧的訪問經(jīng)過堆棧指針R13指向堆棧區(qū)域來實現(xiàn)舉例STMFD SP!R1-R7,LRLDMFD SP!R1-R7,LR.6. 塊拷貝尋址是多存放器傳送指令LDM/STM的尋址方式,可以把內存中的數(shù)據(jù)塊加載到多個存放器中去。LDM/STM根據(jù)其后綴名,其尋址方式有所不同LDM/STM的后綴選擇舉例STMIA R9!,(R0,R1,R5)STMIB R9!,(R0,R1,R5)STMDA R9!,(R0,R1,R5)STMDB R9!,(R0,R1,R5).7. 相對尋址可以以為是基址為PC的
9、變址尋址,偏移量給出了目的地址于現(xiàn)行指令之間的相對位置。舉例 BL SUBR。SUBR MOV PC,R14 子程序入口地址前往轉移到SUBR.小 結.6.3 ARM指令集編碼與格式.1. ARM指令分類分類指令指令列舉數(shù)據(jù)處理ADD、ADC、SUB、RSB、SBC; MOV、MVN;AND、ORR、EOR、BIC;CMP、CMN;TST、TEQ;MUL、MLA、UMULL、UMLAL、SMULL、SMLAL數(shù)據(jù)傳送LDR、STR(單寄存器存取);LDM、STM(多寄存器存取);SWP(信號量)狀態(tài)寄存器訪問 MRS、MSR分支指令B、BL;BX、BLX;異常產(chǎn)生SWI(軟中斷產(chǎn)生);BKPT
10、(斷點指令);協(xié)處理器CDP;LDC、STC;MCR、MRC;.2. ARM指令編碼ARM指令編碼格式ARM條件編碼格式.3. 根本指令格式S,指令助記符可選條件碼;指令執(zhí)行條件可選后綴,可根據(jù)指令結果更新CPSR條件碼Rd:目的存放器;Rn:第一操作數(shù)存放器第2操作數(shù).3. 根本指令格式舉例LDR R0,R1BEQ DATAEVENADDS R2,R1,#1SUBNES R2,R1,#0 x20讀取R1地址上的內容,執(zhí)行條件AL總是條件執(zhí)行分支指令,執(zhí)行條件EQ,即相等那么跳轉加法指令:R2R1+1;影響CPSR的標志位條件執(zhí)行減法:R2 R1-0 x20;執(zhí)行條件NE,影響CPSR的標志位
11、NZCVIFTM4M3M2M1M0.4. 數(shù)據(jù)處置指令數(shù)據(jù)處理1.算術運算指令ADD、 SUB、 ADC、SBC 、 RSB、RSC ;2.邏輯運算指令AND、ORR、EOR、BIC;3. 比較指令CMP、CMN;4.測試指令TST、TEQ;5. 乘法指令MUL、MLA、UMULL、UMLAL、SMULL、SMLAL6. 數(shù)據(jù)傳送指令MOV、MVN;.4.1 乘法指令完成2個存放器的數(shù)據(jù)相乘。按照結果位寬可分成兩類:64位結果;僅保管最低有效32位。2種類型都有“乘-累加變形,即將成果延續(xù)相加成總和,且適用于無符號和有符號數(shù)乘法指令舉例MUL、乘(32位結果)Rd (Rm*Rs)31:0MLA
12、、乘-累加(32位結果)Rd (Rm*Rs+Rn)31:0UMULL、無符號數(shù)長乘RdHi:RdLo Rn * RsUMLAL、無符號數(shù)長乘-累加RdHi:RdLo += Rn * RsSMULL、符號數(shù)長乘RdHi:RdLo Rn * RsSMLAL符號數(shù)長乘-累加RdHi:RdLo += Rn * Rs.4.2 Load/Store 指令ARM處置器是Load/Store型的。將數(shù)據(jù)從存儲器中調入存放器中進展處置;處置完成后經(jīng)過存放器將結果存回到存儲器中I/O功能是經(jīng)過存儲器映射的可循之外圍存放器和終端輸入的組合來實現(xiàn)。在存儲器映射系統(tǒng)中,外設中的存放器被映射為存儲器的地址,對這些存放器的
13、操作方法與對存儲器的操作一樣處置器對外設的操作也是適用Load/Store指令經(jīng)過類似存儲器操作來完成。.4.2.1 單存放器存取指令LDR/STR傳送的數(shù)據(jù)可以是8位字節(jié)、16位半字或32位字可以適用7種尋址方式;可以適用自動變址尋址方式硬件支持指令格式前變址:LDR|STR B Rd,Rn, ! 后變址 LDR|STR B T Rd,Rn,相對PC變址 LDR|STR B Rd, LABELB表示傳送無符號字節(jié)還是字。缺省B=0為傳送字T標志位只能在非用戶方式即特權方式下運用。作用是選擇用戶角度的存儲器變換系統(tǒng)LDR/STR 舉例.4.2.2 多存放器存取指令LDM/STM可用一條指令將1
14、6個可見存放器的恣意子集存儲到內存或者相反。尋址方式遭到限制LDM/STM的兩種用途可允許OS加載或存儲用戶方式存放器來維護和恢復用戶處置形狀保管作業(yè)現(xiàn)場;可作為異常處置前往的一部分,完成從SPSR中恢復CPSR。多存放器存取指令方式指令舉例.4.3 形狀存放器與GPRs之間的 傳送MSR/MRSPSW到GPRs的傳送指令MRS;GPRs 到PSW的傳送指令MSR;修正PSW普通是經(jīng)過“讀-修正-寫3個步驟來完成。不能經(jīng)過該指令直接修正CPSR中的T位直接將程序形狀切換到Thumb形狀,而是必需經(jīng)過BX指令完成形狀切換。.4.4 異常中斷產(chǎn)生指令SWI指令用于產(chǎn)生SWI異常中斷,可以實如今用戶
15、方式下對OS中特權方式的程序調用。SWI代表“軟件中斷,用戶可經(jīng)過其調用系統(tǒng)例程,又被稱為監(jiān)控調用。它將處置器至于SVC監(jiān)控方式,從0 x08開場執(zhí)行指令。指令格式與舉例BKPT用于產(chǎn)生軟件斷點,供調試程序運用。用于軟件調試,使處置器停頓執(zhí)行正常指令而進入相應的調試程序。.6.4 Thumb指令.1. Thumb指令編碼格式.2. Thumb指令集特點16位指令編碼緊縮指令,在ARM的Pipeline中先動態(tài)解壓,再作為規(guī)范32位ARM指令執(zhí)行CPSR5位T決議指令流類型:T=1那么Thumb;Thumb指令集沒有協(xié)處置器、信號量、乘加、64位乘、形狀存放器等指令;指令均為無條件執(zhí)行,只需B指
16、令除外;采用2地址格式的數(shù)據(jù)處置指令;NZCVIFTM4M3M2M1M0.Thumb指令運用:Thumb指令功能受限,除非有嚴厲的指令空間的要求,普通很少運用。.小 結.10. 匯編言語 舉例用機器言語編程語句N = I + J + K假設:I,J,K變量初始化為2,3,4;N, I,J,K 4個變量的存儲位置從0 x201處開場;程序從位置0 x101處開場,由4條指令組成:將位置的內容裝入;將位置的內容加到;將位置的內容加到;將的內容存入位置;.8. 匯編言語 舉例地址內容10100100010000000011020001001000000010103000100100000001110
17、400110010000001002010000000000000010202000000000000001120300000000000001002040000000000000000地址內容10122011021202103120310432042010002202000320300042040000地址指令101LDA201102ADD202103ADD203104STA204201DAT2202DAT3203DAT4204DAT0標號操作操作數(shù)FORMULLDAIADDJADDKSTANIDATA2JDATA3KDATA4NDATA0二進制16進制符號程序匯編程序.1. 尋址方式的思索
18、指令格式中的地址字段通常是非常有限的,希望可以大范圍的訪問主存或虛擬存儲器。為了實現(xiàn)此目的,采用了各類尋址技術。各類尋址技術都涉及到如下兩方面的權衡:地址范圍和尋址靈敏性;存儲器援用數(shù)與地址計算的復雜性; .2. 幾種根本的尋址方式立刻尋址Opcode 操作數(shù)指 令.2. 幾種根本的尋址方式直接尋址Opcode A指 令操作數(shù)存儲器.2. 幾種根本的尋址方式間接尋址Opcode A指 令操作數(shù)存儲器.2. 幾種根本的尋址方式存放器尋址R 指 令操作數(shù)存放器組.2. 幾種根本的尋址方式存放器間接尋址R 指 令存放器組操作數(shù)存儲器.2. 幾種根本的尋址方式偏移尋址R 指 令存放器組操作數(shù)存儲器A
19、.2. 幾種根本的尋址方式堆棧尋址指 令棧頂隱含.6. LDM/STM指令后綴選擇IAIncrement After操作完成后地址遞增IB Increment Before地址遞增后完成操作DADecrement After操作完成后地址遞減DBDecrement Before地址遞減后完成操作EA Empty Increment 空遞增堆棧FDFull Decrement滿遞減堆棧EDEmpty Decrement空遞減堆棧FA Full Increment 滿遞增堆棧用于數(shù)據(jù)的存儲和讀取用于堆棧的操作.1. ARM指令集編碼.ARM指令集條件碼編碼.3.2 乘法指令舉例構成兩個矢量的標積:
20、Mov R11,#20Mov R10,#0LOOP LDR R0,R8,#4LDR R1,R9,#4MLA R10,R0,R1,R10SUBS R11,R11,#1BNE LOOP格式:UMLAL S RdHi,RdLo,Rm,RsE.g.UMLAL R4,R3,R2,R1R4:R3 R2 * R1初始化循環(huán)計數(shù)初始化總和讀取第一分量讀取第二分量乘積累加循環(huán)計數(shù)減一.4.1單存放器存取指令舉例LDR R8,R10LDRNE R1,R5,#960!STR R2,R9,#consta-strucLDR R1,localdataLDR R0,R1 ,R2,LSL #2LDRB R0,R2,#3LDR
21、 R1,R0,-R2,LSL #2STR R0, R7,# -8R8 R10有條件地R1R5+960,然后 R5R5+960常量表達式,-40954095加載一個字,該字位于標號Localdata所在位置先將R1指向的內存單元的數(shù)據(jù)讀入,再將R1 R1+R2x4將R2+3中的字節(jié)數(shù)據(jù)讀入R0,R0高24位置0將R0-R2x4處的數(shù)據(jù)讀到R1中,R0,R2中的值不變將R0的數(shù)據(jù)寫入到R7位置,再R7 R7-8.4.1 單存放器存取指令舉例編程中,經(jīng)常運用相對PC的方式將R0中的一個字存到外設中:LDR R1,UARTADDSTR R0,R1。UARTADD &1000000也經(jīng)常運用相對PC的方
22、式將外設中數(shù)據(jù)讀到R0中:LDR R1,UARTADDLDR R0,R1。UARTADD &1000000.4.2 多存放器存取指令指令方式LDM/STM Rn! 數(shù)據(jù)存取堆棧操作IA(Increment After)EA(Empty Aggrandizement )空遞增堆棧IB( Increment Before)FA(FullAggrandizement )滿遞增堆棧DA(Decrement After)ED(Empty Decrement)滿遞減堆棧DB(Decrement Before)FD(Full Decrement)滿遞減堆棧編號低的存放器在存儲數(shù)據(jù)或者加載數(shù)據(jù)時對應于存儲器的
23、低地址.4.2 多存放器存取指令舉例LDMIA R1,R0,R2,R5SRMDB R1!,R3-R6,R11,R12STMED SP!,R0-R7,LRR0 R1R2 R1+4R5 R1+8R1-4 R3R1-8 R4R1-12 R5R1-16 R6R1-20 R11R1-24 R12R1 R1-24現(xiàn)場保管:將R0R7,LR入棧R13 R0R13-4 R1。R13 R13-36.4.3.1 PSW到GPRs的傳送指令MRS三種情況下會運用:修正PSW內容。MRS用于將PSW內容讀到通用存放器中;異常中斷允許嵌套時,需求在進入中斷之后、嵌套中斷發(fā)生之前保管當前處置器方式對應的SPSR。這時要先讀出SPSR值,再用其它指令將其保管;當發(fā)生進程切換時,也需求保管當前存放器值。格式MRS Rd, CPSR|SPSR 舉例MRS R0,CPSRMRS R2,SPSR.4.3.2 GPRs 到PSW的傳送指令MSR當要保管或修正當前的CPSR/SPSR時,必需將這些內容先傳送到GPRs中進展
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度綠色出行解決方案民間擔保借款合同4篇
- 男方協(xié)議離婚書2025年度電子版制作與版權保護合同3篇
- 二零二五年度智能電網(wǎng)設備研發(fā)與銷售合同范本4篇
- 二零二五版內資股協(xié)議轉讓知識產(chǎn)權保護合同4篇
- 二零二五年度爬架租賃與施工現(xiàn)場環(huán)境保護合同2篇
- 2025年度城市公園綠地日常養(yǎng)護維修服務合同規(guī)范3篇
- 二零二五年度名筑印象住宅電梯品牌代理銷售合同4篇
- 二零二五年內蒙古文化旅游融合發(fā)展合同規(guī)范4篇
- 2025年度瓷磚鋪貼與新型建筑材料研發(fā)合同4篇
- 二零二五年度山莊生態(tài)旅游合作開發(fā)合同范本2篇
- 二零二五年度無人駕駛車輛測試合同免責協(xié)議書
- 2025年湖北華中科技大學招聘實驗技術人員52名歷年高頻重點提升(共500題)附帶答案詳解
- 高三日語一輪復習助詞「と」的用法課件
- 毛渣采購合同范例
- 無子女離婚協(xié)議書范文百度網(wǎng)盤
- 2023中華護理學會團體標準-注射相關感染預防與控制
- 五年級上冊小數(shù)遞等式計算200道及答案
- 2024年廣東高考政治真題考點分布匯 總- 高考政治一輪復習
- 燃氣管道年度檢驗報告
- GB/T 44052-2024液壓傳動過濾器性能特性的標識
- 國際市場營銷環(huán)境案例分析
評論
0/150
提交評論