ARM嵌入式系统结构与编程题库--西安理工大学

更新时间:2024-07-08 11:25:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章 嵌入式系统开发基础 ......................................................................................................... 2

一.选择...................................................................................................................................... 2 二.填空...................................................................................................................................... 6 三.简答题 .................................................................................................................................. 7 四.应用题 .................................................................................................................................. 8 第二章 ARM技术概述 .................................................................................................................... 9

一.选择...................................................................................................................................... 9 二.填空.................................................................................................................................... 12 三.简答题 ................................................................................................................................ 14 四.应用题 ................................................................................................................................ 15 五.判断.................................................................................................................................... 16 第三章 基于ARM的嵌入式软件开发基础 ................................................................................. 18

一.选择.................................................................................................................................... 18 二.填空.................................................................................................................................... 20 三.简答题 ................................................................................................................................ 22 四.应用题 ................................................................................................................................ 22 五.判断.................................................................................................................................... 26 第四章 嵌入式系统应用开发实例 ............................................................................................... 28

一.选择.................................................................................................................................... 28 二.填空.................................................................................................................................... 30 四.应用题 ................................................................................................................................ 30 五.判断.................................................................................................................................... 31

第一章 嵌入式系统开发基础

一.选择

1. Sparc是属于以下哪家公司的;

A、Intel B、Apple C、 SUN D、Acer

2. 以下哪款CPU是第一款可扩展功能的微处理器:

A、 Intel B、 Apple C、 SUN D、 Acer

3. 以下哪个设备被大规模集成电路集成在一个芯片中。

A、CPU B、 计算机 C、 单片机 D、 外存

4. Flash属于哪种ROM形式 A、 RAM B、 EPROM C、 EEPROM D、 DRAM

5. 以下几种接口设备中传输速度最快的是 A、 Ieee1394 B、 USB C、 WiFi D、 蓝牙

6. 以下几种扩展卡中体积最大的是; A、 Cf B、 CFcard C、 Sd card D、 memory stick

7. 哈佛结构指的是 : A、 分开的指令存储器和数据存储器 B、 集成的指令存储器和数据存储器 C、 分开的指令缓冲器和数据缓冲器 D、 分开的指令缓冲器和数据缓冲器

8. 嵌入式系统开发过程中最费时间的是 A、 需求分析阶段 B、 设计阶段 C、 集成测试阶段 D、 可靠性测试阶段

9. 摩尔定律,每经过几个月,硅晶体管的数量就会增加一倍。 A、6, B、9, C、18 D、,24

10. 微控制器又被称作 : A、DSP B、单片机 C、嵌入式应用 D、PC

11. 以下关于SOPC的特征错误的是: A、SOPC不是一种嵌入式系统

B、使用可编程逻辑技术

C、具备软硬件在系统可编程的功能 D、单芯片、低功耗、微封装

12. 以下哪项不属于单片机的集成对象。 A、CPU

B、 SDRAM C、ROM D、 I/O接口

13. 以下哪个时期是微处理器发展的重要分水岭 A、20世纪60年代 B、20世纪80年代

C、20世纪70年代 D、20世纪90年代

14. 以下哪项不属于嵌入式系统的特征。 A、 嵌入性 B、 专用性 C、 计算机 D、 实时性

15. 以下关于嵌入式系统软硬件的的说法哪项是错误的是 。 A、 高效率的设计 B、 量体裁衣 C、 以代码冗余换取可靠性 D、 以较小的资源实现更高的性能

16. 在嵌入式系统软件开发中,操作系统是 A、 必不可少的 B、 经过裁剪的 C、 可以没有 D、 具有实时性的

17. 以下哪项技术优点SoPC系统并不具有。 A、 DSP B、 SOC C、 PLD D、 FPGA

18. 以下哪项不属于嵌入式操作系统的任务调度方式。 A、 抢占式调度法 B、 非抢占式调度法 C、 时间片轮转调度法 D、 抢先多任务调度法

