ARM基础指令练习题汇总
ARM基础指令练习题汇总

2、分支程序设计
• 例.判读X、Y两个变量的大小,从而给变量Z 赋予不同的值
变量X、Y赋值
//if-else结构
int x=76,y=88;
X>Y? Z = 50
Yes
Z = 100
No
结束
if(x>y) else
z=100; z=50;
答案: • AREA Recyle_Just,CODE,READONLY • ENTRY • MOV R0,#32 • MOV R1,#46 • Loops • CMP R0,R1 • BEQ Next1 • CMP R0,R1 • BGT SSS • SUBS R1,R1,R0 • MOV R2,R1 • B Loops • SSS • SUBS R0,R0,R1 • MOV R2,R0 • B Loops • Next1 • END
3、循环程序设计
• 例:计算1+2+3+...+100的结果
sum=0; for(i=0; i<100; i++ ) sum=sum+i;
• 答案: • AREA Reycle, CODE, READONLY • ENTRY • MOV R1,#1 • MOV R2,#100 • START • ADD R3,R3,R1 • ADD R1,R1,#1 • CMP R1,#101 • BNE START • STOP • B STOP • END
• 4. C语言:
while (a!=b) { if(a>b) a-=b; else b-=a; }
• 如果用ARM汇编程序来实现,假设两个整数 分别放在寄存器R1和R2中。将结果放到R3中。
• 答案:
ARM题库含答案

ARM题库含答案一、判断题(共100题,每题1分,共100分)1.Linux的特点有内核小,功能强大,运行稳定,效率高等。
A、正确B、错误正确答案:A2.数码管共阴接法是指将负极接在一起。
A、正确B、错误正确答案:A3.复位时RSET引脚直接接电源A、正确B、错误正确答案:B4.使能时钟工作步骤是:1、配置CPU主时钟的来源,以及主时钟的具体频率。
2、配置各部件时钟的具体频率,并打开各部件时钟。
A、正确B、错误正确答案:A5.在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,BOOT1=0BOOT0=1从用户闪存启动,这是正常的工作模式。
A、正确B、错误正确答案:BS电路比TTL电路功耗大。
B、错误正确答案:B7.串口的发送与接受寄存器都是USART_DRA、正确B、错误正确答案:A8.储存器控制器全部寻址空间为1GBA、正确B、错误正确答案:A9.若定义任务task1的优先级为12,则不能再定义其他任务的优先级为12A、正确B、错误正确答案:A10.S3C2410X有24个外部中断源A、正确B、错误正确答案:A11.RCC_APB2PeriphClockCmd()函数是设置外设时钟。
A、正确B、错误正确答案:A12.我们通常将按键对应的引脚设置为上拉输入模式A、正确正确答案:A13.STM32F103ZET6芯片具有全球唯一A、正确B、错误正确答案:A14.MicroSD卡是一种常用的闪存卡,掉电保存,用于存储大量数据。
A、正确B、错误正确答案:A15.DS18B20是常用的数字温度传感器,其输出的是数字信号,具有体积小,硬件开销低、抗干扰能力强,精度高的特点。
A、正确B、错误正确答案:A16.寄存器r15作为程序计数器。
A、正确B、错误正确答案:A17.STM32开发板LED指示灯的阳极接CPU的PC0-PC7。
A、正确B、错误正确答案:B18.HSI是高速内部时钟,频率为8MHzA、正确B、错误正确答案:A19.VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。
arm指令练习题

