freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

嵌入式系統(tǒng)應(yīng)用考點(diǎn)總結(jié)(中國礦業(yè)大學(xué)徐海學(xué)院信息10-(編輯修改稿)

2025-07-18 15:53 本頁面
 

【文章內(nèi)容簡介】 立即尋址指令中的操作碼字段后面的地址碼部分即是操作數(shù)本身,也就是說,數(shù)據(jù)就包含在指令當(dāng)中,取出指令也就取出了可以立即使用的操作數(shù)(這樣的數(shù)稱為立即數(shù))。立即尋址指令舉例如下: SUBS R0,R0,1 。R0減1,結(jié)果放入R0,并且影響標(biāo)志位MOV R0,0xFF000 。將立即數(shù)0xFF000裝入R0寄存器 n 寄存器移位尋址寄存器移位尋址是ARM指令集特有的尋址方式。當(dāng)?shù)?個(gè)操作數(shù)是寄存器移位方式時(shí),第2個(gè)寄存器操作數(shù)在與第1個(gè)操作數(shù)結(jié)合之前,選擇進(jìn)行移位操作。寄存器移位尋址指令舉例如下:MOV R0,R2,LSL 3 。R2的值左移3位,結(jié)果放入R0,即是R0=R28 ANDS R1,R1,R2,LSL R3 。R2的值左移R3位,然后和R1相“與”操作,結(jié)果放入R1n 寄存器間接尋址寄存器間接尋址指令中的地址碼給出的是一個(gè)通用寄存器的編號,所需的操作數(shù)保存在寄存器指定地址的存儲單元中,即寄存器為操作數(shù)的地址指針。寄存器間接尋址指令舉例如下: LDR R1,[R2] 。將R2指向的存儲單元的數(shù)據(jù)讀出,保存在R1中 SWP R1,R1,[R2] 。將寄存器R1的值和R2指定的存儲單元的內(nèi)容交換 n 基址尋址基址尋址就是將基址寄存器的內(nèi)容與指令中給出的偏移量(4K)相加/減,形成操作數(shù)的有效地址?;穼ぶ酚糜谠L問基址附近的存儲單元,常用于查表、數(shù)組操作、功能部件寄存器訪問等。寄存器間接尋址是偏移量為0的基址加偏移尋址?;穼ぶ分噶钆e例如下(前索引尋址): LDR R2,[R3,0x0C] 。讀取R3+0x0C地址上的存儲單元的內(nèi)容,放入R2 STR R1,[R0,4]! 。先R0=R04,然后把R0的值保存到R1指定的存儲單元 基址尋址指令舉例如下: LDR R0,[R1] ,4 。R0=[R1],R1=R1+4 。后索引基址尋址。ARM這種自動索引機(jī)制不消耗額外的時(shí)間LDR R0,[R1,R2] 。R0=[R1+R2]n 多寄存器尋址多寄存器尋址一次可傳送幾個(gè)寄存器值,允許一條指令傳送16個(gè)寄存器的任何子集或所有寄存器。多寄存器尋址指令舉例如下: LDMIA R1!,{R2R7,R12}。將R1指向的單元中的數(shù)據(jù)讀出到。R2~RR12中(R1自動加4) STMIA R0!,{R2R7,R12} 。將寄存器R2~RR12的值保存到R0指向的存儲單元中 。(R0自動加4)n 堆棧尋址堆棧是一個(gè)按特定順序進(jìn)行存取的存儲區(qū),操作順序?yàn)椤昂筮M(jìn)先出” 。堆棧尋址是隱含的,它使用一個(gè)專門的寄存器(堆棧指針)指向一塊存儲區(qū)域(堆棧),指針?biāo)赶虻拇鎯卧词嵌褩5臈m敗4鎯ζ鞫褩?煞譃閮煞N:向上生長:向高地址方向生長,稱為遞增堆棧 向下生長:向低地址方向生長,稱為遞減堆棧堆棧指針指向最后壓入的堆棧的有效數(shù)據(jù)項(xiàng),稱為滿堆棧;堆棧指針指向下一個(gè)待壓入數(shù)據(jù)的空位置,稱為空堆棧。 所以可以組合出四種類型的堆棧方式:167。 滿遞增:堆棧向上增長,堆棧指針指向內(nèi)含有效數(shù)據(jù)項(xiàng)的最高地址。指令如LDMFA、STMFA等; 167。 空遞增:堆棧向上增長,堆棧指針指向堆棧上的第一個(gè)空位置。指令如LDMEA、STMEA等; 167。 滿遞減:堆棧向下增長,堆棧指針指向內(nèi)含有效數(shù)據(jù)項(xiàng)的最低地址。指令如LDMFD、STMFD等;167。 空遞減:堆棧向下增長,堆棧指針向堆棧下的第一個(gè)空位置。指令如LDMED、STMED等。 n 塊拷貝尋址多寄存器傳送指令用于將一塊數(shù)據(jù)從存儲器的某一位置拷貝到另一位置。 如:STMIA R0!,{R1R7} 。將R1~R7的數(shù)據(jù)保存到存儲器中。 。存儲指針R0在保存第一個(gè)值之后增加, 。增長方向?yàn)橄蛏显鲩L。STMIB R0!,{R1R7} 。將R1~R7的數(shù)據(jù)保存到存儲器中。 。存儲指針R0在保存第一個(gè)值之前增加, 。增長方向?yàn)橄蛏显鲩L。 n 尋址方式分類——相對尋址相對尋址是基址尋址的一種變通。由程序計(jì)數(shù)器PC提供基準(zhǔn)地址,指令中的地址碼字段作為偏移量,兩者相加后得到的地址即為操作數(shù)的有效地址。相對尋址指令舉例如下: BL SUBR1 。調(diào)用到SUBR1子程序 BEQ LOOP 。條件跳轉(zhuǎn)到LOOP標(biāo)號處 ...LOOP MOV R6,1 ...SUBR1 ... 簡單的ARM程序 Load/Store指令? ARM指令集– 存儲器訪問指令– 數(shù)據(jù)處理指令– ARM分支指令– 雜項(xiàng)指令n 存儲器訪問指令A(yù)RM處理器是典型的RISC處理器,對存儲器的訪問只能使用加載和存儲指令實(shí)現(xiàn)。RAM存儲空間及I/O映射空間統(tǒng)一編址,除對RAM操作以外,對外圍IO、程序數(shù)據(jù)的訪問均要通過加載/存儲指令進(jìn)行。加載(Load):存儲器中的數(shù)據(jù)傳送到寄存器;存儲(Store):寄存器中的數(shù)據(jù)傳送到存儲器;存儲器訪問指令分為單寄存器操作指令、多寄存器操作指令、數(shù)據(jù)交換指令。LDR/STR指令用于對內(nèi)存變量的訪問、內(nèi)存緩沖區(qū)數(shù)據(jù)的訪問、查表、外圍部件的控制操作等。若使用LDR指令加載數(shù)據(jù)到PC寄存器,則實(shí)現(xiàn)程序跳轉(zhuǎn)功能,這樣也就實(shí)現(xiàn)了程序散轉(zhuǎn)。 所有單寄存器加載/存儲指令可分為“字和無符號字節(jié)加載存儲指令”和“半字和有符號字節(jié)加載存儲指令。ARM存儲器訪問指令——單寄存器存儲⑴LDR和STR——字和無符號字節(jié)加載/存儲指令LDR指令用于從內(nèi)存中讀取單一字或字節(jié)數(shù)據(jù)存入寄存器中,STR指令用于將寄存器中的單一字或字節(jié)數(shù)據(jù)保存到內(nèi)存。指令格式如下:LDR{cond}{T} Rd,地址 。將指定地址上的字?jǐn)?shù)據(jù)讀入Rd STR{cond}{T} Rd,地址 。將Rd中的字?jǐn)?shù)據(jù)存入指定地址 LDR{cond}B{T} Rd,地址 。將指定地址上的字節(jié)數(shù)據(jù)讀入Rd STR{cond}B{T} Rd,地址 。將Rd中的字節(jié)數(shù)據(jù)存入指定地址其中,T為可選后綴。若指令有T,那么即使處理器是在特權(quán)模式下,存儲系統(tǒng)也將訪問看成是在用戶模式下進(jìn)行的。T在用戶模式下無效,不能與前索引偏移一起使用T。 LDR和STR——字和無符號字節(jié)加載/存儲指令編碼LDR/STR指令尋址非常靈活,它由兩部分組成,其中一部分為一個(gè)基址寄存器,可以為任一個(gè)通用寄存器;另一部分為一個(gè)地址偏移量。地址偏移量有以下3種格式: 167。 立即數(shù)。立即數(shù)可以是一個(gè)無符號的數(shù)值。這個(gè)數(shù)據(jù)可以加到基址寄存器,也可以從基址寄存器中減去這個(gè)數(shù)值。 如:LDR R1,[R0,0x12] ;R1[R0+0x12]167。 寄存器。寄存器中的數(shù)值可以加到基址寄存器,也可以從基址寄存器中減去這個(gè)數(shù)值。 如: LDR R1,[R0,R2] 。 R1[R0+R2] LDR R1,[R0,R2] 。 R1[R0R2]167。 寄存器及移位常數(shù)。寄存器移位后的值可以加到基址寄存器,也可以從基址寄存器中減去這個(gè)數(shù)值。 如:LDR R1,[R0,R2,LSL 2] 。R1[R0+R2*4] 從尋址方式的地址計(jì)算方法分,加載/存儲指令有以下4種格式: 167。 零偏移。 如:LDR Rd,[Rn] 167。 前索引偏移。 如:LDR Rd,[Rn,0x04]!167。 程序相對偏移。 如:LDR Rd,labe1 167。 后索引偏移。 如:LDR Rd,[Rn],0x04注意:必須保證字?jǐn)?shù)據(jù)操作的地址是32位對齊的。2 LDR和STR——半字和有符號字節(jié)加載/存儲指令這類LDR/STR指令可加載有符號半字或字節(jié),可加載/存儲無符號半字。偏移量格式、尋址方式與加載/存儲字和無符號字節(jié)指令相同。 LDR{cond}SB Rd,地址 。將指定地址上的有符號字節(jié)讀入Rd LDR{cond}SH Rd,地址 。將指定地址上的有符號半字讀入Rd LDR{cond}H Rd,地址 。將指定地址上的半字?jǐn)?shù)據(jù)讀入Rd STR{cond}H Rd,地址 。將Rd中的半字?jǐn)?shù)據(jù)存入指定地址注意:,無符號半字加載是指用零擴(kuò)展到32位;,否則將產(chǎn)生不可靠的結(jié)果;LDR和STR——半字和有符號字節(jié)加載/存儲指令編碼LDR和STR指令應(yīng)用示例:LDR R2,[R5] 。將R5指向地址的字?jǐn)?shù)據(jù)存入R2STR R1,[R0,0x04] 。將R1的數(shù)據(jù)存儲到R0+0x04地址LDRB R3,[R2],1 。將R2指向地址的字節(jié)數(shù)據(jù)存入R3,R2=R2-1STRB R0,[R3,R8 ASR #2] 。R0[R3R8/4],存儲R0的最低有效字節(jié)LDRSB R1,[R0,R3] 。將R0+R3地址上的字節(jié)數(shù)據(jù)存入R1,高24位用符號擴(kuò)展LDRH R6,[R2],2 。將R2指向地址的半字?jǐn)?shù)據(jù)存入R6,高16位用0擴(kuò)展 。讀出后,R2=R2+2STRH R1,[R0,2]! 。將R1的半字?jǐn)?shù)據(jù)保存到R0+2地址,⑶LDR和STR 雙字:加載/存儲兩個(gè)相鄰的寄存器,64位雙字。其句法有4種:Op {cond}D Rd,[Rn] 零偏移Op {cond}D Rd,[Rn,offset] {!} 前索引偏移Op {cond}D Rd,label 程序相對偏移Op {cond}D {T} Rd,[Rn],offset 后索引偏移其中:Rd 加載/存儲寄存器中的一個(gè),另一個(gè)是R(d+1)。Rd必須是偶數(shù)寄存器,且不是R14。Rn 除非指令為零偏移,或不帶寫回的前索引,否則,Rn不允許與Rd和R(d+1)相同。label label必須是在當(dāng)前指令的上下252字節(jié)范圍內(nèi)。例如:LDRD R6,[R11] ;R6←[R11],R7←[R11+4]STRD R4,[R9,24] ;R4→[R9+24],R5→[R9+28]ARM存儲器訪問指令——多寄存器存取多寄存器加載/存儲指令可以實(shí)現(xiàn)在一組寄存器和一塊連續(xù)的內(nèi)存單元之間傳輸數(shù)據(jù)。LDM為加載多個(gè)寄存器;STM為存儲多個(gè)寄存器。允許一條指令傳送16個(gè)寄存器的任何子集或所有寄存器。它們主要用于現(xiàn)場保護(hù)、數(shù)據(jù)復(fù)制、常數(shù)傳遞等。多寄存器加載/存儲指令格式如下: LDM{cond}模式 Rn{!},reglist{^} STM{cond}模式 Rn{!},reglist{^}167。 cond:指令執(zhí)行的條件;167。 模式:控制地址的增長方式,一共有8種模式;167。 !:表示在操作結(jié)束后,將最后的地址寫
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1