嵌入式练习习题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、if (x-y<3) else
MOV r0, #0x61 MOV r1, #0x12 MOV r2, #0x3 SUB r3, r0,r1 CMP r2, r3 MOVGT r0,#0x0 MOVLE r1,#0x0
x=0; y=0;
;x= #0x61 ;y= #0x12 ;
;(x-y)<3
源自文库
3、for(i=0;i<20;i++) x[i]=a[i]*b[i]
Stop ; ; 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 1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,8
5、用ARM汇编语言实现C语言中的memset 的功能 AREA Block,CODE,READONLY num EQU 20 ENTRY Start LDR R0,=src ; MOV R2,#num MOV R3,#0
第六章 练 习 题
1. 简述基本的ATPCS。
第七章 练 习 题
1. 请编写进行状态切换的汇编程序实例 (在汇编程序中通过用户代码支持 interwork)。
第八章 练 习 题
1. 在C程序main函数中,接收用户输入(用户 任意输入9个整数),然后在main中调用使 用ARM汇编编写的函数(在该函数中完成 对这9个整数的排序功能),然后再在C程 序main函数中输出这9个排好顺序的整数.
第三章 练 习 题
1、 试写出异常响应和异常返回的伪代码。
2、请举例说明ARM各寻址方式的具体意义
第四章 练 习 题
1、 y=a*(b+c) mov r0, #0x1 MOV r1, #0x2 MOV r2, #0x12 ADD r3, r1,r2 MUL r4, r0, r3 ;a= #0x1 ;b= #0x2 ;c= #0x12
#include<stdio.h> extern void sort(int *srcarray,int number);
int main(void) { int i=0; int num=0; int *arr1=NULL; int *arr2;
while(num <= 0) { printf("please enter the number of elements:\n"); scanf("%d",&num); if(num > 0) { break; }
第一章 练 习 题
1.嵌入式系统的定义。 2.嵌入式系统有哪些特点? 3.嵌入式系统是如何分类的? 4.简述嵌入式处理器、嵌入式实时操作系统 的种类和特点。 5.如何选择嵌入式处理器和嵌入式操作系统? 6.简述嵌入式系统的设计过程。
第二章 练 习 题
1、简述ARM处理器种类及特点。 2、简述ARM处理器的工作状态。 3、简述ARM微处理器的七种运行模式。 4、简述ARM寄存器组织的特点。
Loop STR R3,[R0],#4 SUBS R2,R2,#1 BNE Loop Stop ; 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
第五章 练 习 题
1、简述基于一级页表的地址变换过程 2、试述cache的工作原理及地址映射方法
MOV r0, #0x14 MOV r1, #0x0 MOV r2, #0x100 MOV r3, #0x600 Loop LDR r4, [r1] LDR r5 ,[r2] MUL r6 ,r4,r5 STR r6 ,[r3] ADD r1, r1,#0x4 ADD r2, r2,#0x4 ADD r3, r3,#0x4 SUBS r0,#0x1 BNE Loop ;循环次数 ;存放a数组的首地址 ;存放b数组的首地址 ;存放x数组的首地址 ;取a数组的元素 ;取a数组的元素 ; a[i]*b[i] ;存x数组的元素 ;
;r0=r0-1
4、一组数存在一链表中,试求出这组数的和
MOV r0, #0x800 ; 取链表的首指针 MOV r1, #0x0 ;初始化和 Loop CMP r0 , #0 ;取a数组的元素 LDRNE r2, [r0] ;取a数组的元素 ADDNE r1, r1, r2 ; LDRNE r0, [r0,#0x4] BNE Loop
AREA SORTED,CODE,READONLY EXPORT sort sort: SUBS R1,R1,#1 loop: MOV R7,R1 MOV R4,R0 loop2: LDR R5,[R4] LDR R6,[R4,#4]! CMP R5,R6 BLE skip STR R5,[R4] STR R6,[R4,#-4] skip: SUBS R1,R1,#1 BNE loop2 MOV R1,R7 SUBS R1,R1,#1 BNE loop MOV PC,LR
}
arr1 = (int *)malloc(num*sizeof(int)); if(NULL == arr1) { printf("malloc failed!\n"); exit(-1); } arr2=arr1; printf("please enter the elements:\n"); for(i = 0; i<num; i++) { scanf("%d", arr1+i); } sort(arr1,num); printf("the result is:\n"); for(i = 0; i<num; i++) { printf("%d:\t%d\n", i, *(arr2+i)); } return 0;
}
AREA SORTED,CODE,READONLY EXPORT sort sort: SUBS R1,R1,#1 loop: MOV R7,R1 MOV R4,R0 loop2: LDR R5,[R4] LDR R6,[R4,#4]! CMP R5,R6 STRGT R5,[R4] STRGT R6,[R4,#-4] SUBS R1,R1,#1 BNE loop2 MOV R1,R7 SUBS R1,R1,#1 BNE loop MOV PC,LR
5、用ARM汇编语言实现C语言中的 memcmp的功能 AREA Block,CODE,READONLY num EQU 20 ENTRY Start LDR R0,=src LDR R1,=dst MOV R2,#num
Loop LDR R3,[R0],#4 LDR R4,[R1],#4 SUBS R3,R3,R4 BNE Stop SUBS R2,R2,#1 BNE Loop