19. 嵌入式系统的BootLoader应被包括在 里。 A、 BSP B、 HAL C、 SOC D、 SoPC

20. 以下哪项不属于BSP。 A、 HAL B、 API C、 BootLoader D、 设备驱动程序

21. 以下哪款CPU是业界第一款带有可扩展功能的微处理器。 A、 PowerPC B、 Sparc C、 RISC D、 MIPS

22. 以下哪款器件不属于可编程逻辑器件。 A、 PLD B、 CPLD C、 SOC D、 FPGA

23. 以下哪种存储器不属于易失性存储器 A、 ram B、 rom C、 DRAM D、 SRAM

24. 以下哪种存储器需要不断刷新来保持信息。 A、 SRAM B、 Flash C、 DRAM D、 EPROM

25. 以下哪种存储器不属于非易失性存储器 。 A、 EPROM B、 DRAM C、 FLASH D、 EEPROM

26. 以下哪种特性不适合FLASH A、 体积小 B、 功耗小 C、 质量小 D、 容量小

27. 以下哪种传输速度不适合IEEE1394接口。 A、100Mbps B、200 Mbps C、400 Mbps D、800Mbps

28. USB接口在低速模式下的传输速度可达到()。

12. ARM处理器的工作模式中不属于异常模式的有( ) A.系统模式sys B. 外部中断模式irq C.中止模式abt D.快速中断模式fiq

13. 在ARM Linux系统中,中断处理程序进入C代码以后,ARM的处于( )工作模式 A.超级用户(SVC) B.中断(IRQ) C.快速中断(IRQ) D.和进入中断之前的状态有关系

14. 在ARM Linux体系中,用来处理外设中断的异常模式是( ) A.软件中断(SWI) B.未定义的指令异常 C.中断请求(IRQ) D.快速中断请求(FIQ)

15. 在下列ARM处理器的各种模式中,( )模式有自己独立的R8-R14寄存器。 A.系统模式(System) B.终止模式(Abort) C.中断模式(IRQ) D.快中断模式(FIQ)

16. 在下列ARM处理器的各种模式中,只有( )模式不可以自由地改变处理器的工作模 式 A.用户模式(User) B.系统模式(System) C.终止模式(Abort) D.中断模式(IRQ)

17. 在ARM体系结构中,要从主动用户模式(User)切换到超级用户模式(Supervisor),应 采用何种方法?( ) A.直接修改CPU状态寄存器(CPSR)对应的模式 B.先修改程序状态备份寄存器(SPSR)到对应的模式,再更新CPU状态 C.使用软件中断指令(SWI) D.让处理器执行未定义指令

18. 同CISC相比,下面哪一项不属于RISC处理器的特征( ) A.采用固定长度的指令格式,指令规整、简单、基本寻址方式有2~3种。 B.减少指令数和寻址方式,使控制部件简化,加快执行速度。 C.数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令

的执行效率,同时简化处理器的设计。 D.RISC处理器都采用哈佛结构。

19. 对ARM处理器说法不正确的是( ) A.小体积.低功耗.低成本.高性能 B.支持Thumb(16位)/ARM(32位)双指令集 C.只有Load/Store指令可以访问存储器 D.寻址方式多而复杂

20. 嵌入式微控制器相比嵌入式微处理器的的最大特点( ) A.体积大大减小 B.单片化

C.功耗低 D.成本高

21. 关于RISC指令系统描述不正确的是( ) A.优先选取使用频率最高的一些指令 B.避免使用复杂指令 C.不需要一个复杂的编译器 D.寻址方式种类少

22. 以下叙述中,不符合RISC指令系统特点的是( ) A.指令长度固定,指令种类少 B.寻址方式种类丰富,指令功能尽量增 强 C.设置大量通用寄存器,访问存储器指令简单 D.选取使用频率较高的一些简单指令

