1、_一、选择题1、ADDR0,R1,#3属于()寻址方式。A.立即寻址B.多寄存器寻址C.寄存器直接寻址D.相对寻址2、GET伪指令的含义是()A.包含一个外部文件B.定义程序的入口C.定义一个宏D.声明一个变量3、存储一个32位数0x876165到2000H2003H四个字节单元中,若以小端模式存储,则2000H存储单元的内容为()。A、0x00B、0x87C、0x65D、0x614、若R1=2000H,(2000H)=0x86,(2008H)=0x39,则执行指令LDRR0,R1,8!后R0的值为( )。A.0x2000B.0x86C.0x2008D.0x395、寄存器R13除了可以做通用寄
2、存器外,还可以做( )。A、 程序计数器B、链接寄存器C、栈指针寄存器D、基址寄存器6、FIQ中断的入口地址是( )。A、0x0000001CB、0x00000008C、0x00000018D、0x000000147、ARM指令集和Thumb指令集分别是( )位的。A.8位,16位B.16位,32位C.16位,16位D.32位,16位8、ARM寄存器组有( )个寄存器。A、7B、32C、6D、379、若R1=2000H,(2000H)=0x28,(2008H)=0x87,则执行指令LDRR0,R1,8!后R0的值为( )。A.0x2000B.0x28C.0x200810、 和PC机系统相比,下
3、列哪个不是嵌入式系统独具的特点( )A、 系统内核小B、专用性强C、可执行多任务D、系统精简11.ARM公司是专门从事( )A、基于RISC技术芯片设计开发B、ARM芯片生产C、软件设计D、ARM芯片销售12.ARM9系列微处理器是( )A、 三级流水线结构B、四级流水线结构C、五级流水线结构D、六级流水线结构13.所有工作模式下,( )都指向同一个物理寄存器,即各模式共享A、R0-R7B、R0-R12C、R8-R12D、R13,R1414.当异常发生时,寄存器( )用于保存CPSR的当前值,从异常退出时则可由它来恢复CPSR.A、SPSRB、R13C、R14D、R1515.能实现把立即数0X
4、3FF5000保存在R0中的指令是( )A、LDRR0,=0X3FF5000B、LDRR0,0X3FF5000C、MOVR0,0X3FF5000D、MOVR0,=0X3FF500016.ARM指令LDMIARO,R1,R2,R3,R4实现的功能是( )A、R1R0,R2R0+4,R3R0+8,R4R0+12 B、R1R0,R2R0-1,R3R0-2,R4R0-3C、R1R0,R2R0+1,R3R0+2,R4R0+3 D、R1R0,R2R0-4,R3R0-8,R4R0-12 17.( )伪指令用于定义一个代码段或数据段A、RLISTB、DCBC、MAPD、AREA18.在ARM体系结构中,要从主
5、动用户模式(User)切换到超级用户模式(Supervisor),应采用( )方法。A、直接修改CPU状态寄存器(CPSR)对应的模式 B、先修改程序状态备份寄存器(SPSR)到对应的模式,再更新CPU状态 C、使用软件中断指令(SWI) D、让处理器执行未定义指令三、 简答第一章:1、什么是嵌入式系统?与通用计算机系统相比,它有哪些特点?答:定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。特点:“专用”的计算机系统;运行环境差异很大;比通用PC系统资源少得多;低功耗、体积小、集成度高、成本低;具有完整的系统测试和可
6、靠性评估体系;具有较长的生命周期;需要专用开发工具和方法进行设计;包含专用调试路;多科学知识集成系统2、嵌入式系统组成结构包括哪几部分?嵌入式系统组成结构的理解。答:嵌入式系统由硬件和软件组成。嵌入式系统的硬件是以嵌入式微处理器为中心,配置存储器、I/O设备、通信模块以及电源等必要的辅助接口。嵌入式系统软件包括板级支持包层、实时操作系统层、应用程序接口层和应用程序层四层。3、简述嵌入式系统的硬件组成答:嵌入式系统的硬件是以嵌入式微处理器为中心,配置存储器、I/O设备、通信模块以及电源等必要的辅助接口。4、试分析通用操作系统与嵌入式操作系统的异同点,并解释什么是嵌入式实时操作系统。嵌入式操作系统
7、和嵌入式实时操作系统的概念有哪些不同?答:通用操作系统和嵌入式操作系统都对软、硬件资源进行分配和调度以及控制协调等,嵌入式操作系统与通用操作系统的不同之处在于它具有实时性高、可靠性好、可裁剪、体积小等特性。嵌入式实时操作系统(RealTimeEmbeddedOperatingSystem)是一种实时的、支持嵌入式系统应用的操作系统,是嵌入式系统的重要组成部分。嵌入式操作系统只注重平均性能,对整个系统来说,所有任务的平均响应时间是关键,对单个任务的响应时间不关心。嵌入式实时操作系统最主要的特性是性能上的“实时性”,也就是说系统的正确性不仅依赖于计算的逻辑结果,也依赖于结果产生的时间。是一个能够在
8、指定的或者确定的时间内,完成系统功能以及对外部或内部、同步或异步事件作出响应的系统。5、嵌入式操作系统具有哪些基本管理功能?多任务管理,存储管理,外围资源管理和中断管理。第二章:6、试比较CISC体系结构和RISC体系结构的特点。ARM为何采用RISC结构?答:比较:CISC指令集设计的主要趋势是增加指令集的复杂度。而复杂指令集的高性能是以宝贵、有限的芯片面积为代价的。RISC的中心思想是精简指令集的复杂度、简化指令实现的硬件设计,硬件只执行很有限的最常用的那部分指令,大部分复杂的操作则由简单指令合成。RISC思想大幅度提高了计算机性能价格比。采用RISC原因:(1)Load/store体系结
9、构(2)固定的32位指令(3)地址指令格式7、分别以ARM7TDMI和ARM9TDMI为例,介绍3级流水线和5级流水线的执行过程,并进行相应的比较。 3级流水线分为:取指,译码和执行。5级流水线分为:取指、译码、执行、缓冲数据、回写。它们的区别在于3级流水执行级中的寄存器读在5级流水的译码级中处理。3级流水执行级中的寄存器写在5级流水的回写级中处理。5级流水中的第4级缓冲数据表示如果需要则访问数据存储器,否则只是简单地缓冲一个时钟周期。3级流水采用冯诺依曼结构,不能同时访问指令存储器和数据存储器;5级流水采用哈佛结构,指令存储器与数据存储器分开,可以同时访问。8、ARM微处理器支持哪几种工作模
10、式?各个工作模式有什么特点?答:共支持7中工作模式:用户模式,系统模式,快速中断(FIQ)模式,普通中断(IRQ)模式,管理(SVC)模式,中止模式和未定义模式。用户模式:ARM处理器正常的程序执行状态。快速中断模式(FIQ):用于高速数据传输或通道处理。普通中断模式(IRQ):用于通用的中断处理。管理模式(SVC):操作系统使用的保护模式。中止模式:当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。系统模式:运行具有特权的操作系统任务。未定义模式:处理未定义的指令陷阱,支持硬件协处理器的软件仿真。9 ARM处理器共有多少个寄存器?这些寄存器在用户编程中的功能是如何划分的?ARM状态
11、下的通用寄存器可分为哪几类? ARM处理器共有37个寄存器,其中31个为通用寄存器,其余6个为状态寄存器。通用寄存器可分为未分组寄存器R0-R7,分组寄存器R8-R14和程序计数器R15。10 简述ARM状态下分组寄存器R13,R14,R15的特殊功能及R15的使用注意事项。 寄存器R13通常用做堆栈指针SP;寄存器R14用作子程序链接寄存器LR;寄存器R15被用作程序计数器PC。R15值的改变将引起程序执行顺序的变化,这有可能引起程序执行中出现一些不可预料的结果,因此,对R15的使用一定要慎重。ARM处理器采用多级流水线技术,因此保存在R15的地址并不是当前指令的地址。11、简述ARM处理对
12、异常中断的相应过程。(1) 将CPSR的内容保存到将要执行的异常中断对应的SPSR中,实现对处理器当前状态、中断屏蔽位、各条件标志位的保存。(2)设置当前状态寄存器CPSR中的相应位设置工作模式控制位,使处理器进入相应的执行模式设置中断标志位,禁止IRQ中断当进入RESET或FIQ模式时,还要禁止FIQ中断(3)将引起异常指令的下一条指令的地址保存到新的异常工作模式的R14,使异常处理程序执行完后能正确返回原程序。(4)给程序计数器(PC)强制赋值,根据中断向量地址跳转去执行中断处理程序。12.如果FIQ、IRQ和第3个异常(不是复位)同时发生,ARM应如何处理?答:如果第3个异常是数据中止,
13、处理器将在进入数据中止处理程序后立即进入FIQ处理程序。数据中止将“记”在返回路径中,当FIQ处理程序返回时进行处理。如果第3个异常不是数据中止,将立即进入FIQ处理程序。当FIQ和IRQ两者都完成时,程序返回到产生第3个异常的指令并进行相应处理。14 什么是ARM异常中断向量表?它有何作用?存储在什么地方? 中断向量表中指定了各异常中断与其处理程序的对应关系。在ARM体系中,异常中断向量表大小为32字节,每个异常中断占据4个字节。ARM异常向量表通常以存储器的低端0x0为起始地址,大多数ARM处理器核也支持将异常向量表存放在以0xFFFF0000为起始地址的32字节空间中。每个异常中断对应的
14、中断向量表的4个字节的空间中存放一个跳转指令或者一个向PC寄存器中赋值的数据访问指令LDR。通过这两种指令,程序将跳转到相应的异常中断处理程序处执行。15. 简述ARM的存储器层次。1) 寄存器组存储器层次的顶层,访问时间几个ns 2) 片上RAM具有和片上寄存器组同级的读/写速度 3) 片上Cache访问时间10ns,2级片外Cache访问时间几十ns 4)主存储器访问时间50ns 5)硬盘访问时间几十ms16.大端存储法与小端存储法有什么不同?对存储数据有什么要求与影响?小端:较高的有效字节存放在较高的的存储器地址,较低的有效字节存放在较低的存储器地址。大端:较高的有效字节存放在较低的存储
15、器地址,较低的有效字节存放在较高的存储器地址。第三章:17、ARM处理器如何进入和退出Thumb指令模式?用汇编语言实现ARM状态和Thumb状态互相的切换。答:进入Thumb模式:有2种方法。一种是执行一条交换转移指令BX,将指令中的目标地址寄存器的最低位置1,并将其他位的值放入程序计数器PC,则可以进入Thumb指令。另一种方法是利用异常返回,也可把微处理器从ARM模式转换为Thumb模式。退出Thumb模式:也有2种方法。一种是执行Thumb指令中的交换转移BX指令可以显式地返回到ARM指令流。另一种是利用异常进入ARM指令流。18.如何在汇编语言中定义和使用宏?答:定义:宏名MACRO
16、宏体MEND调用:宏调用的方式在源程序中需要复制宏体的地方写宏的名字。宏名单独占一行,当源程序被汇编时,汇编程序将对宏调用进行宏体复制,并取代宏名,这种复制操作称为宏展开。为了与源程序的其他部分相区分19、简述ARM汇编语言中伪操作,宏指令和伪指令的含义,伪操作和伪指令都分为哪几类?答:伪操作-伪操作只是在汇编过程中起作用,汇编结束,伪操作的使命也就结束。宏指令-是一段独立的程序代码,可插在源程序中,它通过伪操作来定义。伪指令-是ARM汇编语言程序里的特殊指令助记符,在汇编时将被合适的机器指令代替成ARM或Thumb指令,从而实现真正的指令操作。伪操作分类:符号定义伪操作数据定义伪操作汇编控制
17、伪操作信息报告伪操作其他伪操作伪指令分类:小范围的地址读取ADR中等范围的地址读取ADRL大范围的地址读取LDR空操作伪指令NOP20. ARM寻址方式有几种?举例说明ARM如何进行不同方式的寻址。1).寄存器寻址;如MOV R1, R2 2).立即寻址;如MOV R0, #0xFF003).寄存器移位寻址;如MOV R0, R2, LSL #34).寄存器间接寻址;如LDR R1, R25).基址加偏址寻址;如LDR R2, R3,#0x0C6).多寄存器寻址;如LDMIA R1!, R2-R4,R67).堆栈寻址;如STMFD SP!, R1-R7,LR8).相对寻址。如BL SUBR1第
18、四章:15、 S3C44B0X有多少个通用可编程多功能输入/输出引脚?可分为几类端口?答:71个通用可编程多功能输入/输出引脚,可分为7类端口:(1)2个9位输入/输出端口(PortE和PortF);(2)2个8位输入/输出端口(PortD和PortG);(3)1个16位输入/输出端口(PortC);(4)1个10位输出端口(PortA);(5)1个11位的输出端口(PortB)四、编程:1、两个矢量的标量积:MOVR11,#20初始化循环次数MOVR10,#0初始化总和LOOPLDRR0,R8,#4读取第一个分量LDRR1,R9,#4读取第二个分量MLAR10,R0,R1,R10乘积累加R1
19、0=R0*R1+R10SUBSR11,R11,#1减循环计数R11=R11-1BNELOOP2、10个数求和:MOVR1,#1MOVR0,#0LOOPADDR1,R1,R0ADDR0,R0,#1CMPR0,#10BNELOOP3. 把0x1000 地址开始的五个字求和 结果存到0x2000的地址MOV R0,#0x1000MOV R11,#0x2000LDMIA R0,R1R5ADD R10,R1,R2ADDC R9,R3,R4ADDC R8,R10,R9ADDC R7,R8,R5STR R7,R114 把0x1000 处开始的8个字存到 0x2000开始的地址MOV R0 , #0x1000
20、MOV R1 , #0x2000LDMIA R0,R1R8STMIA R11,R1R83、编写以字节为单位的字符串拷贝子程序,要求从存储器某处拷贝到另一处。源字符串的起始地址放入R1,长度(以字节为单位)放入R2,目的字符串的起始地址放入R3。LOOPLDRBR0,R1,#1STRBR0,R3,#1SUBSR2,R2,#1BNELOOPMOVPC,LR3.1 计算X*28 + Y/22 + ZLDR R0,XLDR R1,yLDR R2,ZADD R3,R2,R1 ASR #2 R3=Z+Y/4ADD R4,R3,R0 ASL # 8R4=R3+X*284、基于绝对地址的内存表举例。下面的伪操
21、作序列定义一个基于绝对地址的内存表,其首地址为固定地址8192(0x2000)。该内存表中包含5个作用域:consta长度为4字节,constb长度为4字节,x长度为8字节,y长度为8字节,string长度为16字节。MAP8192;内存表的首地址为8192(0x2000)constaFIELD4;consta长度为4字节,相对位置为0constbFIELD4;constb长度为4字节,相对位置为4xFIELD8;x长度为8字节,相对位置为8yFIELD8;y长度为8字节,相对位置为16stringFIELD16;string长度为16字节,相对位置为24在指令中可以这样引用内存中的数据域:L
22、DRR0,consta;将consta地址处对应的内容加载到R05、.基于相对地址的内存表举例。下面的伪操作序列定义一个基于相对地址的内存表,其首地址为0与R9寄存器值的和,该内存表包含5个数据域(与例11相同)。MAP0,R9;内存表的首地址为R9寄存器的值constaFIELD4;consta长度为4字节,相对位置为0constbFIELD4;constb长度为4字节,相对位置为4xFIELD8;x长度为8字节,相对位置为8yFIELD8;y长度为8字节,相对位置为16stringFIELD16;string长度为16字节,相对位置为24可以通过下面的指令访问地址范围超过4KB的数据:AD
23、RR9,FIELD;伪指令,将在后面介绍LDRR5,constb;相当于LDR,R5,R9,#46、编写一段程序实现在C语言中调用汇编语言程序,实现将1KB大小的内存块以字的形式复制到另一内存地址#include#defineNUM1024intmain()charstrFromNUM=hello world;charstrToNUM;_asmmovecx,NUM;leaesi,strFrom;leaedi,strTo;repmovsb;printf(%sn,strTo);7. ARM处理器如何进入和退出Thumb指令模式?用汇编语言实现ARM状态和Thumb状态互相的切换。进入Thumb模式
24、:有2种方法。一种是执行一条交换转移指令BX,将指令中的目标地址寄存器的最低位置1,并将其他位的值放入程序计数器PC,则可以进入Thumb指令。另一种方法是利用异常返回,也可把微处理器从ARM模式转换为Thumb模式。退出Thumb模式:也有2种方法。一种是执行Thumb指令中的交换转移BX指令可以显式地返回到ARM指令流。另一种是利用异常进入ARM指令流。ARM状态切换到Thumb状态:CODE32LDR R0, =Lable+1BX R0CODE16Lable MOV R1, #12Thumb状态切换到ARM状态: CODE16 LDR R0, =Lable BX R0 CODE32Lab
25、le MOV R1, #108. 请将下面C语言代码转换成汇编语言。 (1) If(a=0|b=1) c=d+e CMP R0, #0CMPNE R1, #1ADDEQ R2, R3, R4 (2) if (a= = b)&(c= = d)&(e= =f) g+;CMP R0, R1CMPEQ R2, R3CMPEQ R4, R5ADDEQ R6, R6, #19. 编写以字节为单位的字符串拷贝子程序,要求从存储器某处拷贝到另一处。源字符串的起始地址放入R1,长度(以字节为单位)放入R2,目的字符串的起始地址放入R3。LOOPLDRB R0, R1, #1STRB R0, R3, #1SUBS
26、 R2, R2, #1BNE LOOPMOV PC, LR10. 读懂下面一段程序,程序执行过程中寄存器R0、R1、R2中的内容如何变化?试分析并给出程序每一步所得的结果。 从执行完loop循环开始,循环结束时R0 0MOV R1, #y ;R1 76ADD R2, R0, R1, LSL #1 ;R2 152MOV SP, #0x1000 ;SP 0x1000STR R2, SP ;mem320x1000 152MOV R0, #Z ;R0 96AND R0, R0, #0XFF ;R0 96MOV R1, #y ;R1 76ADD R2, R0, R1, LSR #1 ;R2 134LDR
27、 R0, SP ;R0 152MOV R1, #0x01 ;R1 1ORR R0, R0, R1 ;R0 153 (0x99) (0b10011001)MOV R1, R2 ;R1 134 (0x86) (0b10000110)ADD R2, R0, R1, LSR #1 ;R2 220 (0xDC) (0b11011100)11.请使用MRS和MSR指令,通过修改CPSR寄存器,写出将处理器工作模式变为管理模式的子程序。(注意不能影响其它位,管理模式的二进制编码为10011)MRS R0, CPSRAND R0, R0, #0b11100000ORR R0, R0, #0b00010011MSR CPSR_c, R0MOV PC, LR11. 用汇编语言的移位指令实现 (变量A、B、C分别存放在寄存器R1、R2、R3中)ADD R1, R1, R1, LSL #3SUB R1, R1, R2, LSR R312. 用汇编语言实现96位整数加法(加数从高到低位存放在寄存器R8、R7、R6中,被加数从高到低位存放在寄存器R11、R10、R9中,结果从高到低位存放在寄存器R5、R4、R3中)。ADDS R3, R9, R6ADCS R4, R10, R7ADC R5, R11, R8Welcome ToDownload !欢迎您的下载,资料仅供参考!精品资料
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100