arm指令练习题ARM指令练习题在计算机科学领域,指令是计算机硬件执行的基本单位。
而ARM指令则是一种常用的指令集架构,广泛应用于移动设备、嵌入式系统和高性能计算等领域。
为了更好地理解和掌握ARM指令的使用,我们可以通过练习题来加深对其的理解。
练习一:寄存器操作1. 将寄存器R0的值设置为0x12345678。
2. 将寄存器R1的值设置为寄存器R0的值加上0x80000000。
3. 将寄存器R2的值设置为寄存器R0和寄存器R1的异或结果。
4. 将寄存器R3的值设置为寄存器R1的值减去寄存器R0的值。
5. 将寄存器R4的值设置为寄存器R2的值右移8位。
练习二:条件分支1. 如果寄存器R0的值等于0x1234,则跳转到标签L1。
2. 如果寄存器R0的值小于0x1000,则跳转到标签L2。
3. 如果寄存器R0的值大于等于0x8000,则跳转到标签L3。
4. 如果寄存器R0的值不等于0x5678,则跳转到标签L4。
L1:; 执行一些操作L2:; 执行一些操作L3:; 执行一些操作L4:; 执行一些操作练习三:数据传输1. 将寄存器R0的值存储到内存地址0x2000处。
2. 将内存地址0x3000处的值加载到寄存器R1中。
3. 将寄存器R2的值存储到内存地址0x4000处,并将内存地址0x4004处的值加载到寄存器R3中。
练习四:逻辑运算1. 将寄存器R0的值与0xFF进行按位与操作,并将结果存储到寄存器R0中。
2. 将寄存器R1的值与0xFF进行按位或操作,并将结果存储到寄存器R1中。
3. 将寄存器R2的值与0xFF进行按位异或操作,并将结果存储到寄存器R2中。
练习五:算术运算1. 将寄存器R0的值与0x0F进行按位与操作,并将结果存储到寄存器R0中。
2. 将寄存器R1的值与0x0F进行按位或操作,并将结果存储到寄存器R1中。
3. 将寄存器R2的值与0x0F进行按位异或操作,并将结果存储到寄存器R2中。
ARM体系练习题二

