版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、六、bootloader 外部中斷非向量中斷呼應(yīng)過程.六、bootloader 中斷向量表0 x00000018 .六、bootloader IsrIRQ中斷效力器程序IsrIRQsub sp,sp,#4 ; 保管 PC stmfd sp!,r8-r9 ;將r8,r9入棧ldr r9,=I_ISPR ;中斷存放器地址=r9ldr r9,r9 ;讀出中斷存放器I_ISPR的值,存入R9中mov r8,#0 x00 ;部分標(biāo)號(hào)movs r9,r9,lsr #1 ;LSR 邏輯右移bcs %F1 ; %F 向前搜索部分標(biāo)號(hào) 判別能否把置位Cadd r8,r8,#4;根據(jù)I_ISPR的值 b %B0;
2、判別該中斷在普通中斷向量表中的偏移量,存入R8 ;%B 向后搜索部分標(biāo)號(hào)1 ;部分標(biāo)號(hào)ldr r9,=HandleADC;HandleADC為普通中斷向量表的起始地址,add r9,r9,r8;起始地址+偏移地址實(shí)踐的中斷向量地址ldr r9,r9;取出中斷向量的值,即效力程序的地址str r9,sp,#8ldmfd sp!,r8-r9,pc;跳轉(zhuǎn)到普通中斷效力程序,開場(chǎng)執(zhí)行 .六、bootloader 普通中斷向量分配空間外部中斷包括的26種普通中斷的向量空間分配HandleADC # 4 HandleRTC#4 HandleUTXD1# 4 HandleUTXD0# 4 . . . . .
3、 . HandleEINT3 # 4 HandleEINT2 # 4 HandleEINT1 #4 HandleEINT0 # 4 ; .3.2 指令格式 一、ARM匯編言語(yǔ)組成1、匯編言語(yǔ)指令組成機(jī)器指令:ARM指令和Thumb指令;偽指令:宏指令:2、指令含義機(jī)器指令:可以被處置器直接執(zhí)行的指令偽指令:源程序匯編期間,由匯編程序執(zhí)行 的指令(定義段,定義變量等)宏指令: 是一段獨(dú)立的程序代碼,匯編時(shí)用宏體替代宏指令.3.2 指令格式 二、編碼格式1、ARM匯編指令格式(助記符格式)ARM匯編指令: ADDEQS R0,R1,R2; 該指令的編碼格式為: 312827252421201916
4、1512110condopcodeSRnRdop200000010100100010000000000000010.3.2 指令格式 二、編碼格式 S , 其中:是必選項(xiàng)是可選項(xiàng) 操作碼,如ADD表示算術(shù)加操作指令; 決議指令執(zhí)行的條件域;S 決議指令執(zhí)行能否影響CPSR存放器的值; 目的存放器; 第一個(gè)操作數(shù),為存放器; 第二個(gè)操作數(shù)。2、例如 指令 ADDEQS R1,R2,5 .二、編碼格式 3、條件域幾乎一切的ARM指令都可以根據(jù)當(dāng)前程序形狀存放器CPSR中標(biāo)志位的值,有條件地執(zhí)行。ARM指令的條件域有16種類型。 .二、編碼格式 3、條件域.二、編碼格式 3、條件域.三、 尋址方式
5、9種:立刻數(shù)尋址存放器尋址存放器移位尋址存放器間接尋址 基址變址尋址相對(duì)尋址 多存放器尋址 塊拷貝尋址 堆棧尋址 .三、 尋址方式 1、立刻數(shù)尋址在立刻數(shù)尋址中,操作數(shù)包含在指令中。稱此種操作數(shù)為立刻數(shù)。#后接0 x或&表示十六進(jìn)制數(shù)或0b表示二進(jìn)制數(shù)或0d或缺省表示十進(jìn)制數(shù)表示立刻數(shù)。例: ADD R0,R1,5; R0=R15 MOV R0,0 x55; R0=0 x55其中:操作數(shù)5,0 x55就是立刻數(shù),立刻數(shù)在指令中要以“為前綴,后面跟實(shí)踐數(shù)值。.三、 尋址方式 2、存放器尋址一切操作數(shù)都為存放器例: ADD R0,R1,R2; R0=R1R2 MOV R0,R1; R0=R1.三、
6、 尋址方式 3、存放器移位尋址操作數(shù)由存放器的數(shù)值做相應(yīng)移位而得到。移位的方式在指令中以助記符的方式給出,而移位的位數(shù)可用立刻數(shù)或存放器尋址方式表示。例: ADD R0,R1,R2,ROR 5 ;R0=R1R2循環(huán)右移5位 MOV R0,R1,LSL R3 ;R0=R1邏輯左移R3位移位操作在ARM指令集中不作為單獨(dú)的指令運(yùn)用,ARM指令集共有5種位移操作。.ARM指令集的5種位移操作LSL邏輯左移 :Rx,LSL LSR邏輯右移 : Rx,LSR ASR算術(shù)右移 :Rx,ASR ROR循環(huán)右移 :Rx,ROR RRX帶擴(kuò)展的循環(huán)右移:Rx,RRX .三、 尋址方式 4、存放器間接尋址存放器中
7、的值為操作數(shù)的物理地址,而實(shí)踐的操作數(shù)存放在此地址存儲(chǔ)器中。例: STR R0,R1;R1=R0 LDR R0,R1;R0=R1.三、 尋址方式 5、基址變址尋址將存放器稱為基址存放器的值與指令中給出的偏移地址量相加,所得結(jié)果作為操作數(shù)的物理地址。例: LDR R0,R1,5;R0=R1+5 LDR R0,R1,R2;R0=R1+R2.三、 尋址方式 6、相對(duì)尋址相對(duì)尋址同基址變址尋址類似,區(qū)別只是將程序計(jì)數(shù)器PC作為基址存放器,指令中的標(biāo)志作為地址偏移量。例: BEQ process1 process1 .三、 尋址方式 7、多存放器尋址在多存放器尋址方式中,一條指令可實(shí)現(xiàn)一組存放器值的傳送
8、。延續(xù)的存放器間用“銜接,否那么用“,分隔。例: LDMIA R0,R1-R5 ;R1=R0 ;R2=R0+4 ;R3=R0+8 ;R4=R0+12 ;R5=R0+16指令中IA表示在執(zhí)行完一次Load操作后,R0自增4。該指令將以R0為起始地址的5個(gè)字?jǐn)?shù)據(jù)分別裝入R1,R2,R3,R4,R5中。.三、 尋址方式 8、塊拷貝尋址塊拷貝尋址可實(shí)現(xiàn)延續(xù)地址數(shù)據(jù)從存儲(chǔ)器的某一位置拷貝到另一位置。例: LDR R0,=0 x40003000 LDR R1,=0 x40003200 LDMIA R0,R2-R6; STMIA R1,R2-R6;第一條指令從以R0的值為起始地址的存儲(chǔ)單元中取出5個(gè)字的數(shù)據(jù)
9、,第二條指令將取出的數(shù)據(jù)存入以R1的值為起始地址的存儲(chǔ)單元中。實(shí)踐上是多存放器尋址的組合。.三、 尋址方式 9、堆棧尋址堆棧:按照“后進(jìn)先出(“先進(jìn)后出)的原那么進(jìn)展數(shù)據(jù)存儲(chǔ)的特定區(qū)域。運(yùn)用專門的存放器堆棧指針SP(R13)指向堆棧棧頂。堆棧種類:向上增長(zhǎng):數(shù)據(jù)進(jìn)棧,堆棧指針遞增.向下增長(zhǎng):數(shù)據(jù)進(jìn)棧,堆棧指針遞減.滿堆棧:堆棧指針指向最后壓入堆棧的有效數(shù)據(jù)。空堆棧:堆棧指針指向下一個(gè)要壓入數(shù)據(jù)的地址。.三、 尋址方式 9、堆棧尋址滿遞增FA:數(shù)據(jù)進(jìn)棧,地址向上增長(zhǎng),堆棧指針指向含有有效數(shù)據(jù)的最高地址.滿遞減FD:數(shù)據(jù)進(jìn)棧,地址向下遞減,堆棧指針指向含有有效數(shù)據(jù)的最低地址.空遞增EA:數(shù)據(jù)進(jìn)棧,
10、地址向上增長(zhǎng),堆棧指針指向含有有效數(shù)據(jù)的最高地址的下一個(gè)字地址(空地址).空遞減ED:數(shù)據(jù)進(jìn)棧,地址向下增長(zhǎng),堆棧指針指向含有有效數(shù)據(jù)的最地地址的下一個(gè)字地址(空地址).三、 尋址方式 9、堆棧尋址堆棧尋址用于數(shù)據(jù)棧與存放器組之間批量數(shù)據(jù)傳輸。當(dāng)數(shù)據(jù)寫入和讀出內(nèi)存的順序不同時(shí),運(yùn)用堆棧尋址可以很好的處理這問題。例: STMFD R13!,R0,R1,R2,R3,R4; LDMFD R13!,R0,R1,R2,R3,R4第一條指令,將R0R4中的數(shù)據(jù)壓入堆棧,R13為堆棧指針;第二條指令,將數(shù)據(jù)出棧,恢復(fù)R0R4原先的值。.3.3 ARM指令集6種類型53種主要助記符 :數(shù)據(jù)處置指令22種主要助
11、記符跳轉(zhuǎn)指令4種主要助記符Load/Store指令16種主要助記符程序形狀存放器指令2種主要助記符協(xié)處置器指令5種主要助記符軟件中斷指令 2種主要助記符.一、數(shù)據(jù)處置指令1MOV 數(shù)據(jù)傳送指令格式:MOVS ,;功能:Rdop1op1可以是存放器、被移位的存放器或立刻數(shù)。例如:MOV R0,5;R0=5MOV R0,R1;R0=R1MOV R0,R1,LSL5;R0=R1左移5位 .一、數(shù)據(jù)處置指令2MVN 數(shù)據(jù)取反傳送指令格式:MVNS ,;功能:將op1表示的值傳送到目的存放器Rd中,但該值在傳送前被按位取反, Rd= !op1;op1可以是存放器、被移位的存放器或立刻數(shù)。例如:MVN R
12、0,0;R0=0 xFFFFFFFF .一、數(shù)據(jù)處置指令3ADD 加法指令格式:ADDS ,;功能:RdRn+op2op2可以是存放器,被移位的存放器或立刻數(shù)。例如:ADD R0,R1,5;R0=R1+5ADD R0,R1,R2;R0=R1+R2ADD R0,R1,R2,LSL5;R0=R1+R2左移5位 .一、數(shù)據(jù)處置指令4ADC 帶進(jìn)位加法指令格式:ADCS ,;功能:Rd=Rn+op2+carryop2可以是存放器、被移位的存放器或立刻數(shù);carry為進(jìn)位標(biāo)志值。該指令用于實(shí)現(xiàn)超越32位的數(shù)的加法。例如:第一個(gè)64位操作數(shù)存放在(R3,R2)中;第二個(gè)64位操作數(shù)存放在(R5,R4)中;
13、64位結(jié)果存放在(R1,R0)中。64位的加法可由以下語(yǔ)句實(shí)現(xiàn):ADDS R0,R2,R4;低32位相加,S表示結(jié)果影響條件標(biāo)志位的值A(chǔ)DC R1,R3,R5;高32位相加 .一、數(shù)據(jù)處置指令5SUB 減法指令格式:SUBS ,;功能:RdRn-op2op2可以是存放器、被移位的存放器或立刻數(shù)。例如:SUB R0,R1,5;R0=R1-5SUB R0,R1,R2;R0=R1-R2SUB R0,R1,R2,LSL5;R0=R1-R2左移5位 .一、數(shù)據(jù)處置指令6RSB 反向減法指令格式:RSBS ,;功能:同SUB指令,但倒換了兩操作數(shù)的前后位置,即Rdop2-Rn。例如:RSB R0,R1,5
14、;R0=5-R1RSB R0,R1,R2;R0=R2-R1RSB R0,R1,R2,LSL5;R0=R2左移5位-R1 .一、數(shù)據(jù)處置指令7SBC 帶借位減法指令格式:SBCS ,;功能:RdRn-op2-!carry解釋 op2可以是存放器、被移位的存放器或立刻數(shù)。 SUB和SBC生成進(jìn)位標(biāo)志的方式不同于常規(guī),假設(shè)需求借位那么去除進(jìn)位標(biāo)志,所以指令要對(duì)進(jìn)位標(biāo)志進(jìn)展一個(gè)非操作。運(yùn)用: 超越32位的減法運(yùn)算例如:兩個(gè)64位數(shù)相減第一個(gè)64位操作數(shù)存放在(R3,R2)中;第二個(gè)64位操作數(shù)存放在(R5,R4)中;64位結(jié)果存放在(R1,R0)中。64位的減法第一個(gè)操作數(shù)減去第二個(gè)操作數(shù)可由以下語(yǔ)句
15、實(shí)現(xiàn):程序SUBS R0,R2,R4;低32位相減,S表示結(jié)果影響條件標(biāo)志位的值SBC R1,R3,R5;高32位相減 .一、數(shù)據(jù)處置指令8RSC 帶借位的反向減法指令格式:RSCS ,;功能:同SBC指令,但倒換了兩操作數(shù)的前后位置,即Rdop2-Rn-!carry。例如:前提條件與SBC例子一樣,操作數(shù)1-操作數(shù)2的實(shí)現(xiàn)語(yǔ)句需改為:SUBS R0,R2,R4;低32位相減,S表示結(jié)果影響存放器CPSR的值RSC R1,R5,R3;高32位相減 .一、數(shù)據(jù)處置指令9MUL 32位乘法指令格式:MULS ,;功能:RdRnop2該指令根據(jù)S標(biāo)志,決議操作能否影響CPSR的值;其中op2必需為存
16、放器。Rn和op2的值為32位的有符號(hào)數(shù)或無符號(hào)數(shù)。例如:MULS R0,R1,R2;R0R1R2,結(jié)果影響存放器CPSR的N,Z位 .一、數(shù)據(jù)處置指令10MLA 32位乘加指令格式:MLAS ,;功能:RdRnop2+op3op2和op3必需為存放器。Rn、op2和op3的值為32位的有符號(hào)數(shù)或無符號(hào)數(shù)。例如:MLA R0,R1,R2,R3;R0R1R2+R3 .11SMULL 64位有符號(hào)數(shù)乘法指令格式: SMULLS ,;功能:Rdh RdlRnop2Rdh、Rdl和op2均為存放器。Rn和op2的值為32位的有符號(hào)數(shù)。例如:SMULL R0,R1,R2,R3;R0R2R3的低32位;R1R2R3的高32位 一、數(shù)據(jù)處置指令.12SMLAL 64位有符號(hào)數(shù)乘加指令格式: SMLALS ,;功能:Rdh RdlRnop2+Rdh RdlRdh、Rdl和op2均為存放器。Rn和op2的值為32位的有符號(hào)數(shù),Rdh Rdl的值為64位的加數(shù)。例如:SMLAL R0,R1,R2,R3;R0R2R3的低32位+R0;R1R2R3的高32位+R1 一、數(shù)據(jù)處置指令.13UMU
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年國(guó)際足球賽事場(chǎng)地租賃合同
- 2024年建筑施工勞務(wù)承包簡(jiǎn)約合同樣本
- 2024樁基礎(chǔ)工程專業(yè)分包合同模板
- 2024代理合同樣式
- 2024技術(shù)參股合作協(xié)議書
- 2024版藥品代理合同
- 二手房交易合同
- 店面承租協(xié)議書范本
- 2024項(xiàng)目開發(fā)全過程專項(xiàng)法律服務(wù)合同
- 2024常用合作合同范本
- 2023~2024學(xué)年第一學(xué)期高一期中考試數(shù)學(xué)試題含答案
- 2023年全國(guó)中學(xué)生英語(yǔ)能力競(jìng)賽初三年級(jí)組試題及答案
- (完整版)青年就業(yè)創(chuàng)業(yè)見習(xí)基地匯報(bào)材料(完整版)
- 月光(羽泉)原版五線譜鋼琴譜正譜樂譜.docx
- 660MW機(jī)組空預(yù)器聲波吹灰器可行性研究報(bào)告最新(精華版)
- 控制柜安裝施工方案
- 動(dòng)車組火災(zāi)檢測(cè)(報(bào)警)系統(tǒng)
- 水面垃圾自動(dòng)打撈船的設(shè)計(jì) (全套圖紙)
- 煙草企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化 規(guī)范
- 裝飾施工技術(shù)標(biāo)準(zhǔn)及要求
- 2018秋七年級(jí)虎外考試卷英語(yǔ)試卷
評(píng)論
0/150
提交評(píng)論