如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
大连理工大学软件学院《嵌入式系统结构》实验报告实验时间:2012年9月27日实验室:嵌入式实验室实验台:EmbestEdukit-III平台指导教师:邱铁成绩:实验三:汇编语言与C语言混合编程实验一、实验目的和要求1.熟悉EmbestIDE2004集成开发环境2.ARM汇编语言指令功能训练3.ARM汇编语言编程训练二、实验原理和内容题目1:用汇编语言调用C语言实现实现20!题目2:在C语言函数中调用汇编语言程序实现字符串的块(4字)拷贝,不足4字时以字为单位;不足字时以半字为单位进行拷贝;不足半字时以字节为单进行拷贝;其中:源串:constchar*srcstr=“abcdefghij”目标串:char*dststr题目3:将题目2用C语言中内嵌汇编来实现拷贝。(选做)三、主要仪器设备及软件编程环境实验设备:硬件:PC机软件:EmbestIDE2004集成开发环境,Windows98/2000/NT/XP四、实验步骤与编程题目1/*--start.s--*/.global_start.externfactorial.equNi,20.text_start:MOVR0,#NiBLfactorialSTOP:BSTOP.END/*--factorial.c*--/longlongfactorial(charN){chari;longlongNx=1;for(i=1;i<=N;i++)Nx=Nx*i;returnNx;}题目2/*---main.c-----*/externvoidCopy(char*ch1,char*ch2,intn);Main(){constchar*srcstr="abcdefghijklmnopqrstuvwxyzqwert";chardststr[40];Copy(srcstr,dststr,31);while(1);}/*------copy.s--------*/.globalCopyCopy:MOVSP,#0x9000MOVSR4,R2,LSR#4@获取块拷贝次数STMFDSP!,{R5-R8}BEQCopy1Copy_4Word:LDMIAR0!,{R5-R8}STMIAR1!,{R5-R8}SUBSR4,R4,#1BNECopy_4WordLDMFDSP!,{R5-R8}Copy1:ANDSR2,R2,#15BEQStopMOVSR4,R2,LSR#2BEQCopy2Copy_Word:LDRR3,[R0],#4STRR3,[R1],#4SUBSR4,R4,#1BNECopy_WordCopy2:ANDSR2,R2,#3BEQStopCopy_HWord:LDRHR3,[R0],#2STRHR3,[R1],#2ANDSR2,R2,#1BEQStopCopy_B:LDRBR3,[R0]STRBR3,[R1]Stop:BStop题目3:/*----main.c*----/#include<stdio.h>voidCop(char*ch1,char*ch2,intn);voidMain(){constchar*srcstr="abcdefghij";char*dststr="";Copy(srcstr,dststr,10);while(1);}voidCop(char*ch1,char*ch2,intn){__asm("Copy:;\MOVSP,#0x9000;\MOVSR4,R2,LSR#4;\STMFDSP!,{R5-R8};\BEQCopy1;\Copy_4Word:;\LDMIAR0!,{R5-R8};\STMIAR1!,{R5-R8};\SUBSR4,R4,#1;\BNECopy_4Word;\LDMFDSP!,{R5-R8};\Copy1:;\ANDSR2,R2,#15;\BEQStop;\MOVSR4,R2,LSR#2;\BEQCopy2;\Copy_Word:;\LDRR3,[R0],#4;\STRR3,[R1],#4;\SUBSR4,R4,#1;\BNECopy_Word;\Copy2:;\ANDSR2,R2,#3;\BEQStop;\Copy_HWord:;\LDRHR3,[R0],#2;\STRHR3,[R1],#2;\ANDSR2,R2,#1;\BEQStop;\Cop