版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西华师范大学嵌入式测试题一、填空题(每空2分,共24分)1、ARM7采用的是三级流水技术,指令分为三 个阶段执行取指、译码、执行。2、 ARM支持两个指令集,分别为ARM指 令集、Thumb指令集,状态寄存器CPSR 的IRQ、 FIQ位反映了当前状态中断控制. 状态寄存器CPSR的工位反映了处理器运行 不同指令的当前状态两种存储字数据,分别是大端格式小端格式3、在用ARM汇编编程时,其寄存器有多个别 名,通常PC是指 R15、LR是指R14 、 SP 是扌旨 R13。4、计算机有CISC和RISC两种类型,以ARM 微处理器为核心的计算机属于 RISC 类 型,其指令长度为 32位 和16位
2、 支持字节, 半字,字三种数据类型二、指令题(每小题6分,共18分)1、写一条ARM指令,完成操作 R0=R1/16。MOV R0,R1,LSR #42、实现了 R0=R1+R2*4ADD R0,R1,R2,LSL #23、对R0中的低8位清零,其他位保持不变BIC RO, RO, #OxOOOOOOFFAND RO, RO, #OxFFFFFFOO三、程序题(每小题10分,共40分)1、实现1到100的累加,结果放到R3中MOVR5,#99MOVR3,#1MOVR2,#2LOOP: ADDR3R3, R2ADD R2R2, #1SUBS R5 , R5, #1BNE LOOP2、写一段ARM
3、汇编程序:对地址 0x1000开始 的所有元素进行累加,直到碰上零值元素,结果 放在r4中。MOV R4, #0MOV R0, #0x1000LOOP: LDR R1, R0, #4CMP R1 ,#0BEQ enADER4, R4, R1BNE LOOP en END3、有如下程序段,标注出每条指令的作用,并 说明程序功能。MOVRO,#0x3000LDRR1 R0LDRR2,R0,#4CMPR1,R2MOVGTR1,#1MOVLT R1# -1MOVE:CR1,#0STRR1,R0,#84、地址0X21AB2000开始的15数据,分别与 0XACB11100地址开始的15个字数据相减, 记
4、录大于零的个数存入 R4,小于零的个数存 入R5,等于零的个数存入 R6.MOVR4,#0MOVR5,#0MOVR6,#0MOVR7,#15MOVR0,#0x21AB2000MOVR1,#0xACB11100LOOP: LDRR2,R0LDRR3,R1SUBS R8, R2, R3ADDGT R4, R4, #1ADDLT R5, R5, #1ADDEQ R6, R6, #1SUBS R7, R7, #1BNE LOOP用 跳 转 比 较 R1R2(R1R2(R3-1)(R1R2(R4-1)SU1: SUBR3, R3#1MOV PC,LRSU2: R4, R4, #1MOV PC,LRCMP
5、 R1 , R2BLGT SU1BLLT SU2END或者CMP R1 , R2SUBGT R3 , R3,#1SUBLT R4 , R4, #1四、简答题(每小题9,共18分)1、R13- R15寄存器分别称为什么寄存器,各 有何特殊用途?R13用作数据堆栈指针(SP,保证异常发生后 程序的正常执行R14称为链接寄存器(LR),它用于保存子程序 的返回地址R15是程序计数器(PC),从R15中读取的值正 是处理器正要取指的地址2、进入异常的处理方式及异常的返回?进入异常:(1)将下一条指令地址存入相应的连接寄存 器LR,以便程序在处理异常返回时能从正确 的位置从新开始执行。(2)将CPSR复
6、制到相应的SPSF中。(3)根据异常类型,强制设置CPSR勺运行模 式位。(4)强制PC从相关的异常向量地址取下一条 指令执行,从而跳转到相应的异常处理程序 处。退出异常:(1)将连接寄存器LR的值减去相应的偏移量 后送到PC中。(2)将SPSF复制回CPSF中要在此清除3. ARM处理器的工作模式有哪几种?答:1)用户模式2)快速中断模式3)外部中断模式4)管理模式5)数据访问中止模式6)系统模式7)未定义指中止模式4. Thumb指令与ARM指令性能比较,分别有什么 优缺点。答:Thumb弋码所需的存储空间约为 ARM弋码的 60% 70%Thumb弋码使用的指令数比ARM弋码多30%40
7、% 若使用32位的存储器,ARMf弋码比Thumb代码 快约40%若使用16位的存储器,Thumb代码比ARM代码 快约40%50% 在ARM弋码相比较,使用Thumb代码,存储器的 功耗会降低约30%分类:ARM7系列 ARM9系列 ARM9E系列ARM10E 系 列 ARM11 系列一Cortex 系列一SecurCore 系MOVGTADDLTMOVEQR3, R3, LSL , #1R3, R3, R3, LSL , #1R3, R3, LSL,#2STRSUBSR3, R4,R,5, R5,LOOP#4#1BNE3.写一段ARM汇编程序实现:地址开始10个32位数据减去以地址把以0X
8、4000CB000X3000AC00原来的位置。MOVR5,#20MOVR2,#0x2000MOVR4,#0x2000LOOP: LDRR3,R2,#4CMPR3, #0x1100列2地址0x2000开始的20数据,分别与 0x1100比较,大于的乘2,小于乘3,等于乘4后存回地址开始的10个32位数据后,两组数据一对一 互减后,比较与零的大小,记录非零的个数,存 放到R8中MOV R5 #10MOV R8 #0MOV RQ #0x4000CB00MOV R1 #Qx4QQQACQQLOOP: LDR R2, RQ #4LDR R3 , R1 #4CMP R2 , R3ADDNE R8 , R
9、8, #1SUBS R5 , R5, #1BNE LOOP4.编程实现:把以0x100210地址开始20个32位数据低5位清零后,把结果存放于以0X1022A230开始的地址空间MOV R3 20MOV RQ #0x1002AA10MOV R1, #0x1022A230LOOP: LDR R2,R0 #4BIC R2 ,R2 #0x0000001F/AND R2,R;#0xFFFFFFF0STR R2 ,R1 #4SUBS R3, R3, #1BNE LOOPEND5. 用ARM匚编指令写出实现64位加法和64位减 法的代码段,使用的寄存器请自行分配。64 位 R1(高)R0 (低)64 位
10、R3(高)R2 (低)结果存放入R5,R4加法:ADDS R4 R2, R0ADC R5, R3, R1减法:SUBS R4, R2, R0SBC R5, R3, R16. 使用LDR指令读取0x40003100上的数据,将 数据加1,若结果小于10则使用STR指令把结 果写回原地址,若结果大于等于 10,则把0写 回原地址。然后再次读取0x40003100上的数据, 将数据加1,判断结果是否小于10周而复始 循环EQU 0x40003100AREA Example2,CODE,READONLYENTRYCODE32START:LDR R1,=C0UNTMOV R0,#0STR R0,R1LO
11、OP: LDR R1,=COUNTLDR R0,R1ADD R0,R0,#1CMP R0,#10MOVHS R0,#0STR R0,R1B LOOPEND7.实现两个寄存器相加AREA Example1,CODE,READONL YENTR YCODE32START:MOV R0#0MOV R1 #10LOOP:BL ADD_SUBB LOOPADD_SUB:ADDS R0R0, R1MOV PL,LREND7.定义一个全局数字变量count初始值为1,然 后读取OxBCOOAAOO地址空间里的数据,把这 些数据放入首地址 OxCCOOIDOO的空间中,当 count的值等于10的时候,读取和
12、存储结束, 把字符串:“ finish ”存入变量STR中 打开IRQ和FIQ中断MRS RO,CPSRAND R0,R0,#0x3FMSR CPSR_C,R0打开IRQ和FIQ中断开关;in terrupt con trollerICMR EQU 0X40d00004ini t_ICMR EQU OX00000010开启中断源,设置屏蔽寄存器ICMR;ldr r1, =ICMRldr r2, =in it_ICMRstr r2,r1在ICMR里,键盘中断位是第5位,设置1即可ICMR 5=1ldr r11,=REGCPRldr r4,r11mov r5,#0x40000000mov r7,#
13、0x5han dleide ntifyloopand r6,r4,r5cmp r6,#0x0bne in terruptide ntifymov r5,r5,LSR #0x1sub r7,r7,#0x1cmp r7,#0x0bne han dleide ntifyloop由于OS Timer有4个定时器,所以这里假设只 使用4号定时器,定义以下符号:osTimer_OSMR3 EQU 0x40a0000c osTimer_OSCR EQU 0x40a00010 osTimer_OSSR EQU 0x40a00014 osTimer_OIER EQU 0x40a0001C in t_ICPREQ
14、U 0x40d00010置定时时间,配置寄存器OSCR OSMR3ldr r 1,=osTimer_OSCRldr r 2,=osTimer_OSMR3ldr rO,r1add r0,r0,#0x100000str r0,r2OSCR勺值加上定时时间 0x100000,存入OSMR3 开启4号定时器中断功能,配置寄存器 OIER,OSSRldrr 1,=osTimer_OIERmovr0,#0x8strr0,r1ldrr 10,=osTimer_OSSRldrr0,r10strr0,r104号定时器中断事件是否发生ldr r 11,=int_ICPR ;Idr r4,r11mov r5,#0x
15、20000000tst r4,r5关闭4号定时中断ldr r 11,=osTimer_OIERldr r4,r11and r4,r4,#07str r4,r11ldr r 11,=osTimer_OSSRldr r4,r11orr r4,r4,#0x80str r4,r11变量赋值:LCLL LOOPLOOP:SET TRUE真1. 地址0x2000开始的20数据,分别与 0x1100 比较,大于的乘2,小于乘3,等于乘4后存回 原来的位置。2. 写一段ARM汇编程序实现:把以 0X4000CB00 地址开始10个32位数据减去以地址0X3000AC00地址开始的10个32位数据后,两组数据一对一 互减后,比较与零的大小,记录非零的个数,存 放到R8中 3编程实现:把以0X1002AA10地址开始20个32 位数据低5位清零后,把结果存放于以 0X1022A230开始的地址空间4用ARM匚编指令写出实现64位加法和64位减 法的代码段,使用的寄存器请自行分配。假定低32位数存放在r0和r1里面,高32位数 存放在r2和r3里面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 疫情尾牙活动方案策划(3篇)
- 策划田径活动方案范文(3篇)
- 红薯基地活动策划方案(3篇)
- 缤纷游乐活动方案策划(3篇)
- 银行活动策划方案视频(3篇)
- 航空工业技术岗面试全解析
- 开学典礼讲话(校园广播)
- 2026年大连市公安局招聘警务辅助人员笔试试题(含答案)
- 医学问题及答案面试题目
- 农药中毒的院前急救护理
- 和田~民丰~且末~若羌Ⅱ回750千伏输变电工程(且末~若羌段)环境影响报告书
- 2026平安集团IQ EQ题库
- 2026年南阳工艺美术职业学院单招职业倾向性测试题库含答案详解(预热题)
- 2025年哈尔滨科学技术职业学院单招职业倾向性考试题库附答案解析
- 2026年吉林省长春市高考语文一模试卷
- 微生物学检验在临床抗微生物药物管理中的应用专家共识解读课件
- 青少年AI项目实施方案
- 心血管手术中自体血液回收红细胞质量的多维评估与临床意义探究
- 建设工程工程量清单计价标准(2024版)解读课件
- 2026年山东铝业职业学院单招综合素质考试必刷测试卷及答案1套
- 22J403-1楼梯栏杆栏板
评论
0/150
提交评论