




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一、填空題(每空 2 分,共 24分)1、ARM7接受的是三級流水技術,指令分為三個階段執(zhí)行取指、譯碼、執(zhí)行。2、ARM支持兩個指令集, 分別為 ARM指令集 、 Thumb指令集 ,狀態(tài)寄存器CPSR的 IRQ 、 FIQ位反映了當前狀態(tài)中斷把握,狀態(tài)寄存器CPSR的 T 位反映了處理器運行不同指令的當前狀態(tài)兩種存儲字數(shù)據(jù),分別是大端格式小端格式 3、在用ARM匯編編程時,其寄存器有多個別名,通常PC是指 R15 、LR 是指 R14 、SP是指 R13 。4、計算機有CISC和RISC兩種類型,以ARM微處理器為核心的計算機
2、屬于RISC 類型,其指令長度為 32位 和16位 支持字節(jié),半字,字三種數(shù)據(jù)類型 二、指令題(每小題6分,共18分)1、寫一條 ARM 指令,完成操作R0=R1/16。MOV R0,R1,LSR #42、實現(xiàn)了R0=R1+R2*4ADD R0,R1,R2,LSL #23、對R0中的低8位清零,其他位保持不變BIC R0,R0,#0x000000FF AND R0,R0,#0xFFFFFF00三、程序題(每小題10分,共40分)1、實現(xiàn)1到100的累加,結果放到R3中MOV R5,#99MOV R3,#1MOV R2,#2LOOP: ADD R3,R3,R2 ADD R2,R2,#1 SUBS
3、 R5,R5,#1 BNE LOOP2、寫一段 ARM匯編程序:對地址0x1000開頭的全部元素進行累加,直到碰上零值元素,結果放在r4中。MOV R4, #0 MOV R0, #0x1000LOOP: LDR R1, R0, #4 CMP R1,#0 BEQ enADDR4, R4, R1BNE LOOPen END3、有如下程序段,標注出每條指令的作用,并說明程序功能。 MOVR0,#0x3000 LDRR1,R0LDRR2,R0,#4 CMPR1,R2MOVGTR1,#1MOVLT R1,# -1MOVEQR1,#0STRR1,R0,#8 4、地址0x21AB2000開頭的15數(shù)據(jù),分別
4、與0xACB11100地址開頭的15個字數(shù)據(jù)相減,記錄大于零的個數(shù)存入R4,小于零的個數(shù)存入R5,等于零的個數(shù)存入R6.MOV R4,#0MOV R5,#0MOV R6,#0MOV R7,#15MOV R0,#0x21AB2000MOV R1,#0xACB11100LOOP: LDR R2,R0 LDR R3,R1 SUBS R8,R2,R3 ADDGT R4,R4,#1 ADDLT R5,R5,#1 ADDEQ R6,R6,#1SUBS R7,R7,#1BNE LOOP用跳轉比較R1,R2(R1>R2(R3-1)(R1<R2(R4-1)SU1:SUBR3,R3#1MOV PC,L
5、RSU2:R4,R4,#1 MOV PC,LRCMP R1,R2BLGT SU1BLLT SU2END或者CMP R1,R2SUBGT R3,R3,#1SUBLT R4,R4,#1四、簡答題(每小題9,共18分) 1、R13R15寄存器分別稱為什么寄存器,各有何特殊用途?R13用作數(shù)據(jù)堆棧指針(SP),保證特別發(fā)生后程序的正常執(zhí)行R14稱為鏈接寄存器(LR),它用于保存子程序的返回地址 R15是程序計數(shù)器(PC),從R15中讀取的值正是處理器剛要取指的地址2、進入特別的處理方式及特別的返回?進入特別:(1)將下一條指令地址存入相應的連接寄存器LR,以便程序在處理特別返回時能從正確的位
6、置從新開頭執(zhí)行。(2)將CPSR值復制到相應的SPSR中。 (3)依據(jù)特別類型,強制設置CPSR的運行模式位。(4)強制PC從相關的特別向量地址取下一條指令執(zhí)行,從而跳轉到相應的特別處理程序處。退出特別: (1)將連接寄存器LR的值減去相應的偏移量后送到PC中。 (2)將SPSR復制回CPSR中。 (3)若在靜茹特別處理時設置了中斷禁止位,要在此清除。3.ARM處理器的工作模式有哪幾種?答:1)用戶模式2)快速中斷模式3)外部中斷模式4
7、)管理模式 5)數(shù)據(jù)訪問中止模式6)系統(tǒng)模式7)未定義指中止模式4.Thumb指令與ARM指令性能比較,分別有什么優(yōu)缺點。答:Thumb代碼所需的存儲空間約為ARM代碼的60%70%Thumb代碼使用的指令數(shù)比ARM代碼多30%40%若使用32位的存儲器,ARM代碼比Thumb代碼快約40%若使用16位的存儲器,Thumb代碼比ARM代碼快約40%50%在ARM代碼相比較,使用Thumb代碼,存儲器的功耗會降低約30%分類: ARM7系列ARM9 系列 ARM9E 系列 ARM10E 系列 ARM11系列
8、0; Cortex 系列 SecurCore 系列 2.地址0x2000開頭的20數(shù)據(jù),分別與0x1100比較,大于的乘2,小于乘3,等于乘4后存回原來的位置。MOV R5,#20MOV R2,#0x2000MOV R4,#0x2000LOOP: LDR R3,R2,#4 CMP R3,#0x1100 MOVGT R3,R3,LSL,#1 ADDLT R3,R3,R3,LSL,#1 MOVEQ R3,R3,LSL,#2STR R3,R4 ,#4SUBS R,5,R5,#1BNE LOOP3.寫一段 ARM匯編程序實現(xiàn):把
9、以0x4000CB00地址開頭10個32位數(shù)據(jù)減去以地址0x3000AC00地址開頭的10個32位數(shù)據(jù)后,兩組數(shù)據(jù)一對一互減后,比較與零的大小,記錄非零的個數(shù),存放到R8中MOV R5,#10MOV R8,#0MOV R0,#0x4000CB00MOV R1,#0x4000AC00LOOP: LDR R2,R0 #4 LDR R3,R1 #4 CMP R2,R3 ADDNE R8,R8,#1 SUBS R5,R5,#1 BNE LOOP4.編程實現(xiàn):把以0x1002AA10地址開頭20個32位數(shù)據(jù)低5位清零后,把結果存放于以0x1022A230開頭的地址空間MOV R3,20MOV R0,#0
10、x1002AA10MOV R1,#0x1022A230LOOP: LDR R2,R0 #4 BIC R2,R2 #0x0000001F/AND R2,R2 #0xFFFFFFF0 STR R2,R1 #4SUBS R3,R3,#1BNE LOOPEND5.用ARM匯編指令寫出實現(xiàn)64位加法和64位減法的代碼段,使用的寄存器請自行安排。64位 R1(高) R0(低)64位 R3(高) R2(低)結果存放入 R5,R4加法:ADDS R4,R2,R0ADC R5,R3,R1減法:SUBS R4,R2,R0SBC R5,R3,R16.使用LDR指令讀取0x40003100上的數(shù)據(jù),將數(shù)據(jù)加1,若結果
11、小于10則使用STR指令把結果寫回原地址,若結果大于等于10,則把0寫回原地址。然后再次讀取0x40003100上的數(shù)據(jù),將數(shù)據(jù)加1,推斷結果是否小于10周而復始循環(huán) EQU 0x40003100 AREA Example2,CODE,READONLY ENTRY CODE32 START:LDR R1,=COUNT MOV R0,#0 STR R0,R1 LOOP: LDR R1
12、,=COUNT LDR R0,R1 ADD R0,R0,#1 CMP R0,#10 MOVHS R0,#0 STR R0,R1 B LOOP END7.實現(xiàn)兩個寄存器相加AREA Example1,CODE,READONLY ENTRY CODE32 START:MOV R0,#0MOV R1,#10LOOP:BL ADD_SUBB LOOP
13、ADD_SUB:ADDS R0,R0,R1MOV PL,LREND7.定義一個全局數(shù)字變量count初始值為1,然后讀取0xBC00AA00地址空間里的數(shù)據(jù),把這些數(shù)據(jù)放入首地址0xCC001D00的空間中,當count的值等于10的時候,讀取和存儲結束,把字符串:“finish”存入變量STR中打開IRQ和FIQ中斷MRS RO,CPSRAND R0,R0,#0x3FMSR CPSR_C,R0打開IRQ和FIQ中斷開關;interrupt controllerICMR EQU OX40d00004init_ICMR EQU OX00000010開啟中斷源,設置屏蔽寄存器ICMR;ldr r1
14、, =ICMRldr r2, =init_ICMRstr r2,r1在ICMR里,鍵盤中斷位是第5位,設置1即可ICMR 5=1ldr r11,=REG_ICPRldr r4,r11mov r5,#0x40000000mov r7,#0x5handleidentifyloopand r6,r4,r5cmp r6,#0x0bne interruptidentifymov r5,r5,LSR #0x1sub r7,r7,#0x1cmp r7,#0x0bne handleidentifyloop由于 OS Timer有 4個定時器,所以這里假設只使用4 號定時器,定義以下符號:osTimer_OSM
15、R3EQU 0x40a0000cosTimer_OSCR EQU 0x40a00010osTimer_OSSR EQU 0x40a00014osTimer_OIEREQU 0x40a0001Cint_ICPR EQU 0x40d00010置定時時間,配置寄存器OSCR,OSMR3ldr r1,=osTimer_OSCRldr r2,=osTimer_OSMR3ldr r0,r1add r0,r0,#0x100000str r0,r2OSCR的值加上定時時間0x100000,存入OSMR3開啟 4號定時器中斷功能,配置寄存器 OIER,OSSRldr r1,=osTimer_OIERmov r0
16、,#0x8str r0,r1ldr r10,=osTimer_OSSRldr r0,r10str r0,r104號定時器中斷大事是否發(fā)生。ldr r11,=int_ICPR; ldr r4,r11mov r5,#0x20000000tstr4,r5關閉 4號定時中斷l(xiāng)dr r11,=osTimer_OIERldr r4,r11and r4,r4,#07strr4,r11ldr r11,=osTimer_OSSRldr r4,r11orr r4,r4,#0x80strr4,r11變量賦值:LCLL LOOP LOOP:SET TRUE真1.地址0x2000開頭的20數(shù)據(jù),分別與0x1100比較,大于的乘2,小于乘3,等于乘4后存回原來的位置。2.寫一段 ARM匯編程序實現(xiàn):把以0x4000CB00地址開頭10個32位數(shù)據(jù)減去以地址0x3000AC00地址開頭的10個32位數(shù)據(jù)后,兩組數(shù)據(jù)一對一互減后,比較與零的大小,記錄非零的個數(shù),存放到R8中3編程實現(xiàn):把以0x1002AA10地址開頭20個32位數(shù)據(jù)低5位清零后,把結果存放于以0x1022A230開頭的地址空間4用ARM匯編指令寫出實現(xiàn)64位加法和64位減法的代碼段,使用的寄存器請自行安排。假定低32位數(shù)
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 班主任班級安全防范與應急處理協(xié)議
- 舊村改造項目拆遷補償與二手房購買合同
- 財務軟件研發(fā)保密協(xié)議及勞動合同模板
- 電玩城免責協(xié)議書范本
- 部門副總經(jīng)理員工晉升與發(fā)展規(guī)劃勞動合同范本
- 殘疾人勞動合同簽訂與勞動爭議預防與處理
- 樁基成孔智能監(jiān)測儀
- 學校繳費流程規(guī)范說明
- 快遞店店員培訓
- 2025消防知識培訓
- 2024年遼寧省普通高等學校招生錄取普通類本科批(物理學科類)投檔最低分
- 保安培訓考試內容解析及試題及答案
- 電梯維護保養(yǎng)服務投標文件(技術方案)
- 2025年中國PCR儀市場全面調研及行業(yè)投資潛力預測報告
- 2025年醫(yī)院信息科數(shù)據(jù)安全管理計劃
- 智能工廠整體解決方案
- 2025年四川大學自主招生個人陳述的自我定位
- 2025年福建省建工集團及下屬集團招聘235人高頻重點提升(共500題)附帶答案詳解
- 緊急情況的處理措施、預案以及抵抗風險的措施
- 2025中智集團招聘重要崗位高頻重點提升(共500題)附帶答案詳解
- 水暖維修培訓課件
評論
0/150
提交評論