西華師范大學(xué)嵌入式測(cè)試題_第1頁
西華師范大學(xué)嵌入式測(cè)試題_第2頁
西華師范大學(xué)嵌入式測(cè)試題_第3頁
西華師范大學(xué)嵌入式測(cè)試題_第4頁
西華師范大學(xué)嵌入式測(cè)試題_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、一、填空題(每空 2 分,共 24分)1、ARM7接受的是三級(jí)流水技術(shù),指令分為三個(gè)階段執(zhí)行取指、譯碼、執(zhí)行。2、ARM支持兩個(gè)指令集, 分別為 ARM指令集 、 Thumb指令集 ,狀態(tài)寄存器CPSR的 IRQ 、 FIQ位反映了當(dāng)前狀態(tài)中斷把握,狀態(tài)寄存器CPSR的  T   位反映了處理器運(yùn)行不同指令的當(dāng)前狀態(tài)兩種存儲(chǔ)字?jǐn)?shù)據(jù),分別是大端格式小端格式 3、在用ARM匯編編程時(shí),其寄存器有多個(gè)別名,通常PC是指 R15 、LR 是指 R14 、SP是指 R13 。4、計(jì)算機(jī)有CISC和RISC兩種類型,以ARM微處理器為核心的計(jì)算機(jī)

2、屬于RISC 類型,其指令長度為 32位 和16位 支持字節(jié),半字,字三種數(shù)據(jù)類型 二、指令題(每小題6分,共18分)1、寫一條 ARM 指令,完成操作R0=R1/16。MOV R0,R1,LSR #42、實(shí)現(xiàn)了R0=R1+R2*4ADD R0,R1,R2,LSL #23、對(duì)R0中的低8位清零,其他位保持不變BIC R0,R0,#0x000000FF AND R0,R0,#0xFFFFFF00三、程序題(每小題10分,共40分)1、實(shí)現(xiàn)1到100的累加,結(jié)果放到R3中MOV R5,#99MOV R3,#1MOV R2,#2LOOP: ADD R3,R3,R2 ADD R2,R2,#1 SUBS

3、 R5,R5,#1 BNE LOOP2、寫一段 ARM匯編程序:對(duì)地址0x1000開頭的全部元素進(jìn)行累加,直到碰上零值元素,結(jié)果放在r4中。MOV R4, #0 MOV R0, #0x1000LOOP: LDR R1, R0, #4 CMP R1,#0 BEQ enADDR4, R4, R1BNE LOOPen END3、有如下程序段,標(biāo)注出每條指令的作用,并說明程序功能。 MOVR0,#0x3000 LDRR1,R0LDRR2,R0,#4 CMPR1,R2MOVGTR1,#1MOVLT R1,# -1MOVEQR1,#0STRR1,R0,#8 4、地址0x21AB2000開頭的15數(shù)據(jù),分別

4、與0xACB11100地址開頭的15個(gè)字?jǐn)?shù)據(jù)相減,記錄大于零的個(gè)數(shù)存入R4,小于零的個(gè)數(shù)存入R5,等于零的個(gè)數(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用跳轉(zhuǎn)比較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四、簡(jiǎn)答題(每小題9,共18分) 1、R13R15寄存器分別稱為什么寄存器,各有何特殊用途?R13用作數(shù)據(jù)堆棧指針(SP),保證特別發(fā)生后程序的正常執(zhí)行R14稱為鏈接寄存器(LR),它用于保存子程序的返回地址 R15是程序計(jì)數(shù)器(PC),從R15中讀取的值正是處理器剛要取指的地址2、進(jìn)入特別的處理方式及特別的返回?進(jìn)入特別:(1)將下一條指令地址存入相應(yīng)的連接寄存器LR,以便程序在處理特別返回時(shí)能從正確的位

6、置從新開頭執(zhí)行。(2)將CPSR值復(fù)制到相應(yīng)的SPSR中。 (3)依據(jù)特別類型,強(qiáng)制設(shè)置CPSR的運(yùn)行模式位。(4)強(qiáng)制PC從相關(guān)的特別向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的特別處理程序處。退出特別: (1)將連接寄存器LR的值減去相應(yīng)的偏移量后送到PC中。       (2)將SPSR復(fù)制回CPSR中。     (3)若在靜茹特別處理時(shí)設(shè)置了中斷禁止位,要在此清除。3.ARM處理器的工作模式有哪幾種?答:1)用戶模式2)快速中斷模式3)外部中斷模式4

