版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、六、bootloader 外部中斷非向量中斷呼應過程.六、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 ;部分標號movs r9,r9,lsr #1 ;LSR 邏輯右移bcs %F1 ; %F 向前搜索部分標號 判別能否把置位Cadd r8,r8,#4;根據(jù)I_ISPR的值 b %B0;
2、判別該中斷在普通中斷向量表中的偏移量,存入R8 ;%B 向后搜索部分標號1 ;部分標號ldr r9,=HandleADC;HandleADC為普通中斷向量表的起始地址,add r9,r9,r8;起始地址+偏移地址實踐的中斷向量地址ldr r9,r9;取出中斷向量的值,即效力程序的地址str r9,sp,#8ldmfd sp!,r8-r9,pc;跳轉(zhuǎn)到普通中斷效力程序,開場執(zhí)行 .六、bootloader 普通中斷向量分配空間外部中斷包括的26種普通中斷的向量空間分配HandleADC # 4 HandleRTC#4 HandleUTXD1# 4 HandleUTXD0# 4 . . . . .
3、 . HandleEINT3 # 4 HandleEINT2 # 4 HandleEINT1 #4 HandleEINT0 # 4 ; .3.2 指令格式 一、ARM匯編言語組成1、匯編言語指令組成機器指令:ARM指令和Thumb指令;偽指令:宏指令:2、指令含義機器指令:可以被處置器直接執(zhí)行的指令偽指令:源程序匯編期間,由匯編程序執(zhí)行 的指令(定義段,定義變量等)宏指令: 是一段獨立的程序代碼,匯編時用宏體替代宏指令.3.2 指令格式 二、編碼格式1、ARM匯編指令格式(助記符格式)ARM匯編指令: ADDEQS R0,R1,R2; 該指令的編碼格式為: 312827252421201916
4、1512110condopcodeSRnRdop200000010100100010000000000000010.3.2 指令格式 二、編碼格式 S , 其中:是必選項是可選項 操作碼,如ADD表示算術加操作指令; 決議指令執(zhí)行的條件域;S 決議指令執(zhí)行能否影響CPSR存放器的值; 目的存放器; 第一個操作數(shù),為存放器; 第二個操作數(shù)。2、例如 指令 ADDEQS R1,R2,5 .二、編碼格式 3、條件域幾乎一切的ARM指令都可以根據(jù)當前程序形狀存放器CPSR中標志位的值,有條件地執(zhí)行。ARM指令的條件域有16種類型。 .二、編碼格式 3、條件域.二、編碼格式 3、條件域.三、 尋址方式
5、9種:立刻數(shù)尋址存放器尋址存放器移位尋址存放器間接尋址 基址變址尋址相對尋址 多存放器尋址 塊拷貝尋址 堆棧尋址 .三、 尋址方式 1、立刻數(shù)尋址在立刻數(shù)尋址中,操作數(shù)包含在指令中。稱此種操作數(shù)為立刻數(shù)。#后接0 x或&表示十六進制數(shù)或0b表示二進制數(shù)或0d或缺省表示十進制數(shù)表示立刻數(shù)。例: ADD R0,R1,5; R0=R15 MOV R0,0 x55; R0=0 x55其中:操作數(shù)5,0 x55就是立刻數(shù),立刻數(shù)在指令中要以“為前綴,后面跟實踐數(shù)值。.三、 尋址方式 2、存放器尋址一切操作數(shù)都為存放器例: ADD R0,R1,R2; R0=R1R2 MOV R0,R1; R0=R1.三、
6、 尋址方式 3、存放器移位尋址操作數(shù)由存放器的數(shù)值做相應移位而得到。移位的方式在指令中以助記符的方式給出,而移位的位數(shù)可用立刻數(shù)或存放器尋址方式表示。例: ADD R0,R1,R2,ROR 5 ;R0=R1R2循環(huán)右移5位 MOV R0,R1,LSL R3 ;R0=R1邏輯左移R3位移位操作在ARM指令集中不作為單獨的指令運用,ARM指令集共有5種位移操作。.ARM指令集的5種位移操作LSL邏輯左移 :Rx,LSL LSR邏輯右移 : Rx,LSR ASR算術右移 :Rx,ASR ROR循環(huán)右移 :Rx,ROR RRX帶擴展的循環(huán)右移:Rx,RRX .三、 尋址方式 4、存放器間接尋址存放器中
7、的值為操作數(shù)的物理地址,而實踐的操作數(shù)存放在此地址存儲器中。例: STR R0,R1;R1=R0 LDR R0,R1;R0=R1.三、 尋址方式 5、基址變址尋址將存放器稱為基址存放器的值與指令中給出的偏移地址量相加,所得結果作為操作數(shù)的物理地址。例: LDR R0,R1,5;R0=R1+5 LDR R0,R1,R2;R0=R1+R2.三、 尋址方式 6、相對尋址相對尋址同基址變址尋址類似,區(qū)別只是將程序計數(shù)器PC作為基址存放器,指令中的標志作為地址偏移量。例: BEQ process1 process1 .三、 尋址方式 7、多存放器尋址在多存放器尋址方式中,一條指令可實現(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個字數(shù)據(jù)分別裝入R1,R2,R3,R4,R5中。.三、 尋址方式 8、塊拷貝尋址塊拷貝尋址可實現(xiàn)延續(xù)地址數(shù)據(jù)從存儲器的某一位置拷貝到另一位置。例: LDR R0,=0 x40003000 LDR R1,=0 x40003200 LDMIA R0,R2-R6; STMIA R1,R2-R6;第一條指令從以R0的值為起始地址的存儲單元中取出5個字的數(shù)據(jù)
9、,第二條指令將取出的數(shù)據(jù)存入以R1的值為起始地址的存儲單元中。實踐上是多存放器尋址的組合。.三、 尋址方式 9、堆棧尋址堆棧:按照“后進先出(“先進后出)的原那么進展數(shù)據(jù)存儲的特定區(qū)域。運用專門的存放器堆棧指針SP(R13)指向堆棧棧頂。堆棧種類:向上增長:數(shù)據(jù)進棧,堆棧指針遞增.向下增長:數(shù)據(jù)進棧,堆棧指針遞減.滿堆棧:堆棧指針指向最后壓入堆棧的有效數(shù)據(jù)??斩褩?堆棧指針指向下一個要壓入數(shù)據(jù)的地址。.三、 尋址方式 9、堆棧尋址滿遞增FA:數(shù)據(jù)進棧,地址向上增長,堆棧指針指向含有有效數(shù)據(jù)的最高地址.滿遞減FD:數(shù)據(jù)進棧,地址向下遞減,堆棧指針指向含有有效數(shù)據(jù)的最低地址.空遞增EA:數(shù)據(jù)進棧,
10、地址向上增長,堆棧指針指向含有有效數(shù)據(jù)的最高地址的下一個字地址(空地址).空遞減ED:數(shù)據(jù)進棧,地址向下增長,堆棧指針指向含有有效數(shù)據(jù)的最地地址的下一個字地址(空地址).三、 尋址方式 9、堆棧尋址堆棧尋址用于數(shù)據(jù)棧與存放器組之間批量數(shù)據(jù)傳輸。當數(shù)據(jù)寫入和讀出內(nèi)存的順序不同時,運用堆棧尋址可以很好的處理這問題。例: STMFD R13!,R0,R1,R2,R3,R4; LDMFD R13!,R0,R1,R2,R3,R4第一條指令,將R0R4中的數(shù)據(jù)壓入堆棧,R13為堆棧指針;第二條指令,將數(shù)據(jù)出棧,恢復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 帶進位加法指令格式:ADCS ,;功能:Rd=Rn+op2+carryop2可以是存放器、被移位的存放器或立刻數(shù);carry為進位標志值。該指令用于實現(xiàn)超越32位的數(shù)的加法。例如:第一個64位操作數(shù)存放在(R3,R2)中;第二個64位操作數(shù)存放在(R5,R4)中;
13、64位結果存放在(R1,R0)中。64位的加法可由以下語句實現(xiàn):ADDS R0,R2,R4;低32位相加,S表示結果影響條件標志位的值ADC 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生成進位標志的方式不同于常規(guī),假設需求借位那么去除進位標志,所以指令要對進位標志進展一個非操作。運用: 超越32位的減法運算例如:兩個64位數(shù)相減第一個64位操作數(shù)存放在(R3,R2)中;第二個64位操作數(shù)存放在(R5,R4)中;64位結果存放在(R1,R0)中。64位的減法第一個操作數(shù)減去第二個操作數(shù)可由以下語句
15、實現(xiàn):程序SUBS R0,R2,R4;低32位相減,S表示結果影響條件標志位的值SBC R1,R3,R5;高32位相減 .一、數(shù)據(jù)處置指令8RSC 帶借位的反向減法指令格式:RSCS ,;功能:同SBC指令,但倒換了兩操作數(shù)的前后位置,即Rdop2-Rn-!carry。例如:前提條件與SBC例子一樣,操作數(shù)1-操作數(shù)2的實現(xiàn)語句需改為:SUBS R0,R2,R4;低32位相減,S表示結果影響存放器CPSR的值RSC R1,R5,R3;高32位相減 .一、數(shù)據(jù)處置指令9MUL 32位乘法指令格式:MULS ,;功能:RdRnop2該指令根據(jù)S標志,決議操作能否影響CPSR的值;其中op2必需為存
16、放器。Rn和op2的值為32位的有符號數(shù)或無符號數(shù)。例如:MULS R0,R1,R2;R0R1R2,結果影響存放器CPSR的N,Z位 .一、數(shù)據(jù)處置指令10MLA 32位乘加指令格式:MLAS ,;功能:RdRnop2+op3op2和op3必需為存放器。Rn、op2和op3的值為32位的有符號數(shù)或無符號數(shù)。例如:MLA R0,R1,R2,R3;R0R1R2+R3 .11SMULL 64位有符號數(shù)乘法指令格式: SMULLS ,;功能:Rdh RdlRnop2Rdh、Rdl和op2均為存放器。Rn和op2的值為32位的有符號數(shù)。例如:SMULL R0,R1,R2,R3;R0R2R3的低32位;R1R2R3的高32位 一、數(shù)據(jù)處置指令.12SMLAL 64位有符號數(shù)乘加指令格式: SMLALS ,;功能:Rdh RdlRnop2+Rdh RdlRdh、Rdl和op2均為存放器。Rn和op2的值為32位的有符號數(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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)力作用知識點課件
- 影樓元旦活動方案策劃(3篇)
- 牛奶刨冰活動方案策劃(3篇)
- 甲方廠區(qū)物業(yè)管理制度(3篇)
- 質(zhì)量管理制度與執(zhí)行(3篇)
- 鉗工班組工具管理制度(3篇)
- 《GA 1052.5-2013警用帳篷 第5部分:60m2單帳篷》專題研究報告深度
- 《GA 674-2007警用服飾 絲織胸徽》專題研究報告
- 2026年及未來5年市場數(shù)據(jù)中國消費品檢測行業(yè)市場深度分析及發(fā)展趨勢預測報告
- 2026年及未來5年市場數(shù)據(jù)中國智慧商城建設行業(yè)市場競爭格局及發(fā)展趨勢預測報告
- 郵政服務操作流程與規(guī)范(標準版)
- 2026昆山鈔票紙業(yè)有限公司校園招聘15人備考題庫及1套完整答案詳解
- 2026年重慶市江津區(qū)社區(qū)專職人員招聘(642人)考試參考題庫及答案解析
- 2026年1月福建廈門市集美區(qū)后溪鎮(zhèn)衛(wèi)生院補充編外人員招聘16人筆試模擬試題及答案解析
- 2026年長治職業(yè)技術學院單招職業(yè)技能考試題庫附答案解析
- 新華資產(chǎn)招聘筆試題庫2026
- 變配電室送電施工方案
- 地質(zhì)勘查現(xiàn)場安全風險管控清單
- 松下panasonic-經(jīng)銷商傳感器培訓
- 建設工程項目施工風險管理課件
- 口腔門診行政人事制度
評論
0/150
提交評論