c语言调用编绘程序实验报告,arm实验ARM汇编和C语言混合编程.doc

PAGE 7

成绩

辽宁工程技术大学上机实验报告

课程名称

汇编语言程序设计——基于ARM体系结构

实验题目

ARM汇编和C语言混合编程

院系

软件学院

专业

软件工程

班级

姓名

学号

实验日期

实验

目的

1.掌握汇编程序访问C程序变量的方法。

2.掌握汇编程序调用C程序的方法。

3.了解C程序调用汇编程序的方法。

实验

准备

硬件:PC机

软件:ADS1.2集成开发环境

实验

进度

本次共有 2 个练习,完成 2 个。

实验

内容

实验

内容

1.建立一个新工程。

2.选择CPU。

3.添加启动代码。

4.选择开发工具。

5.建立汇编程序源文件。

6.建立分散加载文件和调试脚本文件。

7.将程序源文件添加到工程中。

8.设置编译链接控制选项。

9.编译链接工程。

10.调试工程。

实验步骤:

1.ARM汇编程序访问C变量

(1)ADS1.2集成开发环境,建立工程test,编辑汇编源程序文件test1.s,和test2.o,将源程序文件添加到工程项目中。建立汇编程序访问所需的C源程序。

(2)编译并链接程序,使用寄存器观察器和内存观察器,运用单步执行方式调试程序test1.s和test2.o,验证ARM汇编程序对C语言变量的访问。

2.汇编程序调用C程序

要求汇编程序通过BL g调用C语言程序中的函数以实现5个数相减,其参数通过R0、R1、R2、R3和堆栈来传递。

(1)汇编程序调用C程序的程序清单test3.s和test4.c。

建立工程work,然后建立汇编程序test3.s及其调用程序test4.c,加入工程,重新编译并链接程序,使用寄存器观察器和内存观察器,运用单步执行方式调试程序,验证ARM汇编程序对C语言程序的调用。调试时使用step方式,注意观察寄存器的变化,执行到BL g指令时可通过step in方式,单步进入C语言程序。然后通过单步执行实现5个数相减,调用函数运行完毕后程序又回到汇编语言程序。整个调试过程演示了汇编语言程序调用C语言程序的过程。

3.C程序调用ARM汇编程序

要求使C语言程序test6.c实现将源字符串srcstr复制到目标字符串dststr中,其中字符串复制函数strcopy由汇编程序实现,该段汇编程序在test5.s中。

实验

分析

实验

分析

实验

分析

实验

分析

1.ARM汇编程序访问C变量

程序代码:

test1.s

preserve8

area reset,code,readonly

entry

code32

export armcode

import globvar

armcode ldr r1,=globvar

ldr r0,[r1]

add r0,r0,#2

str r0,[r1]

mov pc,lr

end

test2.c

#include

int globvar=3;

int _main()

{

return (0);

}

实验截图:

分析:在0x8018的位置上实现了3+2。

2.汇编程序调用C程序

程序代码:

test3.s

area reset,code,readonly

entry

code32

export reset;arm_add

import g

ldr sp,=0 str lr,[sp,#-4]!

mov r0,#20

mov r1,#1

mov r2,#2

mov r3,#3

mov r4,#4

str r4,[sp,#-4]!

bl g

add sp,sp,#4

ldr pc,[sp],#4

end

test4.c

#include

int g(int a,int b,int c,int d,int e)

{

return a-b-c-d-e;

}

运行结果截图:

实验分析:

在ARM汇编语言程序中,将5个数分别存入寄存器中,然后通过调用C语言程序,进行相减,最后将结果存到R0中。

3.C程序调用ARM汇编程序

程序代码:

test5.s

area SCopy,code,readonly

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《嵌入式系统设计技术》 Embed System Design Technology 课程基本信息 1.课程名称: 中文名:嵌入式系统设计技术 英文名:Embed System Design Technology 2.课程代号: 20229930 3.课程类别: 基础课(选修) 4.学时:51 学分: 3 教学目的及要求 嵌入式系统,一般指非PC系统,有计算机功能但又不称之为计算机的设备或器材.它是以应用为中心,软硬件可裁减的,适应应用系统对功能,可靠性,成本,体积,功耗等综合性严格要求的专用计算机系统.简单地说,嵌入式系统集系统的应用软件与硬件于一体,类似于PC中BIOS的工作方式,具有软件代码小,高度自动化,响应速度快等特点,特别适合于要求实时和多任务的体系.嵌入式系统主要由嵌入式处理器,相关支撑硬件,嵌入式操作系统及应用软件系统等组成,它是可独立工作的"器件",有时又称为"固件". 嵌入式系统几乎包括了生活中和工业上的所有电器设备,如掌上PDA,移动计算设备,电视机顶盒,手机上网,数字电视,多媒体,汽车,微波炉,数字相机,家庭自动化系统,电梯,空调,安全系统,自动售货机,蜂窝式电话,消费电子设备,工业自动化仪表与医疗仪器等.因此嵌入式系统开发技术成为现代计算机应用开发工程师必须掌握的知识. 本课程主要教授基于ARM系列CPU的嵌入式系统硬件软件基本设计方法. 教学内容 1.绪论 9 2.ARM7TDMI(-S)结构 9 3.ARM7TDMI(-S)指令集及汇编 6 4.LPC2106/2105/2104硬件结构与功能 6 5.LPC2106/2105/2104外设编程 3 6.CodeWarrior使用 3 7.ARM体系中的调试方法 3 8.实时系统概念 3 9.μC/OS-II原理及ARM移植 9 教材 教材名称: 讲课教材自编 教材作者: 唐臻宇 主要参考资料 1.《ARM体系结构与编程》,杜春雷编著,清华大学出版社2003年2月第一版; 2.《ARM微控制器基础与实战》,周立功等编著,北京航空航天大学出版社2003年11月第一版; 3.《μC/OS-II源码公开的实时嵌入式操作系统》,JEAN J.Labrosse著,绍贝贝译,中国电力出版社2001年8月第一版; 4.《嵌入式实时操作系统Small RTOS51原理及应用》,陈明计,周立功等编著,北京航空航天大学出版社2004年1月第1版; 5.《USB2.0设备的设计与开发》,边海龙,贾少华编著,人民邮电出版社2004年1月第1版; 6.《CPLD/FPGA可编程逻辑器件应用与开发》,王道县主编,国防工业出版社2004年1月第1版; 7.《Visual Basic 与分布式监控系统―RS-232/485串行通信》,范逸之编著,清华大学出版社2002年1月第1版. 成绩评定 本课程为理论课,考核方式为:闭卷考试.平时成绩占30%;期末考试占70%. 物理科学与技术学院 本科课程教学大纲
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值