ARM体系练习题二一、选择题1、下列描述不属于RISC计算机的特点的是()。
A.流水线每周期前进一步。
B.更多通用寄存器。
C.指令长度不固定,执行需要多个周期。
D.独立的Load和Store指令完成数据在寄存器和外部存储器之间的传输。
2、RS232-C串口通信中,表示逻辑1的电平是()。
A、0vB、3.3vC、+5v~+15vD、-5v~-15v3、ARM汇编语句“ADD R0, R2, R3, LSL#1”的作用是()。
A. R0 = R2 + (R3 << 1)B. R0 =( R2<< 1) + R3C. R3= R0+ (R2 << 1)D. (R3 << 1)= R0+ R24、IRQ中断的入口地址是( C)。
A、0x00000000B、0x00000008C、0x00000018D、0x000000145、和PC系统机相比嵌入式系统不具备以下哪个特点()。
A、系统内核小B、专用性强C、可执行多任务D、系统精简6、ADD R0,R1,#3属于()寻址方式。
A. 立即寻址B. 多寄存器寻址C. 寄存器直接寻址D. 相对寻址7、若R1=2000H,(2000H)=0x86,(2008H)=0x39,则执行指令LDR R0,[R1,#8]!后R0的值为()。
A. 0x2000B. 0x86C. 0x2008D. 0x398、假设R1=0x31,R2=0x2 则执行指令ADD R0,R1,R2 LSL #3 后,R0的值是()A. 0x33B. 0x34C. 0x39D. 0x389、IRQ中断的优先级别是()。
A. 1B. 2C. 3D. 410、LDR R2,[R3,#128] 的寻址方式是()。
A. 寄存器寻址B. 寄存器移位C. 变址寻址D. 间接寻址11、ARM处理器的工作模式有()种。
A. 5B.6C. 7D.8二、填空题:1、ARM7指令系统采用三级流水线指令,分别包括:取指、译码和执行。
ARM习题

一、选择题(每小题2分,共20分)1.下列操作系统不属于嵌入式操作系统的是:(A)。
(A)WinXP (B)uCOS (C)Linux (D)WinCE2.ARM体系结构中3级流水结构的第2阶段是(B )。
(A)取指(B)译码(C)执行(D)编译3.ARM一个字占(B)个字节。
(A)1 (B)4 (C)2 (D)84.作为堆栈指针寄存器的是(A)。
(A)R12 (B)R13 (C)R14 (D)R155.具有独立R8-15寄存器的工作模式是(D)。
(A)用户(B)系统(C)中断(D)快中断6.可以切换到Thumb状态的指令是:(A)。
(A)LDR R0,=LABLE+1 BX R0(B)LDR R0,=LABLE BL R0(C)LDR R0,=LABLE+1 BX R1(D)LDR R0,LABLE+1 BL R07.FIQ和IRQ分别为禁止和允许时,CPSR中F和I的设置是:( A)。
(A)10 (B)01 (C)00 (D)118.IRQ中断返回指令是:(A)。
(A)MOVS PC,R14 (B)MOVS PC ,R14_SVC(C)SUBS PC,R14_IRQ,#4 (D)SUBS PC,R14_FIQ,#49.下列中断优先级最低的是:( D)。
(A)FIQ (B)IRQ (C)中止(D)SWI10.R1内容是4000H,4000H (4字节对齐)开始向上依次存放数据1,2,3,4,5,执行指令LDMIA R1!,{R0,R1,R2,R3}后,R1中数据是:( A)。
(A)2 (B)3 (C)4 (D)11.下列不属于ARM体系结构特点的是:(D)。
(A)大而统一的寄存器文件。
(B)数据的加载和存储结构。
(C)地址的自动增加和减少。
(D)不固定的指令长度。
12.ARM7TDMI中,T的含义是(A)。
(A)Thumb指令扩展(B)支持片上调试(C)硬件乘法指令(D)观察点硬件13.R0内容是1000H,执行STR R1,[R0,#4]!后,R0内容是(B)。
ARM考试题

一、选择题(选15题,每小题2分,共30分)1. ARM 属于(A )[A] RISC 架构[B] CISC架构2. ARM 指令集是(C)位宽,Thumb 指令集是(B)位宽的。
[A] 8位[B] 16 位[C] 32位[D] 64位3. ARM 指令集是(H )字节对齐,Thumb 指令集是(F )字节对齐的[E] 1[F] 2 [G] 3 [H] 44. 复位后,ARM处理器处于(B )模式,(D )状态[A] User[B] SVC [C] System [D] ARM [E] Thumb5. ARM处理器总共(E )个寄存器,System模式下使用(A )个寄存器,SVC模式下使用(B )个寄存器。
[A] 17个[B] 18个[C] 32个[D] 36个[E] 37个6. ARM处理器中优先级别最高的异常为(E ),(AC )异常可以用来相应中断[A] FIQ[B] SWI [C] IRQ [D] SVC [E] RESET7. ARM数据处理指令中有效的立即数是(ACEGH )[A] 0X00AB0000[B] 0X0000FFFF [C ] 0XF000000F [D ] 0X08000012[E] 0X00001F80 [F] 0XFFFFFFFF [G] 0 [H] 0XFF000000页脚内容18. ATPCS规定中,推荐子函数参数最大为(D )个[A] 1[B] 2 [C ] 3 [D ] 49. ATPCS规定中,栈是(B )[A] 满加[B] 满减[C ] 空加[D ] 空减10. 在用ARM汇编编程是,其寄存器有多个别名,通常PC是指(D ),LR 是指(C ),SP是指(B )[A] R12[B] R13 [C ] R14 [D ] R1511. CPSR寄存器中反映处理器状态的位是(D )[A] J位[B] I位[C ] F位[D ] T位12. 下面属于ARM 子程序调用指令的是(C )[A] B[B] BX [C ] BL [D ] MOV13. ARM7属于(A )结构,ARM9属于(B )结构。
ARM基础知识单选题100道及答案解析

ARM 基础知识单选题100道及答案解析1. ARM 处理器采用的架构是()A. CISCB. RISCC. VLIWD. EPIC答案:B解析:ARM 处理器采用的是精简指令集(RISC)架构。
2. 以下哪个不是ARM 处理器的特点()A. 低功耗B. 高性能C. 复杂指令集D. 体积小答案:C解析:ARM 处理器是精简指令集,不是复杂指令集。
3. ARM 指令集的寻址方式不包括()A. 立即寻址B. 间接寻址C. 寄存器间接寻址D. 基址加变址寻址答案:B解析:ARM 指令集的寻址方式包括立即寻址、寄存器寻址、寄存器间接寻址、基址加变址寻址等,没有间接寻址。
4. 在ARM 体系结构中,用于存储程序状态寄存器的是()A. R0B. R13C. R15D. CPSR答案:D解析:CPSR(Current Program Status Register)用于存储程序状态。
5. 以下关于ARM 异常的说法错误的是()A. 复位异常优先级最高B. 未定义指令异常可以用于软件仿真C. 数据中止异常发生在数据访问时D. 快速中断异常响应速度比普通中断慢答案:D解析:快速中断异常响应速度比普通中断快。
6. ARM 处理器的工作模式不包括()A. 用户模式B. 系统模式C. 管理模式D. 超级模式答案:D解析:ARM 处理器的工作模式包括用户模式、系统模式、管理模式、中止模式、未定义模式、中断模式、快速中断模式。
7. 下列属于ARM 处理器的寄存器组的是()A. 通用寄存器B. 状态寄存器C. 控制寄存器D. 以上都是答案:D解析:ARM 处理器的寄存器组包括通用寄存器、状态寄存器和控制寄存器。
8. 在ARM 中,实现子程序调用的指令是()A. BB. BLC. BXD. MOV答案:B解析:BL 指令用于实现子程序调用,并保存返回地址。
9. 以下关于ARM 流水线的描述,错误的是()A. 提高了指令执行效率B. 增加了处理器的复杂度C. 减少了指令执行周期D. 不会产生流水线冲突答案:D解析:ARM 流水线可能会产生流水线冲突。
ARM练习题

简答题什么是嵌入式操作系统?答:嵌入式系统是以应用为中心,以计算机技术为基础,软/硬件可裁减,功能。
可靠性,成本,体积,功耗要求严格的专用计算机系统。
与通用计算机相比,嵌入式系统有哪些特点?答:(1).嵌入式系统通常是面向特定应用的;(2).嵌入式系统是将计算机技术,半导体技术和电子技术与各行各业的具体应用相结合的后的产物,是一门综合技术学科;(3).嵌入式系统和具体应用有机的结合在一起,它的升级换代也是和具体产品同步进行的,因此嵌入式产品一旦进入市场,就有较长的生命周期;(4).为了提高执行速度和可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘等载体中;(5).嵌入式系统本身不具有自主开发能力,即使设计完成以后用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。
ARM处理器有几种寻址方式,说明各种寻址的方式。
答:立即寻址:操作数直接放在指令中。
例如:ADD R0,R0,#0x3f ;R0←R0+0x3f寄存器寻址:操作数放在寄存器中。
例如:ADD R0,R1,R2 ;R0←R1+R2寄存器间接寻址:操作数在内存,以寄存器中的值作为操作数的地址。
例如:LDR R0,[R1] ;R0←[R1]基址加偏移量寻址(基址变址寻址):基址寄存器的内容与指令中的偏移量相加形成操作数的有效地址例如:LDR R0,[R1,#4] ;R0←[R1+4]LDR R0,[R1,R2] ;R0←[R1+R2]多寄存器寻址:一条指令可以完成多个寄存器值的传送。
例如:LDMIA R0,{R1,R2,R3,R4} ;R1←[R0];R2←[R0+4];R3←[R0+8];R4←[R0+12]堆栈寻址:堆栈是一种数据结构,按先进后出(First In Last Out,FILO)的方式工作,使用一个称作堆栈指针的专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶。
例如:STMFD R13!,{R0,R4-R12,LR}LDMFD R13!,{R0,R4-R12,PC}举例介绍嵌入式处理器有哪几类?答:1.嵌入式微处理器(Embedded Microprocessor Unit,EMPU);2.嵌入式微控制器;(Embedded Microcontroller Unit,EMCU)3.嵌入式DSP处理器(Embedded Digital Signal Processor,EDSP);4.嵌入式片上系统(Embedded System on Chip,EsoC);什么是立即数?请简要描述立即数在使用时有什么注意要点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 答案:
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • AREA CMP_subs,CODE,READONLY num EQU 20 ENTRY START LDR r0, =src LDR r1, =dst MOV r2, #num MOV sp, #0x400 Blockcopy MOVS r3,r2, LSR #3 BEQ copywords STMFD sp!, {r4~r11} Octcopy LDMIA r0!, {r4-r11} STMIA r1!, {r4-r11} SUBS r3,r3,#1 BEN Octcopy LDMFD sp!, {r4-r11} Copywords ANDS r2,r2,#7 BEQ STOP Wordcopy LDR r3, [r0],#4 STR r3, [r1],#4 SUBS 2,r2,#1 BEN Wordcopy AREA BlockData,DATA,READWRITE src DCD 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4 dst DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 END
src DCD 1,2,3,4,5,6,7,8,1,2, 3,4,5,6,7,8,1,2,3,4 dst DCD 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0
• 5. 内存数据区定义上。要求将数据从
源数据区复制到目标数据区。复制时, 以8个字为单位进行。对于最后所剩不足 8个字的数据,以字为单位进行复制。
3、循环程序设计
• 例:计算1+2+3+...+100的结果
sum=0; for(i=0; i<100; i++ ) sum=sum+i;
• 答案: • AREA Reycle, CODE, READONLY • ENTRY • MOV R1,#1 • MOV R2,#100 • START • ADD R3,R3,R1 • ADD R1,R1,#1 • CMP R1,#101 • BNE START • STOP • B STOP • END
ldr r0,=_a ldr r1,=_b ldr r2,[r0] ldr r3,[r1]
_loop
cmp r2,r3 beq _store subhi r2,r2,r3 sublo r3,r3,r2 b _loop
_store str r2,[r0] str r3,[r1] stop b STOP END
• 4. C语言:
while (a!=b) { if(a>b) a-=b; else b-=a; }
• 如果用ARM汇编程序来实现,假设两个整数 分别放在寄存器R1和R2中。将结果放到R3中。
• 答案:
• • • • • • • • • • • • • • • • • • • • • • • • • • AREA buf,DATA,READWRITE _a dcd 0x10 _b dcd 0x06 AREA e4,CODE,READONLY ENTRY code32
Array
AREA DCD DCD DCD
Buf,DATA,READWRITE 0x11,0x22,0x33,0x44 0x55,0x66,0x77,0x88 0x00,0x00,0x00,0x00
;定义数据段Buf ;定义12个字的数组Array
Array
AREA Buf,DATA,READWRITE ;定义数据段Buf DCD 0x11,0x22,0x33,0x44 ;定义12个字的数组Array DCD 0x55,0x66,0x77,0x88 DCD 0x00,0x00,0x00,0x00 AREA Example,CODE,READONLY ENTRY CODE32 LDR R0,=Array ;取得数组Array首地址 LDR R2,[R0] ;装载数组第1项字数据给R2 MOV R1,#4 LDR R3,[R0,R1,LSL #2] ;装载数组第5项字数据给R3 ADD R2,R2,R3 ;R2 + R3→R2 MOV R1,#8 ;R1=8 STR R2,[R0,R1,LSL #2] ;保存结果到数组第9项 END
ARM基础指令程序练习
本练习题是学习ARM基础指令之后的一 次汇总练习,欢迎学习嵌入式的同学交 流指导,切勿用于盈利传播,版权所有, 一经发现,违者必受法律严惩。
1、顺序程序设计
例:通过查表操作实现数组中的第1项数据和第5 项数据相加,结果保存到数组中 。
读取第1项数据 保存结果 读取第5项数据 结束 两项数据相加
2、分支程序设计
• 例.判读X、Y两个变量的大小,从而给变量Z 赋予不同的值
变量X、Y赋值
//if-else结构
int x=76,y=88;
X>Y? Z = 50
Yes
Z = 100
No
结束
if(x>y) else
z=100; z=50;
答案: • AREA Recyle_Just,CODE,READONLY • ENTRY • MOV R0,#32 • MOV R1,#46 • Loops • CMP R0,R1 • BEQ Next1 • CMP R0,R1 • BGT SSS • SUBS R1,R1,R0 • MOV R2,R1 • B Loops • SSS • SUBS R0,R0,R1 • MOV R2,R0 • B Loops • Next1 • END