23. 和PC系统机相比嵌入式系统不具备以下哪个特点( ) A.系统内核小 B.专用性强 C.可执行多任务 D.系统精简

24. ARM9和ARM7的重要区别是( ) A.ARM9带有MMU功能 B.ARM9支持Thumb指令集 C.ARM9带有Cache功能 D.ARM9是冯诺依曼结构

25. 哈佛结构和冯诺依曼结构的区别是( ) A.指令和数据分开存储 B.不需要程序计数器 C.统一编址 D.单一数据总线

26. 嵌入式系统的开发通常是在交叉开发环境实现的,交叉开发环境是指( ) A.在宿主机上开发,在目标机上运行 B.在目标机上开发,在宿主机上运行 C.在宿主机上开发,在宿主机上运行 D.在目标机上开发,在目标机上

27. ARM嵌入式系统中,PC指向的是正在( )的指令地址 A.执行 B.译码 C.取指 D.都不是

28. Intel XScale处理器的内核采用了( )版本的架构 A. ARM V3 B. ARM V4 C. ARM V5TE D. ARM V6

29. 对于ARM7三级流水线,当一条指令被译码时,下一条指令正被( ) A. 取指 B. 译码 C. PC值递增 D.执行

30. 若前次运算结果为0,CSPR的哪一项值为1( ) A.N B.Z C.C D.V

二.填空

1. ARM硬件中断主要有:______、______、______、______等4种。

2. ARM的主要中断寄存器包括:______、_____、______、______等。

3. ARM芯片主要封装有______、______、______、______、______、______等形式。

4. ARM7TDMI与ARM720T的一个重要区别在于后者有______、______。

5. ARM内核有四个功能模块,即______、______、______、______,可供生产厂商根据不同

用户的要求来配置生产ARM芯片。

6. 在ARM7中_____个用户可见寄存器中,链接寄存器LR是________,堆栈指针SP是________

7. 小端模式是ARM9处理器的默认模式。一般通过硬件输入引脚________来配置工作模式。 若要实现支持大端存储系统,该引脚接________电平。

8. 计算机有CISC和RISC两种类型,以ARM微处理器为核心的计算机属于________,而一般的

PC属于________。

9. 哈佛体系结构数据空间和地址空间________,ARM7TDMI采用________的内核架构。

10. 复位时ARM7TDMI处理器________正在执行的指令。

11. ARM处理器的默认格式是________,其存储规则是________.

12. 系统模式用于支持操作系统的________任务等。与用户模式类似,但可以________切换 到其他模式。

13. CPSR有若干控制位和若干条件代码标志构成:T为0表示处理器工作在________状态。

14. Cortex-M3是一款低功耗处理器,具有________少,________短,调试成本低的特点,是 为要求有快速中断响应能力的深度嵌入式应用而设计的。

15. ARM字数据处理格式有:________和________。

16. ARM的数据处理格式大端格式其存储规则是________。

17. ARM支持________和________两种中断异常。

18. ARM系列微处理器支持的边界对齐格式有:________,________和字对齐

19. ARM系列微处理器支持的边界对齐格式有:________,________和字对齐。

20. ARM的七种工作模式可分为两大类,即________模式和________模式,其中用户模式属于

________。

21. ARM处理器中CPSR和SPSR的中文名称分别为________寄存器和________寄存器。

22. ARM处理器复位后,PC的地址一般是________,初始的工作模式是________。

23. ARM9的工作模式有7种,其中除了________外的其他6种模式称为特权模式。

24. ARM7有________处理器状态,分别是_______状态和__________状态。

25. ARM7有7处理器模式,分别是________,_________,_________,_______,________,_

_______,________。

26. ARM7内核采用______体系结构,数据和指令使用同一条总线。ARM7内核有一条_____流水

线,执行_______指令集,最适合对于价位和功能要求较高的消费类应用。

27. ARM7TDMI中,T表示16为Thumb指令集,D表示(片上可调式 ),M表示内嵌乘法器,I表

示(嵌入式ICE),支持在线断点和调试。

28. ARM7TDMI采用_______级流水线结构,ARM920TDMI采用________级流水线。

29. ARM10E内核为______处理器,具有高性能、低功耗的特点、ARM10E采用了新的体系结构

,与同等的ARM9器件相比,在同样的时钟频率下,性能提高了近______。

30. _______是正常程序工作模式,特点是不能________切换到其他模式。

31. _________是“操作系统保护代码”,复位和软中断响应时进入此模式。

三.简答题

1. RISC体系结构的特点。

2. 与CISC体系结构相比,RISC体系结构具有哪些优缺点?

3. ARM结构与RISC体系结构相比有哪些区别?

4. 与ARM指令集相比,Thumb指令集具有哪些优缺点?

5. ARM9 5级流水线,相比ARM7 3级流水线有哪些改进?

6. ARM处理器的工作模式?

7. ARM处理器的工作状态在什么情况发生改变?如何实现的?

8. 请简述ARM的异常中断响应过程。

9. 简述ARM程序状态寄存器的各位的功能。

10. ARM微处理器共有多少个寄存器?它们是按照怎样的功能进行划分的?

四.应用题

1. 编写一个带有子程序的完整C程序,汇编子程序实现从存储器某处拷贝一个字符串到存储

器另一处的功能。源字符串的开始地址放入R1,长度(以字节为单位)放入R2,目的字符串的

开始地址在R3。

2. 请编写完整的ARM与C程序以完成如下功能: 使用R5中存放有被减数,R6中放置减数,调用C程序实现的子程序ABS,计算ABS(a-b) ,并将结果放在R2中。

3. 编写一个带有子程序的完整ARM程序,子程序实现从存储器某处拷贝一个字符串到存储器

另一处的功能。源字符串的开始地址放入R1,长度(以字节为单位)放入R2,目的字符串的开

始地址在R3。

4. 试编写一段C语言内嵌ARM汇编语言的混合编程代码,内嵌汇编实现完成将存放在R4中的

数据乘以10的操作,并在C语言中打印最终结果。

5. 阅读下方的代码段,试画图分析各个寄存器在指令7与指令8执行前后的变化。(数据存 储采用大端模式) MOV R1,#0xF000 MOV R0,#0x12 MOV R2,#0x34 MOV R4,#0x56 MOV R6,#0x78 MOV R8,#0x9A STMIA R1!,{R8,R2,R4,R6} LDMED R1!,{R2,R4,R8,R6}

6. 试编写一段C语言与汇编语言的混合编程代码,实现在汇编语言程序中调用C子程序,完

成字符串STR1与STR2的内容的互换。

7. 试编写一个完整的C语言程序,使用内嵌ARM汇编完成加法运算,操作数放在R0和R1寄存

器中,结果放在R0中。

8. ARM通用数据处理指令的第二操作数当取为立即数的时候,是由一个8位的数字常量通过

循环移动偶数位来生成的。请判断以下常量中那些是非法常量,那些是合法常量,如果合法 的话,请写出指令中的12位结构。(写出必要的判定过程) 0XE000001F 0X10C 0XFF00C 0XF00001F 0X1FC000 0X3FE

9. 请用ARM指令编写程序实现将数据从源数据区Src拷贝33个字节的数据到目标数据区Dst,

要求以字为单位进行拷贝,如果不足字时则以字节为单位进行拷贝。

10. 试编写一段C语言与汇编语言的混合编程代码,实现在C语言程序中调用汇编子程序,完

成字符串STR1与STR2的内容的互换。

五.判断

1. ARM7TDMI中的M代表增强型乘法器。( )

2. ARM7TDMI内核包含一个CPSR和5个SPSR。( )

