ARM复习题(2)

2020-03-26 19:24

1. 传统软件开发过程

答:项目可行性分析、需求分析、系统设计、编码、测试、运行与维护 2. 嵌入式软件开发过程

答:(1)嵌入式系统的需求获取与需求分析(2)设计系统的体系结构,选择处理器和相关外部设备,操作系统开发平台以及软硬件的需求分割和总体系统集成(3)硬件结构设计,软件的系统设计(4)软硬件详细设计(5)软件代码的开发,软件测试与调试(6)软硬件的联调与集成(7)系统的调试(8)系统运行与维护

3.Cache的分类

答:1,全相联映像方式 2,直接映像方式 3,主相联映像方式

4.Cache的地址变换的分类

答:1,统一/独立的数据cache 和指令cache 2,写通cache和写回cache 3,读操作分配cache和写操作分配cache

二、计算题

1.若寄存器R1=0X001A,R2=0X00008060,而内存地址存放的数据是0X00B3,则执行下列指令后,寄存器R0的值: LDR R0,[R2]

2.若寄存器R3=0X0056,R1=0X0006, 则执行下列指令后,寄存器R6的值: ADD R6,R3,R1,LSL#2

3.若寄存器R1=0X00008000,而0X00008000内存地址存放的数据是0X008A,内存地址0X00008004存放的数据是0X00D8,则执行下列指令后,寄存器R0的值:

LDR R0,[R1,#4]

4.若寄存器R1=0X00006000,地址0X00006008存放的数据是0X0074,则执行下列指令后,寄存器R0,R1的值: LDR R0,[R1,#8]!

5.若r0的值是0x00200, 计算如下程序: STMIB r0!,{R4-R7}

运行后,寄存器r0的值,地址0x208的值 6.若堆栈指针SP的地址是0x00300, 计算如下程序: STMFD SP!,{R4-R7}

运行后,寄存器SP的值,地址0x2fc的值。

三、编程题

1.求 两个数之和。(差,积) AREA YUE,CODE,READONLY

ENTRY

MOV R0,#0X12 MOV R1,#0X4 ADD R0,R0,R1 END

2.求两个数中较小的数。(较大) AREA XIAOYUE,CODE,READONLY

3.写一个程序,判断R0的值大于0x50,则将R1的 值减去0x10,并把结果送给R0

AREA XIAOYUE,CODE,READONLY ENTRY MOV R0,#0X12 MOV R1,#0X13 CMP R0,R1 MOVGE R2,R0 MOVLT R2,R1 END

ENTRY MOV R0,#0X60 MOV R1,#0X40 CMP R0,#0X50 SUBGT R0,R1,#0X10 END

4.求 两个数据的最大公约数。 AREA XIAO,CODE,READONLY

ENTRY MOV R0,#0X60 MOV R1,#0X40

START

1. 求1~100奇数和。(偶数和)

AREA CCI,CODE,READONLY ENTRY ??

CMP R0,R1 SUBGT R0,R0,R1 SUBLT R1,R1,R0 BNE START END

MOV R0,#1 MOV R1,#1 TTD CMP R1,#100 ADDLE R0,R0,R1 \ ADDLE R1,R1,#2 BLE TTD END

2. 已知字符串a=”hello”,b=”byebye”, 编写程序完成字符串a复制到字符串b中去。

(1)用汇编语言调用C语言;(2)用C语言调用汇编语言(3)C语言内嵌汇编语言。三种方法实现。

#include(stdio.h) export f #include Void my_strcopy(char *src,char *dest) import s estern void strcopy(char *src,char *deat )

{char ch; entry int main(){ _asm ldr r0,=a char *a,*b; {loop: ldrb ch,[src],#1 ldr r1,=b a = \ Strb ch,[dest],#1 Bl s b = \ Cmp ch,#0 mov pc lr strocpy(a,b);

Bne loop}} area u,ddata,readwrite printf(\Intmain(){chara[]=\ a dcd 'h','e','l','l','o','\\0' Char b[]=\ b dcd 's','a','y'' ','n','o' My_strcpy(a,b); area f,code,readonly Printf(\ end Printf(\Return 0;}

一、 程序填空

1.数据段的复制

AREA Block, 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 BNE octcopy LDMFD sp!, {r4-r11}

copywords ANDS r2, r2, #7 BEQ stop wordcopy

LDR r3, [r1], #4 STR r3, [r1], #4

SUBS r2, r2, #1 BNE wordcopy stop

MOV r0, #0x18 LDR r1, =0x20026

SWI 0x123456 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

2. 输入两个十进制数5和12,并进行比较。当两个数不同时,用较大的数减去较小数,结果送存储较大数的寄存器中,然后,再进行比较,直到两个数相同时为止。

area adrlabel , code, readonly entry mov r0,#5 mov r1,#12 start

cmp r0,r1 beq stop

b start stop

b stop end


ARM复习题(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:工程测量课程实习报告 - 工程测量实习日记

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: