ARM习题及答案

上传人:琴**** 文档编号:19520000 上传时间:2017-11-19 格式:DOC 页数:7 大小:45.50KB
返回 下载 相关 举报
ARM习题及答案_第1页
第1页 / 共7页
ARM习题及答案_第2页
第2页 / 共7页
ARM习题及答案_第3页
第3页 / 共7页
ARM习题及答案_第4页
第4页 / 共7页
ARM习题及答案_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《ARM习题及答案》由会员分享,可在线阅读,更多相关《ARM习题及答案(7页珍藏版)》请在金锄头文库上搜索。

1、 1.1 什么是嵌入式系统?答:嵌入式系统是以应用为中心,以计算机技术为基础,软/硬件可裁减,功能。可靠性,成本,体积,功耗要求严格的专用计算机系统。1.2 与通用计算机相比,嵌入式系统有哪些特点?答:(1)嵌入式系统通常是面向特定应用的;(2)嵌入式系统是将计算机技术,半导体技术和电子技术与各行各业的具体应用相结合的后的产物,是一门综合技术学科;(3)嵌入式系统和具体应用有机的结合在一起,它的升级换代也是和具体产品同步进行的,因此嵌入式产品一旦进入市场,就有较长的生命周期;(4)为了提高执行速度和可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘等载体中;(5)

2、.嵌入式系统本身不具有自主开发能力,即使设计完成以后用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。1.3 ARM 处理器有几种寻址方式,说明各种寻址的方式。答:立即寻址:操作数直接放在指令中。例如:ADD R0,R0,0x3f ;R0R0 0x3f寄存器寻址:操作数放在寄存器中。例如:ADD R0,R1,R2 ;R0R1 R2寄存器间接寻址:操作数在内存,以寄存器中的值作为操作数的地址。例如:LDR R0,R1 ;R0R1基址加偏移量寻址(基址变址寻址):基址寄存器的内容与指令中的偏移量相加形成操作数的有效地址 如:LDR R0,R1,4 ;R0R14 LDR

3、R0,R1,R2 ;R0R1R2多寄存器寻址:一条指令可以完成多个寄存器值的传送。例如:LDMIA R0,R1,R2,R3, R4 ;R1R0;R2R04;R3R08;R4R012堆栈寻址:堆栈是一种数据结构,按先进后出(First In Last Out,FILO )的方式工作,使用一个称作堆栈指针的专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶。例如:STMFD R13!,R0,R4-R12 ,LRLDMFD R13!,R0,R4-R12,PC1.4 举例介绍嵌入式处理器有哪几类?答:1.嵌入式微处理器(Embedded Microprocessor Unit,EMPU) ;2.嵌入式

4、微控制器;(Embedded Microcontroller Unit,EMCU)3.嵌入式 DSP 处理器(Embedded Digital Signal Processor,EDSP) ; 4.嵌入式片上系统(Embedded System on Chip,EsoC) ;3.1 编写 1+2+3+*+100 的汇编程序。AREA EXAMPLE1, CODE,READONLY ;定义一个代码段,名称为 EXAMPLE1ENTRY ;入口MOV R0,#0 ;给 R0 赋值为 0MOV R1,#0 ;用 R1 来存放 1100 的总和,初始化为 0START ADD R0,R0,#1 ;用来

5、判断终止的,每次加 1ADD R1,R1,R0 ;从 1 加到 100 CMP R0,#100 ;执行 R0-100 的操作,但不保存,只影响 CPSR 的值BLT START ;带符号数小于时跳转到 START 处执行STOP B STOP ;死循环END 3.2 如何实现 128 位数的减法,请举例说明。AREA EXAMPLE2,CODE,READONLY ENTRYSTARTSUBS R5,R5,R9SBCS R4,R4,R8SBCS R3,R3,R7SBCS R2,R2,R6STOPB STOP END3.3 将存储器中起始地址地址 0X10 处的 4 个字数据移动到地址 0X20

6、处。AREA EXAMPLE2,CODE,READONLY ENTRYLDR R0,=0X10 ;把地址 0X10 赋给 R0LDR R5,=0X20 ;把地址 0X20 赋给 R5STARTLDMIA R0,R1-R4 ;把 R0 为首地址的内存单元中的值依次赋给,; R1 到 R4,每次赋完一次值,R0 自动加 1STMIA R5,R1-R4 ;把 R1 到 R4 的值依次赋给以 R5 为首地址的内存单元中,R5 每次自动加 1STOPB STOP ;死循环END3.4 参考 CPSR 寄存器中各标志位的含义,使处理器处于系统模式。AREA EXAMPLE2,CODE,READONLY E

7、NTRYSTARTMOV R0,#0X1F ;给 R0 赋值, 2 进制为 11111MSR CPSR_c,R0 ;把 CPSR 的条件位置 1STOPB STOP ;死循环END3.5 用跳转指令实现两段程序间的来回切换。AREA EXAMPLE5 ,CODE, READONLYENTRYBL X ;跳到 a 对 R0,R1 ,赋值START CMP R0,R1 ;比较 R0,R1 的值BNE Y ;不等跳转到 b BEQ STOP ;相等时跳转到 STOPXMOV R0,#3 ;对 R0,R1 赋值MOV R1,#2MOV R15,R14 ;返回YADD R1,R1,#1 ;R1 自加 1

8、B START ;跳转到 STARTSTOP B STOP ;死循环END3.5 ARM 调用 Thumb 子程序例子AREA ThumbSub, CODE, READONLY ; Name this block of codeENTRY ; Mark first instruction to executeCODE32 ; Subsequent instructions are ARM headerADR r0, start + 1 ; Processor starts in ARM state, BX r0 ; so small ARM code header used ; to call

9、 Thumb main program.CODE16 ; Subsequent instructions are Thumb. startMOV r0, #10 ; Set up parametersMOV r1, #3BL doadd ; Call subroutinestopMOV r0, #0x18 ; angel_SWIreason_ReportExceptionLDR r1, =0x20026 ; ADP_Stopped_ApplicationExitSWI 0xAB ; Thumb semihosting SWI doaddADD r0, r0, r1 ; Subroutine c

10、odeMOV pc, lr ; Return from subroutine.END ; Mark end of file3.6 字符串拷贝子程序,将 r1 指向的字符串拷贝到 r0 指向的地方,字符串以 0 作结束标志AREA SCopy, CODE, READONLYEXPORT strcopystrcopy ; r0 points to destination string; r1 points to source stringLDRB r2, r1,#1 ; load byte and update addressSTRB r2, r0,#1 ; store byte and upda

11、te address;CMP r2, #0 ; check for zero terminatorBNE strcopy ; keep going if notMOV pc,lr ; ReturnEND3.7、求两个数的最大值,并将最大值放 R0 寄存器AREA MAX,CODE,READONLYENTRYSTARTMOV R1,#0x16M0V R2,#0x17CMP R1,R2 MOVMI R0,R2MOVPL R0,R1STOPB STOP END3.8、循环实现数的递减,即每次减 1。最终结果为 0 时退出循环。AREA MAX,CODE,READONLYENTRYSTARTMOV R

12、0,#10LOOPSUBS R0,R0,#1BNE LOOPSTOPB STOP END3.9 、改下列 C 程序段代码为 ARM 汇编程序段代码。void gcd( int a, int b)while(a!=b)if (ab)a=a-b;elseb=b-a;AREA MAX,CODE,READONLYENTRYgcdCMP R0,R1BEQ STOPBLT LessSUB R0,R0,R1B STOPLessSUB R1,R1,R0STOPB STOP End4.1 什么是伪指令和伪操作?在 ARM 汇编中有哪几种伪 指令?答:在 ARM 汇编语言程序中有些特殊助记符,这些助记符与一般指令的助记符的不同之处在于没有相对应的操作码或者机器码,通常称这些特殊指令助记符卫伪指令,他们多完成的操作成为伪操作;在 ARM 汇编中,有如下几种伪指令:(1)符号定义伪指令; (2)数据定义伪指令;(3)汇编控制伪指令;(4)信息报告伪指令;(5)宏指令及其他伪指令。4.2 如何定义寄存器列表,试举一个使用寄存器列表的例子,要求实现 4 个字的内存复制。AREA EXAMPLE1,CODE,READONLYENTRYLDR R0,=0XFF ;把地址 0XFF 赋

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号