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
{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