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

正文內(nèi)容

arm培訓(xùn)講義提綱-全文預(yù)覽

2025-06-01 22:20 上一頁面

下一頁面
  

【正文】 不存在于指令列表中,同時(shí)S=1(用戶頁傳輸)對(duì)于LDM 和STM指令,用戶頁中的寄存器被用于傳輸而不是當(dāng)前相應(yīng)模式下的寄存器。R15存在于指令列表中,同時(shí)S=1(模式改變),LDM指令如果指令為LDM,那么在R15被裝入的同時(shí)SPSR_mode被轉(zhuǎn)移到CPSR。 如果在W=0的情況下,基址寄存器Rn將保持其初始值0x1000,除非它也存在于寄存器列表中。寄存器列表的傳輸是根據(jù)從低到高的順序來進(jìn)行的,所以R15(如果在寄存器列表中)總是在最后進(jìn)行傳輸。依此類推。塊傳輸指令用于裝載(LDM)或存儲(chǔ)(STM) 當(dāng)前的可以使用的存儲(chǔ)器。有條件,將R0存儲(chǔ)地址中的內(nèi)容半字裝入R11中,并作符號(hào)擴(kuò)展HERE 。{!} 如果出現(xiàn)!寫回基本寄存器(見W位)例子LDRH R1,[R2,R3]! 。如果地址超出范圍,給出出錯(cuò)信息?!镏噶钪芷谡5腖DR(H、SH、SB)指令占用1S+1N+1I周期,LDR(H、SH、SB) PC占用2S+2N+1I周期,這里,S、N和I分別定義為順序(S周期)、非順序(N周期)和內(nèi)部(I周期)?!飻?shù)據(jù)中止:對(duì)存儲(chǔ)器管理系統(tǒng)而言,對(duì)合法地址的轉(zhuǎn)移也可能出現(xiàn)問題。注意:地址應(yīng)該是半字對(duì)齊的,如果A[0]=1,那么將引起無法預(yù)測的行為。如果A[0]=1,那么ARM920T將導(dǎo)入一個(gè)無法預(yù)測的值。BigEndian配置如果提供的地址是以字為邊界,則LDRSB指令期望數(shù)據(jù)總線上裝入的數(shù)據(jù)是31~24這樣的一個(gè)字節(jié)數(shù)據(jù);如果一個(gè)字地址加1,則通過數(shù)據(jù)總線上裝入23~16,以此類推。這個(gè)被選半字被放入目標(biāo)寄存器的低16位;對(duì)于其余的位,LDRSH作符號(hào)擴(kuò)展;LDRH填充0。這個(gè)被選字節(jié)被放入目標(biāo)寄存器的低8位,其余的位作符號(hào)擴(kuò)展。LDRSH指令裝載所選的字節(jié)到目的寄存器中的15 ~ 0 位,同時(shí)在高16位進(jìn)行符號(hào)擴(kuò)展。★有符號(hào)字節(jié)和半字裝載S 位控制符號(hào)擴(kuò)展數(shù)據(jù)的裝載。當(dāng)選擇后索引尋址時(shí),回寫位不應(yīng)該被置為高(即W=1)。偏移量的修改可以在基址寄存器被用于傳輸?shù)刂分埃ㄇ八饕齈=1)或之后(后索引P=0)關(guān)于尋址方式是增加還是減少模式,指令的W位(即D21)給出了可選項(xiàng)。轉(zhuǎn)移的存儲(chǔ)器地址由一個(gè)基本寄存器加上或減去一個(gè)偏移量計(jì)算得到。產(chǎn)生PC相對(duì)偏移尋址PLACE.PLACE★★8半字和有符號(hào)數(shù)據(jù)轉(zhuǎn)移(LDRH/STRH/LDRSB/LDRSH)該指令僅當(dāng)條件為真時(shí)執(zhí)行。在R2存儲(chǔ)R1,回寫地址R2+R4到R2LDR R1,[R2,16] 。這是一個(gè)相對(duì)的、預(yù)尋址地址PC。當(dāng)指定或隱含前索引尋址模式時(shí)不允許使用TRd 表示有效寄存器號(hào)Rn and Rm 表示寄存器號(hào)。直到系統(tǒng)軟件解決這個(gè)問題,然后指令重新開始執(zhí)行原程序。例:LDR R0,[R1],R1所以不能使用后尋址的LDR或STR指令,這里Rm是與Rn一樣的寄存器。不能將R15用作寄存器偏置(Rm)。一個(gè)字存儲(chǔ)(STR)應(yīng)產(chǎn)生一個(gè)字排列地址。但一個(gè)字邊界0或2的地址偏置會(huì)引起數(shù)據(jù)被循環(huán)進(jìn)入寄存器,所以偏置地址字節(jié)占用31~24位。參見圖21。一個(gè)字存儲(chǔ)(STR)應(yīng)產(chǎn)生一個(gè)字排列地址。一個(gè)字裝入(LDR)通常使用一個(gè)字排列地址。這個(gè)被選字節(jié)被放入目標(biāo)寄存器的底部8個(gè)位,并以0填充寄存器的其余位?!镒止?jié)和字:該指令級(jí)別可用于在ARM920T寄存器和存儲(chǔ)器之間轉(zhuǎn)移一個(gè)字節(jié)(B=1)或一個(gè)字(B=0)。因此前索引數(shù)據(jù)傳輸總是回寫到已經(jīng)修改的基址寄存器。當(dāng)U=1時(shí)基址寄存器Rn加上偏移量,而U=0時(shí)基址寄存器Rn減去偏移量。單數(shù)據(jù)傳輸指令用于裝載或存儲(chǔ)單字節(jié)數(shù)據(jù)或字?jǐn)?shù)據(jù)。匯編句法表4-7. 匯編程序句法描述這里:{cond} 雙字母條件助記符,見表4-4{S} 如果S出現(xiàn),置位條件碼RdLo, RdHi, Rm, Rs 除R15外的寄存器表達(dá)式例UMULL R1,R4,R2,R3 。 如果乘數(shù)操作數(shù)[31:8]位為全0或全1 如果乘數(shù)操作數(shù)[31:8]位為全0或全1N和Z標(biāo)志根據(jù)結(jié)果來置位(N為結(jié)果的bit63,Z被置位當(dāng)且僅當(dāng)全部64位為0時(shí))。 R15不能用作操作數(shù)或目標(biāo)寄存器。64位結(jié)果的低32位寫入RdLo,結(jié)果的高32位寫入RdHi。指令編碼見下圖4-12。m 執(zhí)行乘法所需的8位乘數(shù)陣列周期數(shù),由Rs指定的乘數(shù)操作數(shù)控制。★CPSR標(biāo)志:可任意置位CPSR的標(biāo)志位,它由指令中S位控制。2)如果操作數(shù)被當(dāng)作無符號(hào)的操作數(shù)A為4294967286,操作數(shù)B為20,結(jié)果為85899345720,即0x13FFFFFF38,所以最低32位為0xFFFFFF38。兩種指令形式均以有符號(hào)(兩種獨(dú)立)或無符號(hào)整數(shù)作操作數(shù)工作。指令編碼見下圖4-11。 SPSR_mode[31:28] Rm[31:28]MSR SPSR_flg,0xC0000000 。 CPSR[31:28] Rm[31:28]MSR CPSR_flg,0x50000000 。 CPSR[31:28] 0xA (set N,C。 MSR – 只將立即數(shù)轉(zhuǎn)移到PSR標(biāo)志位MSR{cond} psrf,expression應(yīng)當(dāng)用符號(hào)表示分別寫入N、Z、C和V標(biāo)志的最重要4位的32位數(shù)值。 MRS – 將PSR內(nèi)容轉(zhuǎn)移到寄存器MRS{cond} Rd,psr下列指令對(duì)N、Z、C和V標(biāo)志置位:MSR CPSR_flg,0xF0000000 。復(fù)制CPSRBIC R0,R0,0x1F 。為確保ARM920T和將來處理器之間的最大兼容性,應(yīng)當(dāng)遵守下列原則: 不能將R15指定為源或目的寄存器。在其它(特許)模式,整個(gè)CPSR均可改變。MSR指令允許將通用寄存器的內(nèi)容移入CPSR或SPSR_mode寄存器。從中斷返回,并從SPSR方式保存CPSR★★4PSR轉(zhuǎn)移(MRS、MSR):該指令僅當(dāng)條件為真時(shí)執(zhí)行,參見表4-4。測試R4等于3(S是多余的,由匯編程序自動(dòng)插入)SUB R4,R5,R7,LSR R2 。 MOV,MVN (單操作數(shù)指令).opcode{cond}{S} Rd,Op2不能使用TEQP指令,它是早期ARM處理器使用的TEQ指令:代替PSR轉(zhuǎn)移操作。如果指令中指定了移位量,PC為前8個(gè)字節(jié)。這允許自動(dòng)存儲(chǔ)PC和CPSR的狀態(tài)改變。這可以產(chǎn)生許多常數(shù),例如2的冪。如果字節(jié)中的值大于等于32,結(jié)果為上面所述移位的邏輯擴(kuò)展:1. LSL 32結(jié)果為零,進(jìn)位輸出等于Rm的0位;2. LSL大于32結(jié)果為零,進(jìn)位為零;3. LSR 32結(jié)果為零,進(jìn)位輸出等于Rm的31位;4. LSR大于32結(jié)果為零,進(jìn)位為零;5. ASR大于等于32結(jié)果和進(jìn)位等于Rm的31位;6. ROR 32結(jié)果等于Rm,進(jìn)位等于Rm的31位;7. ROR n結(jié)果和進(jìn)位與ROR n32相同,這里n大于32;因此不斷從n中減去32,直到n值在1~31之間,見前面。 圖4-9: 帶擴(kuò)展循環(huán)右移★指定偏移量寄存器只有Rs的最低端字節(jié)被用來確定偏移量。循環(huán)右移(ROR)操作是將邏輯右移操作中移出去的位再引入放置在結(jié)果的高端,在邏輯右移中常用零來填充高位。算術(shù)右移(ASR)與邏輯右移類似,不同的是高位被Rm的bit31填充而不是零。邏輯右移(LSR)指令類似,但是Rm的內(nèi)容被移到結(jié)果最不重要的位置。結(jié)果的最不重要位以零填充,Rm的最高位被丟棄,并不映射到結(jié)果中,除非當(dāng)ALU運(yùn)算處于邏輯狀態(tài)(見上面)時(shí),丟棄的最不重要的位變?yōu)閟hifter的進(jìn)位輸出,并可能鎖定CPSR的S位。寄存器要移動(dòng)的值可包含在指令的立即域中,或者在另一個(gè)寄存器(除了R15)。ARM數(shù)據(jù)處理指令見下表4-5表4-5:數(shù)據(jù)處理指令算術(shù)運(yùn)算(SUB、RSB、ADD、ADC、SBC、RSC、CMN)將每個(gè)操作數(shù)都看作是一個(gè)32位的整數(shù)(無符號(hào)或兩個(gè)獨(dú)立的符號(hào),兩種情況時(shí)一樣的)。確定的運(yùn)算(TST(OP1與OP2)、TEQ(OP1異或OP2)、CMP(OP1OP2)、CMN(OP1+OP2))不將結(jié)果寫入Rd。圖4-3:數(shù)據(jù)處理指令該指令通過對(duì)一或兩個(gè)操作數(shù)進(jìn)行指定的算術(shù)或邏輯運(yùn)算產(chǎn)生結(jié)果。 跳轉(zhuǎn),調(diào)用子程序ADDS R1,1 。等待,指令匯編成0xEAFFFFFE B there 。如果缺省,R14不受指令影響,即不將舊的PC值存入R14。注意CPSR不保留PC值,R14[1:0]總是清零。超過+/32M字節(jié)的分支必須使用偏置或事先裝入寄存器的絕對(duì)目標(biāo)。圖4-2:B、BL指令格式分支指令包含有一個(gè)有符號(hào)的2態(tài)補(bǔ)充24位偏移(相當(dāng)于25根地址線+符號(hào)位,即+/32M字節(jié))。分支并變回到ARM狀態(tài),R15(PC):=R0ALIGN 。產(chǎn)生分支目標(biāo)地址,bit0置位,進(jìn)入THUMB狀態(tài)BX R0 。當(dāng)執(zhí)行該指令時(shí),Rn[0]的值決定了是否按照ARM指令還是THUMB指令對(duì)指令流進(jìn)行解碼。下表4-4給出了條件碼概況:表4-4:ARM指令中的條件碼. ARM指令集詳解★★1分支與交換(BX指令,Branch和Exchange指令):該指令僅僅在條件為真時(shí)被執(zhí)行,參見表4-4。例如,Branch(B為匯編語言)變?yōu)锽EQ表示“Branch if Equal”,意思是當(dāng)Z標(biāo)志被置位時(shí)執(zhí)行Branch指令。不應(yīng)使用這些指令,因?yàn)樗鼈兊淖饔靡苍S會(huì)由未來的ARM執(zhí)行2. ARM指令集表:下面表4-表4-3列出了ARM指令集:表4-2:表4-2:ARM指令集表4-3:表4-3:ARM指令集3. 條件碼:在ARM狀態(tài)下,所有指令都會(huì)根據(jù)CPSR條件碼和指令條件域的狀態(tài)被有條件地執(zhí)行。內(nèi)核的結(jié)構(gòu)圖如下所示:下面我們將重點(diǎn)介紹ARM920T的協(xié)處理器CP15和內(nèi)存管理單元MMU. 協(xié)處理器CP15. 內(nèi)存管理單元MMU4. 軟件開發(fā)嵌入式系統(tǒng)的軟件開發(fā)包括:操作系統(tǒng)和應(yīng)用程序開發(fā)兩個(gè)方面。全世界各大廠商都采用ARM公司的IP來開發(fā)自己的ARM芯片,主要廠商有:三星、AD、TI、菲利普、Intel、CIRRUS LOGIC等。ARM公司不生產(chǎn)芯片,只是IP供應(yīng)商,只做設(shè)計(jì)。1) 處理器:速度、IO 設(shè)計(jì)指標(biāo)、處理器的軟件支持、處理器調(diào)試方式、處理器提供商的信譽(yù)度;2) 硬件部件:硬件實(shí)現(xiàn)難度、開發(fā)周期、市場前景、供貨情況3) 操作系統(tǒng):產(chǎn)品的適合度、調(diào)試難度、代碼結(jié)構(gòu)、可開發(fā)潛力、移植可行性4) 編程語言:高級(jí)語言、低級(jí)語言5) 軟件開發(fā)工具:系統(tǒng)調(diào)試功能如何、支持的庫函數(shù)、開發(fā)商的軟件支持3. 嵌入式處理器在以上的講義中我們簡要提到了嵌入式開發(fā)的各方面的問題,接下來我們將從硬件開始講解。2. 嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)作為一種新的系統(tǒng),我們應(yīng)該怎么把握呢?以下我們將簡要介紹一下嵌入式系統(tǒng)。ARM培訓(xùn)講義提綱單 位:西安電子科技大學(xué) 編 寫: 何方勇 編寫日期: 2005年7月1日 1. 緒言本次ARM培訓(xùn)主要使各位受訓(xùn)人員了解嵌入式操作系統(tǒng)的基本概念、軟硬件構(gòu)成框架、以及掌握與嵌入式操作系統(tǒng)相關(guān)的知識(shí)。在這幾個(gè)熱點(diǎn)技術(shù)的最終實(shí)現(xiàn)將被納入系統(tǒng)的概念,其中嵌入式系統(tǒng)將在里面伴有重要的角色。. 怎樣進(jìn)行嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)開發(fā)是本次培訓(xùn)的主要內(nèi)容,那我們應(yīng)該從以下方面入手:處理器、硬件部件、操作系統(tǒng)、編程語言、軟件開發(fā)工具、硬件開發(fā)平臺(tái)、軟件組成。其產(chǎn)品廣泛應(yīng)用到移動(dòng)通信、消費(fèi)電子、以及嵌入式市場。ARM9系列是當(dāng)今嵌入式系統(tǒng)應(yīng)用的主流芯片內(nèi)核技術(shù)。. ARM920T內(nèi)核詳解現(xiàn)在基于ARM920T內(nèi)核的芯片逐漸成為嵌入式系統(tǒng)芯片的主流,我們有必要詳解其結(jié)構(gòu);這是進(jìn)一步學(xué)習(xí)軟件開發(fā)的基礎(chǔ)。. ARM指令格式1. 指令集格式:ARM指令集格式如下表4-1所示: 表4-1:ARM指令集格式注意:某些指令碼沒有定義,但并不導(dǎo)致未定義指令陷阱出現(xiàn),例如一個(gè)乘法指令的第6位變?yōu)?。存在著16個(gè)可能條件,每種由復(fù)加在指令記憶符后的一個(gè)雙字符后綴表示。這意味著不管CPSR的條件碼是什么,指令永遠(yuǎn)被執(zhí)行。該指令也允許交換指令集。例:ADR R0, Into_THUMB + 1 。產(chǎn)生分支目標(biāo)到字排列地址,bit0置低,變回到ARMBX R5 。該指令的編碼如下圖4-2所示。該指令偏置必須考慮預(yù)取操作,它會(huì)引起程序計(jì)數(shù)器PC超前當(dāng)前指令2個(gè)字(8個(gè)字節(jié))。寫入R14的值被調(diào)整到允許預(yù)取,并包含緊跟著“分支與鏈接指令”的指令地址?!飬R編程序語法:{}中的內(nèi)容任意,中的內(nèi)容必須出現(xiàn)B{L}{cond} expression{L} 常用請求帶鏈接分支的指令形式。例here BAL here 。 為零,則跳轉(zhuǎn);反之,繼續(xù)下一個(gè)指令BL sub+ROM 。該指令編碼如下圖4-3所示。根據(jù)指令中S位的值,確定該指令的結(jié)果是否可以保護(hù)或更新CPSR中的條件碼。如果S位被置位(并且Rd不是R15,見下表),則CPSR中的V標(biāo)志不受影響,C標(biāo)志將被置位來執(zhí)行barrel shi
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1