您好,欢迎访问三七文档
1ARM体系结构与编程吴希英(答案写在答题纸上,写在试题纸上无效)一、填空题(每空1分,共30分)1.常见的ARM处理器内核有ARM7、ARM9和【ARM9E】等。2.按总线所传送的信息类型,总线分为【数据总线】、【控制总线】和【地址总线】。3.ADS是一套用来开发ARM处理器应用系统的开发工具包,用户可以用ADS编辑、编译和调试C、C++以及汇编程序。目前的版本为【1.2版本】。4.与逻辑运算规则:0•0=【0】;0•1=【0】;1•0=【0】;1•1=【1】5.或逻辑运算规则:0+0=【0】;0+1=【1】;1+0=【1】;1+1=【1】将2进制转换为16进制:(1001,1100,1011,0100,1000)B=【9】。6.ARM属于【RISC】架构。7.ARM指令集是【32】位宽,Thumb指令集是【16】位宽。8.ARM微处理器共有【37】个【32】位寄存器,其中【31】个为通用寄存器,【6】个为状态寄存器。9.复位后,ARM处理器处于【管理】工作模式,【ARM】状态。10.S3C2410采用的核心处理器是【ARM920T】。11.GPIO的中文全称是【通用I/O端口】。12.ARM处理器有两种状态,分别是【ARM】和【Thumb】。13.计算机结构分为【哈佛】结构和【冯诺依曼】结构。14.ARM处理器支持的数据类型中,字节为【8】位、半字为【16】位、字为【32】位。25.将2进制转换为16进制:(1101,1010,1011,01101110)B=【DAB6E】二、选择题:(每个选择2分,共30分)1.在ARM体系结构中,要从主动用户模式(User)切换到超级用户模式(Supervisor),应采课程考试试题学期学年拟题人:校对人:拟题学院(系):适用专业:用何种方法?【B】A、直接修改CPU状态寄存器(CPSR)对应的模式B、先修改程序状态备份寄存器(SPSR)到对应的模式,再更新CPU状态C、使用软件中断指令(SWI)D、让处理器执行未定义指令2.嵌入式系统加电或复位后,所有的CPU通常都从某个由CPU制造商预先安排的地址上取指令。例如:对于S3C2410来说,BootLoader会映射到【B】地址处。A0x0c000000B0x00000000C0x00000018D0x400000183.CPSR中的低8位称为控制位,下列不属于控制位的是【A】。A、NB、IC、FD、T4.ARM中可以访问状态寄存器的指令是【D】,能够访问内存的指令是【C】。A、MOVB、ADDC、LDRD、MRS5.下列条件码中表示不相等的是【B】。A、EQB、NEC、CSD、CC6.CPSR中的低8位称为控制位,其中I位等于1表示【A】。A、禁止IRQ中断B、禁止FIQ中断C、允许IRQ中断D、允许FIQ中断7.ARM微处理器支持7种工作模式。其中,除【A】之外的其余6种称为特权模式,在这6种之中,除【D】之外的其余5种又称为异常模式。A、用户模式B、管理模式C、中止模式D、系统模式8.ATPCS规定中,栈是【B】。A、满递增B、满递减C、空递增D、空递减9.在用ARM汇编编程是,其寄存器有多个别名,通常PC是指R15,LR是指【C】,SP是指【B】A、R12B、R13C、R14D、R1510.下列ARM指令中,可用于满递增堆栈操作的是【D】。A、STMDAB、STMIAC、STMDBD、STMIB11.下列32位数中,不可作为立即数的是【A】。A、0x81000007B、0x04800000C、0x00000012D、0x800000712.ARM伪指令中,可用于大范围地址读取的是【C】。A、ADRB、ADRLC、LDRD、NOP13.同CISC相比,下面哪一项不属于RISC处理器的特征。【D】A、采用固定长度的指令格式,指令规整、简单、基本寻址方式有2~3种。B、减少指令数和寻址方式,使控制部件简化,加快执行速度。C、数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率,同时简化处理器的设计。D、RISC处理器都采用哈佛结构14.以下叙述中,不符合RISC指令系统特点的是【B】。A、指令长度固定,指令种类少B、寻址方式种类丰富,指令功能尽量增强C、设置大量通用寄存器,访问存储器指令简单D、选取使用频率较高的一些简单指令15.下面关于ARM处理器的体系结构描述哪一个是错误的。【B】A、三地址指令格式B、所有的指令都是多周期执行C、指令长度固定D、Load-Store结构三、简答(7+2+3+5+6+8+9=40分)1、请写出以下相关ARM指令语句的注释:(7分)MOVR0,PC把PC的值传送到R0寄存器,此时PC地址为当前指令位置+8ADDR0,R1,#1把R1加上1的结果给R0寄存器LDRR0,=0x56000010是伪指令,把0x5600010f放到R0寄存器中,采用文字池技术LDRPC,[PC,#4]把当前的PC值加4位置的内容赋值给PC,实现绝对跳转MRSR0,CPSR把CPSR的值传送给R0BLLOOP带返回地址的跳转指令,把下一条指令给LR后,跳转到Loop地址STMFDR13!,{R0-R12}压栈指令,把R0到R12寄存器的值通过R13栈指针进行压站保存2、什么是立即数?请简要描述立即数在使用时有什么注意要点。(2分)答:立即数,主要是指寻址时直接在指令中出现的数。在使用时注意(1)立即数前需要加#(2)ARM指令只有32位长,立即数在指令中占12位存储空间,ARM用这12位空间8位表示有效数字-基数B,4位表示译为的数M,按照把B循环右移M*2位,构造成一个新的32位的数,其它位补0,所以在使用立即数时,要注意其是否合法。3、请问BL指令跳转时LR寄存器保存的是什么内容?并请简述原因。(3分)答:BL跳转时,LR中保存的是执行BL跳转指令的下一条指令的地址,考虑流水线的情况,即当前的PC-4。LR用来在需要返回程序时从LR中还原程序执行的位置继续执行。4、ARM内核有多少个寄存器,请列举出这些寄存器的名字和数量。(5分)答:ARM有37个寄存器,(1)未分组寄存器:R0-R7,共8个;(2)分组寄存器R8-R14,其中FIQ模式下有单独的一组R8-R12共5个,另外6种模式共用一组R8-R12,共5个,USR和SYS模式共用一组R13-R14,共2个,另外5种模式下各有独自的一组R13-R14,共10个;(3)程序计数器PC即R15寄存器,共1个;(4)状态寄存器CPSR,和5个备份状态寄存器SPSR,共6个;ARM总计37个寄存器。5、ARM通用寄存器中,有3个寄存器有特殊功能和作用,请写出它们的名字和作用。(6分)答:R13:SP栈指针寄存器,用来保存程序执行时的栈指针位置;R14:LR返回链接寄存器,用来保存程序执行BL指令或模式切换时的返回原程序继续执行的地址;R15:PC程序计数器,保存程序执行的当前地址。6、ARM的CPSR寄存器的位定义如图所示,试简述各位的功能。(8分)条件位(指令进行算术运算后的结果是否有进位,借位等),I位(IRQ异常允许位),F位(FIQ异常允许位),T位(ARM/Thumb工作状态),模式位(处理器工作模式)NZCV保留IFTM[4-0]21345031302928276787、用汇编语言编写程序读取存储器0x40003100地址上的数据,将数据加1,若结果小于10则使用STR指令把结果写回原地址,若结果大于等于10,则把0写回原地址。(9分)
本文标题:ARM试题A卷
链接地址:https://www.777doc.com/doc-2308373 .html