7、)管理模式 5)數(shù)據(jù)訪問中止模式6)系統(tǒng)模式7)未定義指中止模式4.Thumb指令與ARM指令性能比較,分別有什么優(yōu)缺點(diǎn)。答:Thumb代碼所需的存儲(chǔ)空間約為ARM代碼的60%70%Thumb代碼使用的指令數(shù)比ARM代碼多30%40%若使用32位的存儲(chǔ)器,ARM代碼比Thumb代碼快約40%若使用16位的存儲(chǔ)器,Thumb代碼比ARM代碼快約40%50%在ARM代碼相比較,使用Thumb代碼,存儲(chǔ)器的功耗會(huì)降低約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匯編程序?qū)崿F(xiàn):把

9、以0x4000CB00地址開頭10個(gè)32位數(shù)據(jù)減去以地址0x3000AC00地址開頭的10個(gè)32位數(shù)據(jù)后,兩組數(shù)據(jù)一對(duì)一互減后,比較與零的大小,記錄非零的個(gè)數(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.編程實(shí)現(xiàn):把以0x1002AA10地址開頭20個(gè)32位數(shù)據(jù)低5位清零后,把結(jié)果存放于以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匯編指令寫出實(shí)現(xiàn)64位加法和64位減法的代碼段,使用的寄存器請(qǐng)自行安排。64位 R1(高) R0(低)64位 R3(高) R2(低)結(jié)果存放入 R5,R4加法:ADDS R4,R2,R0ADC R5,R3,R1減法:SUBS R4,R2,R0SBC R5,R3,R16.使用LDR指令讀取0x40003100上的數(shù)據(jù),將數(shù)據(jù)加1,若結(jié)果

11、小于10則使用STR指令把結(jié)果寫回原地址,若結(jié)果大于等于10,則把0寫回原地址。然后再次讀取0x40003100上的數(shù)據(jù),將數(shù)據(jù)加1,推斷結(jié)果是否小于10周而復(fù)始循環(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.實(shí)現(xiàn)兩個(gè)寄存器相加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.定義一個(gè)全局?jǐn)?shù)字變量count初始值為1,然后讀取0xBC00AA00地址空間里的數(shù)據(jù),把這些數(shù)據(jù)放入首地址0xCC001D00的空間中,當(dāng)count的值等于10的時(shí)候,讀取和存儲(chǔ)結(jié)束,把字符串:“finish”存入變量STR中打開IRQ和FIQ中斷MRS RO,CPSRAND R0,R0,#0x3FMSR CPSR_C,R0打開IRQ和FIQ中斷開關(guān);interrupt controllerICMR EQU OX40d00004init_ICMR EQU OX00000010開啟中斷源,設(shè)置屏蔽寄存器ICMR;ldr r1

14、, =ICMRldr r2, =init_ICMRstr r2,r1在ICMR里,鍵盤中斷位是第5位,設(shè)置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個(gè)定時(shí)器,所以這里假設(shè)只使用4 號(hào)定時(shí)器,定義以下符號(hào):osTimer_OSM

15、R3EQU 0x40a0000cosTimer_OSCR EQU 0x40a00010osTimer_OSSR EQU 0x40a00014osTimer_OIEREQU 0x40a0001Cint_ICPR EQU 0x40d00010置定時(shí)時(shí)間,配置寄存器OSCR,OSMR3ldr r1,=osTimer_OSCRldr r2,=osTimer_OSMR3ldr r0,r1add r0,r0,#0x100000str r0,r2OSCR的值加上定時(shí)時(shí)間0x100000,存入OSMR3開啟 4號(hào)定時(shí)器中斷功能,配置寄存器 OIER,OSSRldr r1,=osTimer_OIERmov r0

16、,#0x8str r0,r1ldr r10,=osTimer_OSSRldr r0,r10str r0,r104號(hào)定時(shí)器中斷大事是否發(fā)生。ldr r11,=int_ICPR; ldr r4,r11mov r5,#0x20000000tstr4,r5關(guān)閉 4號(hào)定時(shí)中斷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匯編程序?qū)崿F(xiàn):把以0x4000CB00地址開頭10個(gè)32位數(shù)據(jù)減去以地址0x3000AC00地址開頭的10個(gè)32位數(shù)據(jù)后,兩組數(shù)據(jù)一對(duì)一互減后,比較與零的大小,記錄非零的個(gè)數(shù),存放到R8中3編程實(shí)現(xiàn):把以0x1002AA10地址開頭20個(gè)32位數(shù)據(jù)低5位清零后,把結(jié)果存放于以0x1022A230開頭的地址空間4用ARM匯編指令寫出實(shí)現(xiàn)64位加法和64位減法的代碼段,使用的寄存器請(qǐng)自行安排。假定低32位數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論