您好,欢迎访问三七文档
第一章:1、嵌入式系统的定义以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、成本、体积、功耗严格要求的专用计算机系统。2、嵌入式系统的应用领域工业控制领域:工控设备、智能仪表、汽车电子消费电子领域:信息家电、智能玩具、通信设备、移动存储设备网络技术:网络设备、电子商务军事国防:军事电子、航海航天3、嵌入式技术的发展趋势嵌入式设备进入网络互联是未来的发展趋势优化嵌入式系统软硬件内核,提高系统运行速度,降低功耗和硬件成本指令级的并行计算技术将引入嵌入式微处理器嵌入式微处理器将会向多核技术发展嵌入式技术将引领信息时代4、下面不符合嵌入式操作系统特点的是(B)A、实时性B、不可定制C、微型化D、可移植性第二章:ARM技术与ARM体系结构1、RISCReducedInstructionSetComputer,精简指令集计算机2、分析ARM7TDMI-S个字母所代表的含义7:系列号T:支持16位的Thumb指令集D:支持JTAG片上调试M:支持长乘法操作的ARM指令I:带有嵌入式追踪宏单元ETM,用来设置断点和观察点的调试硬件S:可综合版本,意味着处理器内核是以源代码形式提供的。3、ARM处理器的工作模式用户模式、FIQ模式、IRQ模式、SVC模式、中止模式、未定义指令异常模式、系统模式4、7种工作模式哪几种属于特权模式、那种属于异常模式。在7种工作模式中,除了用户模式以外,其他6种模式可以称为特权模式,在6种特权模式中,除了系统模式外其他5种称为异常模式。5、ARM有15个通用寄存器、一个或两个状态寄存器和PC,有些模式共用同一个寄存器,一共具有37个寄存器。6、R12一般在子程序连接代码中使用,作为子程序间的中间结果寄存器;R13通常被用做栈指针,也称做SP;R14又被称为连接寄存器LR7、寄存器R14的两种特殊用途存放当前子程序的返回地址;当发生异常中断的时候,该模式下的特定物理R14被设置成该异常模式将要返回的地址。8、程序状态寄存器标志位I:IRQ中断使能位;F:FIQ中断使能位;T:指令执行的状态控制位(说明本指令是THUMB指令还是ARM指令)9、ARM异常处理的异常分类数据中止、快速中断请求、普通中断请求、预取指中止、软件中断、复位及未定义指令10、ARM处理器字数据的存储格式有哪两种?并指出这两种格式的区别。大端对齐和小端对齐11、ARM处理器寄存器R0中的数据内容为0xAABBCCDD,将其存放到内存地址0x10000开始的内存单元中,分别采用小端对齐存储格式和大端对齐格式存储,试分析内存地址0x10000字节单元的内容。答:小端模式:0x10000~0x10003中依次存放的数据是0xDD0xCC0xBB0xAA大端模式:0x10000~0x10003中依次存放的数据是0xAA0xBB0xCC0xDD12、ARM7采用的是三级流水技术,指令分为三个阶段执行:取指、译码、执行;ARM9采用的是五级流水技术,指令分为三个阶段执行:取指、译码、执行、存储器访问、寄存器写操作;13、什么叫做流水线互锁答:在流水线运行过程中可能会出现这种情况:当前指令的执行可能需要前面指令的执行结果,但这时前面的指令没有执行完毕,从而会导致当前指令的执行无法获得合法的操作数,这时就会引起流水线的等待,这种现象在流水线机制里称为互锁。14、嵌入式处理器指令的执行周期包括(D)A.启动运行退出B.取指令指令译码执行指令存储C.启动运行挂起退出D.取指令指令译码执行指令15.EmbeddedVisualStudio是(B)A.嵌入式硬件开发工具B.嵌入式软件开发工具C.嵌入式调试工具D.嵌入式编译工具16.JTAG的引脚TCK的主要功能是(C)A.嵌入式硬件开发工具B.嵌入式软件开发工具C.嵌入式调试工具D.嵌入式编译工具17、数据与指令都存储在存储器中是冯诺依曼体系结构的主要特点。ARM一般采用的是哈佛体系结构。18、以下叙述中,不符合RICS特征的是(B)A.指令长度固定,种类少B.寻址方式丰富,指令功能尽量增强C.设置大量通用寄存器,访问存储器指令简单D.选取使用频率较高的指令19、在下列ARM处理器模式中,(D)模式有自己独立的R8-R14寄存器。A.系统模式B.终止模式C.中断模式D.快速中断模式20、按照ARM过程调用标准(APCS),栈指针使用(B)寄存器A.R0B.R13C.R14D.R1521、嵌入式系统应用软件一般在宿主机上开发,在目标机上运行,因此需要一个(B)环境。A.交互操作系统B.交叉编译C.交互平台D.分布式计算22、ARM处理器中断有两种处理模式,分别为快速中断模式和外部中断模式。23、嵌入式系统中按照总线的传送的信息类型,可以分为数据总线、地址总线和控制总线第三章ARM指令集寻址方式1、立即数每个立即数由一个8位的常数进行32位循环右移偶数位得到,其中循环右移的位数由一个4位二进制的两倍表示。选择题:下列哪个不是合法的立即数:0xFF,0x104,0x39C00,0x1FE8002、寄存器寻址选择题:下列哪条指令属于寄存器寻址?MOVR1,#0x198LDRR0,[R1,#4]MOVR3,R0MOVR0,[R2],#43、下面哪条语句执行后,实现了R0=[R1+R2*4],LDRR0,[R1,R2,LSL#2];LDRR0,[R1,R2,LSL#2]!;LDRR0,[R1],R2,LSL#2;LDRR0,[R2,R1,LSL#2];第四章ARM指令系统1、算术运算指令选择题:下列哪条指令逆向减法指令?SUBR0,R1;SUBSR0,R1;SBCR0,R1;RSBR0,R1;2、逻辑运算指令选择题:下列哪条指令能实现清除R0中的低8位,其他位保持不变?ADDR0,R0,#0Xff;ORRR0,R0,#0Xff;EORR0,R0,#0Xff;BICR0,R0,#0Xff;3、ARM分支指令选择题:下列哪条指令是带状态切换的跳转指令BBLBXBLX第五章:Thumb指令与ARM指令性能比较,分别有什么优缺点。答:Thumb代码所需的存储空间约为ARM代码的60%~70%Thumb代码使用的指令数比ARM代码多30%~40%若使用32位的存储器,ARM代码比Thumb代码快约40%若使用16位的存储器,Thumb代码比ARM代码快约40%~50%在ARM代码相比较,使用Thumb代码,存储器的功耗会降低约30%第六章第七章汇编语言程序设计1、写出完成下列操作的指令(1)R0=16MOVR0,#16;(2)R1=R0*4MULR1,R0,#4;(3)R0=R1/16MOVR0,R1,LSL#4;(4)R1=R2*7MULR1,R2,#7;2、下列指令完成什么操作(1)ADDSR0,R1,R1,LSL#2R0=R1+(R14);(2)RSBR2,R1,#0R2=R1-0(3)ADDR0,R1,R1,LSL#1R0=R1+(R12)(4)SUBR0,R0,R1,LSL#4R0=R0-(R116)(5)ADDR0,R0,R1,LSL#7R0=R0+(R1128)(6)MLAR0,R1,R2R0=R1×R2(7)SMULLR0,R1,R2,R3R0=(R2×R3)的低32位R1=(R2×R3)的高32位(8)BLLABEL当程序无条件跳转到标号LABEL处执行时,同时将当前的PC值保存到R14中3、用ARM汇编语言设计程序实现求20!(20的阶乘),并将其64位结果放在[R9:R8]中(R9中存放高32位)。AREAFctrl,CODE,READONLYENTRYCODE32STARYMOVR8,#20MOVR9,#0SUBR0,R8,#1LOOPMOVR1,R9UMULLR8,R9,R0,R8MLAR9,R1,R0,R9SUBSR0,R0,#1BNELOOPSTOPBSTOPEND4、先对内存地址0x3000开始的100个内存单元填入0x10000001~0x10000064字数据,然后将每个字单元进行64位累加结果保存于[R9:R8](R9中存放高32位)AREAFctrl,CODE,READONLYENTRYCODE32STARYMOVR0,#3000MOVR1,#0x10000001MOVR2,#0x100LOOP_1STRR1,[R0],#4ADDR1,R1,#1SUBSR2,R2,#1BNELOOP_1MOVR0,#0x3000MOVR2,#0x100MOVR9,#0MOVR8,#0LOOP_2LDRR1,[R0],#4ADDSR8,R1,R8ADCR9,R9,#0SUBSR2,R2,#1BNELOOP_2STOPBSTOPEND5、8421码是一种十进制数,它采用4个bit位表示一个十进制位,分别用0000~1001表示十进制的0~9。设计汇编程序将一个可以表示8位十进制的8421码数据转换成等价的整数形数据。AREADec,CODE,READONLYENTRYCODE32LDRR0,=0x12345678Dec2intMOVR1,#0MOVR2,#8MOVR5,#10Dec2int_l1MULR4,R1,R5MOVR0,R0,ROR#28ANDR3,R0,#0XfADDR1,R4,R3SUBSR2,R2,#1BNEDec2int_l1STOPBSTOPEND第8章ARM汇编语言与嵌入式C混合编程1、下面关于嵌入式C的描述,正确的是(c)A、总在第一个定义的函数执行B、要调用的函数,必须在main()中定义C、总是从main()处开始执行D、main()必须放在程序的开始处2、已知有变量data1定义如下:(c)Uniondata{inti;Charch;Floatf;}data1;则变量data1所占的内存存储空间可表示为。A.sizeof(int)B.sizeof(char)C.sizeof(float)D.sizeof(int)+sizeof(char)+sizeof(float)3、什么是交叉编译,为什么要采用交叉编译(5分)答:所谓交叉编译,是指在一个平台上编译生成在另一个平台上运行的可执行程序。(3分)之所以采用交叉编译,是因为目标平台上不具备直接运行开发环境的条件(2分)。4、在ARM系统中,函数调用的时候,参数是通过哪种方式传递的?参考答案:应用程序中使用中间寄存器和数据栈来传递参数。在ARM汇编中,如果第1-4个参数通过R0-R4来传递,超过4个的使用数据栈进行传递,输出函数R0传递。5、中断(interrupt,如键盘中断)与异常(exception,如除0异常)有什么区别?参考答案:所谓的中断应该是指外部硬件产生的一个电信号,从cpu的中断引脚进入,打断cpu当前的运行。所谓异常,是指软件运行中发生了一些必须作出处理的事件,cpu自动产生一个陷入来打断当前运行,转入异常处理流程。6、通过取出LedStatus的特定位进行判断选择对端口B的数据寄存器进行特定的清零,控制LED1和LED2灯的点亮,其中端口B(rPDATAB)的第2、3管脚分别连接LED1、LED2(注:管脚从第0管脚开始编号,低电平点亮,程序不更改其他位)参考答案:(1)取出LedStatus的第0位进行判断,如果成立则把端口B的数据寄存器的第2位清零,其余位状态保留,点亮LED1:If((Ledstatus&0x01)==0x01)rPDATAB=rPDATAB&0Xfffffffb;(2)取出LedStatus的第1进行判断,如果成立则把端口B的数据寄存器的第3清零,其余位状态保留,点亮LED2If((Ledstatus&0x01)==0x02)rPDATAB=rPDATAB&0Xfffffff7;
本文标题:arm题库(部分)
链接地址:https://www.777doc.com/doc-5509049 .html