实验三C语言和ARM汇编混合编程指导书
实验三 C语言和ARM汇编混合编程 1. 实验目的 掌握C语言和ARM汇编混合编程方法。 2. 实验设备 硬件:PC 机 一台 软件:Windows98/XP/2000 系统,ADS 1.2 集成开发环境 3. 实验内容 C语言和汇编混合编程,实现字符串拷贝。 4. 实验预习要求 熟悉常用ARM 指令。了解ADS 工程编辑和AXD 调试方法。 5. 实验步骤 (1)启动ADS 1.2,使用ARM cutable Image 工程模板建立一个工程ProgramC1。 (2)建立源文件STR_COPY.S 和Test.c,编写实验程序,然后添加到工程中。 (3)设置工程链接地址RO Base 为0 x40000000,RW Base 为0 x40003000。设置调试入口地址Image entry point 为0 x40000000。 (4)编译链接工程,选择【Project】->【Debug】,启动AXD 进行软件仿真调试。 (5)在Test.c文件中的调用asm_strcpy()的代码处设置断点,然后全速动行程序。 (6)程序在断点处停止。使用Setp In 单步运行程序,观察程序是否转到汇编程序STR_COPY.S。判断程序的运算结果是否正确。参考程序见程序清单3.1。字符串拷贝函数代码见程序清单3.2。 6. 任务说明 (一)调试运行“在C代码中嵌入汇编指令”程序,并记录运行结果: (二)调试运行“汇编程序调用C函数”,程序,并记录运行结果: (三)在现有字符串拷贝(C 语言调用汇编程序)源程序的基础上,实现int类型数据的拷贝。 1)要求: Ø 编写ARM汇编程序并加注释 Ø 调试并记录运行结果 2)提示:源数字可用数组定义,如int s[4];并对数组元素进行初始化,s[0]=1;s[1]=2;s[2]=3;s[4]=0,同样定义目标数组d[4]并初始化为0。注:一个int型数字占4个存储单元。验证是否拷贝成功,利用for循环显示目标数组内容。 程序清单3.1 C语言调用汇编程序实验参考程序Test.c 程序清单3.2 字符串拷贝函数代码STR_COPY.S