3. 嵌入式系统的软件系统要求反应时间必须快,反应时间都要可测。(

4. ARM7TDMI中的T代表支持Thumb指令集。( )

5. ARM-CPU由多家不同制造商生产,芯片外部提供的总线是不一致的。( )

6. ARM包含32个通用寄存器。( )

7. ARM处理器的运行模式可以通过中断或异常处理改变。( )

8. ARM处理器结构体系中具有T变种处理器核可以工作在ARM状态和Thumb状态。( )

9. ARM处理器实现加载/存储(load/srore)体系结构是典型的RISC处理器。( )

10. ARM处理器中具有特权的操作系统任务通常运行在用户模式。(

11. ARM处理器中系统模式是正常的程序执行状态。( )

12. ARM和Thumb状态间的切换并不影响处理器模式或寄存器内容。( )

13. ARM将其技术授权给世界上许多著名半导体、软件和OEM厂商,每个厂商得到的都是一套

独一无二的ARM先关技术及服务,ARM很快成为全球性RISC标准的缔造者。( )

14. ARM体系结构v4T及以上版本定义了 Thumb指令集的32位指令集。( )

15. ARM指令的特点是指令少,使用多个寄存器,可以长度不等。(

16. JTAG是一种嵌入式系统中常用大数据传输接口。 ( )

17. JTAG引脚TCK的作用是参考时钟信号。作为JTAG模块串行输入/输出的同步时钟。( )

18. JTAG引脚TDI的作用是数据输入,其串行输入数据被送至指令寄存器中。( )

19. 如果异常发生在Thumb状态中,处理器会切换到ARM状态,在异常返回时,自动切换回Thu mb状态。( )

20. RISC的指令要比CISC多20%-40%,但是RISC的大多数指令只用一个机器周期即可实现。( )

21. StrongArm是ARM系统中的一个类型。( )

22. Thumb的CPSR和SPSR与ARM的CPSR和SPSR相同( )

23. Thumb的R0-R7与ARM的R0-R7相同( )

24. 处于就绪状态的任务只能切换到运行状态( )

25. 大多数的DSP芯片采用了哈佛体系结构。 ( )

26. 调试程序时,需要停止程序运行后才可查看变量内容( )

27. 多功能流水线是指同一流水线上可有多种连接方式来实现多种功能。( )

28. 冯诺依曼体系将被哈佛体系所取代( )

29. 哈佛体系结构的主要特点是指令和数据分别存储在同一个存储体内,因此访问效率高。(

30. 哈佛体系结构是一种并行体系结构。( )

第三章 基于ARM的嵌入式软件开发基础

一.选择

1. LDR R2,[R3,#128]的寻址方式是( ) A.寄存器寻址 B.寄存器位移 C.变址寻址 D.间接寻址

2. 假设R1=0x31,R2=0x2则执行指令ADD R0,R1,R2 LSL#3后,R0的值是( ) A.0x33 B.0x34 C.0x39 D.0x38

3. 用于判断R0的最低位是否为1的指令是( ) A.TST R0,#0x01 B.TEQ R0,#0x01 C.BIC R0,R0,#0x01 D.AND R0,R0,#0x01

4. 用于判断R0的最低位是否为1的指令是( ) A.TST R0,#0x01 B.TEQ R0,#0x01 C.BIC R0,R0,#0x01 D.AND R0,R0,#0x01

5. 若R1=2000H,(2000H)=0x86,(2008H)=0x39,则执行指令LDR R0,[R1,#8]!后R0的 值为( ) A.0x2000 B.0x86 C.0x2008 D.0x39

6. 若只是用一条指令使某寄存器的高四位不变,低四位清零,则应使用( )操作指令 A. 与 B. 或 C. 非 D.位取反

7. 寄存器R15除了可做通用寄存器外,还可做( ) A.程序计数器 B.链接寄存器 C.栈指针寄存器 D.基址寄存器

8. ARM指令集和Thumb指令集分别是( )位的 A.8,16 B.16,32 C.16,16 D.32,16

9. 寄存器R13除了可以用做通用寄存器外,还可以做( ) A.程序计数器 B.链接寄存器 C.栈指针寄存器 D.基址寄存器

10. 执行下面的指令后,改变R1寄存器内容的指令是( ) A.TST R1,#2 B.ORR R1,R1,R1 C.CMP R1,#2 D.EOR R1,R1,R1

11. 对寄存器R1的内容乘以4的正确指令是( ) A.LSR R1,#2 B.LSL R1,#2 C.MOV R1,R1,LSL #2 D.MOV R1,R1,LSR #2

12. 指令\!,{R1,R2,R3,R4}\的寻址方式为( ) A. 立即寻址 B.寄存器间接寻址 C.多寄存器寻址 D.堆栈寻址

13. 如果需要保存返回地址,则可以使用下列哪个转移指令( ) A. B B.BX C. BL D.BP

14. 子程序的最后一条指令必须是( ) A. MOV PC, R14 B. MOV PC, R14_und C. SUBS PC, R14_fig,#4 D. SUBS PC, R14_irg,#4

15. 中断服务程序的最后一条指令必须是( ) A. MOV PC, R14 B. MOV PC, R14_und C. SUBS PC, R14_fig,#4 D. SUBS PC, R14_irg,#4

16. 快速中断服务程序的最后一条指令必须是( ) A. MOV PC, R14 B. MOV PC, R14_und C. SUBS PC, R14_fig,#4 D. SUBS PC, R14_irg,#4

17. ARM7处理器响应中断时,处理器硬件修改PC为( ) A.0x0000000B B.0x00000000 C.0x00000018 D.0x0000001C

18. ARM7处理器响应快速中断时,处理器硬件修改PC为( ) A.0x0000000B B.0x00000000 C.0x00000018 D.0x0000001C

19. ARM7的寻址方式有( )种 A.6 B.7 C.8 D.9

20. 处理器从存储器读数据的指令(加载指令)的助记符是( ) A.LDR B. STR C.SWP D.SWPB

21. 处理器从存储器写数据的指令(存储指令)的助记符是( ) A.LDR B. STR C.SWP D.SWPB

22. 数据传送指令的助记符是( ) A.MOV B.SBC C.ADD D.SUB

23. 带进位加法指令的助记符是( ) A.ADC B.SBC C.ADD D.SUB

24. 带进位加法指令的助记符是( ) A.ADC B.SBC C.ADD D.SUB

25. 带借位减法指令的助记符是( )

A.ADC B.SBC C.ADD D.SUB

26. ARM7嵌入式处理器指令的执行周期包括( ) A.启动、运行、退出 B.取指令、指令译码、执行指令、存储 C.启动、运行、挂起、退出 D.取指令、指令译码、执行指令

27. 执行下述述指令序列后,R1寄存器的值是( ) MOV R1,#0x1000 LDR R0,[R1],#4 A. 0x1000 B. 0x1004 C. 0x0FFC D. 0x4

28. 如果数据的存储格式是大端模式,32bit宽的数0x12345678在大端模式下的CPU内存中的

存放(假设从地址0x4000开始)。内存地址为0x4001的内容是( ) A. 0x34 B.0x56 C. 0x23 D.0x78

29. 存储一个32位数0x876165到2000H~2003H四个字节单元中,若以小端模式存储,则2000H

存储单元的内容为( ) A.0x00 B.0x87 C.0x65 D.0x61

30. ARM汇编语句“ADD R0, R2, R3, LSL#1”的作用是( ) A. R0 = R2 + (R3 << 1) B. R0 =( R2<< 1) + R3 C. R3= R0+ (R2 << 1) D. (R3 << 1)= R0+ R2

31. 存储一个32位数0x2168465到2000H~2003H四个字节单元中,若以大端模式存储,则2000

H存储单元的内容为( ) A.0x21 B.0x68 C.0x65 D.0x02

二.填空

1. 指令LDR R2,,[R0,R1]!执行后,结果是_______。

2. 将R0,R1压入堆栈,使用指令STMFD SP!,{R0,R1}进栈;出栈时使用指令_______。

3. 标号L1处为Thumb指令,程序当前运行状态为RAM状态,则转移到L1需要使用的指令(一

条或多条)是_______。

4. R1=0x200,R0=0x2执行STR R0,[R1],#12后,内存0x200的值是_______,内存0x20C的值 是_______。(如不能确定值是多少填“不确定”)。

5. _______是根据指令中给出的地址码字段来实现寻找真正操作数地址的方式。

6. 0x17&0x11的运算结果是_______。

7. BLX指令的功能是_______。

8. LDR R0,[R1,#6]的寻址方式是_______。

9. &运算符作为单目运算符时表示的是______运算;作为双目运算符时表示的是_____运算 。

10. 当发生异常中断时,_______保存的是异常处理程序的返回地址。

11. 中断向量是指中断处理程序 _______。

12. ARM系列微处理器支持的边界对齐格式有:_________________、______________和字对 齐。

13. ARM C/C++编译器支持和产生以下几种格式的文件:_____、____、____、______、_____ _。

14. 与ARM指令的LDR相比,伪指令的LDR的参数有_______符号。

15. _______指令在进行跳转的同时可以实现处理器状态的转换。

16. B和BL分支指令的跳转范围_______地址范围。

17. CMP指令与SUBS指令的区别在于_______。

18. 若使用LDR指令加载数据到PC寄存器,则实现_______功能。

19. ARM内核在中断异常位置时_______中断禁止控制位,这样可以防止不受控制的异常嵌套 。

20. Thumb指令集带有传统的_______和_______指令用于堆栈操作处理,他们以_______的方

式来实现。

21. 堆栈操作通常发生在_______、_______或者_______时。

22. ARM指令的长度刚好是_______,Thumb指令的长度刚好是_______。

23. 在PC上编译ARM运行的程序,需要______编译器。

24. 建立ARM编译环境的主要开发工具有______、______和______。

25. 嵌入式操作系统的调试一般包括:_________调试和_________调试。

26. 汇编语言与C/C++的混合编程通常有以下几种方式:_____、______、______。

27. 在ARM的汇编程序中,有如下几种伪指令:_____、______、______、______、______。

28. ARM指令集可以分为6类,分别是:______、______、______、______、_____、______。

29. ARM系统中,按照ATPCS的规定,子程序调用时可以利用_______等四个寄存器来传递参数

,更多的参数可以利用_______来传递。

30. ARM指令的长度是_______个字节,Thumb指令的长度是_______个字节。

三.简答题

1. 请比较ARM指令和Thumb指令的边界对齐方式有何不同?

2. 请试述ARM处理器对SWI异常中断的执行与返回过程。

3. 请比较内嵌汇编器与armasm汇编器的区别

4. 请比较参数宏与子程序的区别

5. 请解释可重入函数的概念,举例说明具有可重入性的程序的特点。RM7TDMIJ-S处理器的

名字的含义。

6. 解释volatile限制符在程序中的作用,并举例说明。

7. 请解释A请解释ARM9TDMIJ-S处理器的名字的含义。

8. 简述ARM处理器对状态寄存器进行赋值的方法。

9. ARM指令集中,转移指令十分重要,请举例说明ARM转移指令的用法。

10. 请比较参数宏与子程序的区别。

四.应用题

1. 试编写一段完整的ARM汇编程序,实现将内存地址0xB000开始的100个字的内存单元填入0

x1000001~0x10000064的字数据,然后将每个字单元进行64位累加操作,结果保存在[R9,R8]

(R9中保存高32位)

2. 试编写一段完整的ARM汇编程序,实现将内存区中连续的32个字的数据所构成的8*4矩阵

实现转置操作。

3. 试编写一段完整的汇编程序,实现将一个存放在[R1,R0]中的64位数据的高位与低位对称 的换位,例如第0位与第63位调换,。。。。第31位与第32位调换。

4. 试编写一段完整C语言与汇编语言的混合编程代码,用C语言程序调用汇编子程序子,程

序实现计算30的阶乘,并将64位的结果保存到0xFFFFF000开始的内存地址单元中,按照小端

格式进行存放。

5. 试编写一段完整C语言与汇编语言的混合编程代码,实现在汇编程序中调用C语言子程序

子程序实现计算20的阶乘,并将64位结果保存在寄存器R0,R1中。其中R1存放高32位的结果 。

6. 试编写一段C语言与汇编语言的混合编程代码,实现在C语言程序中调用汇编子程序,子

程序实现计算i的阶乘。

7. 分析下面的程序,程序执行过程中寄存器R0、R1、R2的内容如何变化?试分析程序每一 步的结果,为每句指令添加必要的注释。 .equ x ,88 .equ y ,76 .equ z ,96 .equ stack_top ,0x1000 .global _start .text _start: MOV R0, #0xAB loop: MOV R0,R0,ASR #1 MOV R1,#y ADD R2 ,R0,R1,LSL#1 MOV SP ,#stack_top STR R2,[SP] MOV R0,#z AND R0,R0,#0XFF MOV R1,#y ADD R2,R0,R1,LSR#1 LDR R0,[SP] MOV R1,#0x01 ORR R0, R0, ,R1 MOV R1,R2

ADD R2,R0, R1 LSR #1 stop:

B stop .end

8. 试写一段C语言与汇编语言的混合代码,在C语言程序中调用汇编语言代码,汇编代码实

现以下逻辑: if((a==b)&&(c==d)) e++,并带有必要的注释。

9. 试写一段汇编语言的混合代码,在ARM语言程序中调用Thumb子程序,完成字符串STR1与

字符串STR2内容的互换。

10. 为以下程序添加注释,并注明状态的切换,和程序每一步的结果。 .global .text _start: .arm header: ADR R0 , Tstart+1 BX R0 NOP .THUMB Tstart: MOV R0 , #47 MOV R1 , #63 BL doadd stop: B stop doadd: ADD R0 , R0, R1 MOV PC , LR .end

11. 以下是ARM程序中的两处变量定义,请画出在两处变量在数据区中的布局。并编写完整代

码,以子程序实现两块空间的内容互换。 char a; char a; short b; char c char c; short b; int d; int d

12. 程序排错: int bad_sum(int x , int y) { int t=0; _asm

{ start ADD t , R0 ,t MOV t , R0 ADD R0 , R0 , #1 CMP R2 , R0 BG start } return t; } int main(void) { int a=5; int rs=bad_sum(1,5); }

13. 假设R1=0x56781234,使用将R1存储到0x4000的指令存到存储器中。若存储器为大端组织

,从存储器0x4000处加载一个字节到R2,写出两处的指令,并给出指令执行完毕后R2的值。

14. 下面一段程序完成了将一个寄存器的内容以十六进制符号在显示器上打印出来的功能。 请给程序加上详细的注释并写出运行结果。 AREA HexOu,CODE,READOULY

SWI_WriteC EQU &0 ; SWI_ Exit EQU &11 ; ENTRY ;

LDR R1,VALUE ; BL HexOut ; SWI SWI_ Exit ; VALUE DCD &12345678 ; HexOut MOV R2,# 8 ;

LOOP MOV R0,R1,LSR # 28 ; CMP R0,# 9 ; ADDGT R0,R0,# “A”-10 ; ADDLE R0,R0,# “0” ; SWI SWI_WriteC ;

MOV R1,R1,LSL # 4 ; SUBS R2,R2,# 1 ; BNE LOOP ; MOV PC,R14 ;

本文来源:https://www.bwwdw.com/article/0uh.html

Top